Konfigurierbare Tastenbelegung

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

jacky

Betreff: Konfigurierbare Tastenbelegung

BeitragSa, Okt 09, 2004 22:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, Ich möchte ein Spiel programmieren, wo
man eine frei wählbare Steuerung benutzen kann.

Ich weiss aber nicht, wie man machen kann, dass
der Spieler die Tastaturbelegung frei wählen kann.

Wäre über Antworten sehr erfreut.

mfg
Aller Anfang ist schwer!!!
 

IonPainter

BeitragSa, Okt 09, 2004 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
schreib einfach die scancodes in ne datei und lies sie beim programmstart wieder aus un nutze sie.
 

Timo

BeitragSo, Okt 10, 2004 9:16
Antworten mit Zitat
Benutzer-Profile anzeigen
vielleicht hilft dir ja dieses Array: (nicht von mir) Du brauchst nur den Scancode angeben, und du erhälst sofort den Namen der Taste. Gut, um dem Spieler zu zeigen, wie seine Tastenbelegung ist.


das was hier unten ist bitte nur einmal ausführen, dannach reicht eine Zeile wie
tastenname$ = keyname(Taste_Laufen)
wobei du Taste_Laufen dazu brauchst um abzuspeichern, welchen scancode das Laufen bekommt... Smile
Code: [AUSKLAPPEN]

Dim keyname$(255)
keyname(1) = "Esc"
keyname(2) = "1"
keyname(3) = "2"
keyname(4) = "3"
keyname(5) = "4"
keyname(6) = "5"
keyname(7) = "6"
keyname(8) = "7"
keyname(9) = "8"
keyname(10) = "9"
keyname(11) = "0"
keyname(12) = "ß"
keyname(13) = "´"
keyname(14) = "Backspace"
keyname(15) = "Tabulator"
keyname(16) = "Q"
keyname(17) = "W"
keyname(18) = "E"
keyname(19) = "R"
keyname(20) = "T"
keyname(21) = "Z"
keyname(22) = "U"
keyname(23) = "I"
keyname(24) = "O"
keyname(25) = "P"
keyname(26) = "Ü"
keyname(27) = "+"
keyname(28) = "Enter"
keyname(29) = "Strg links"
keyname(30) = "A"
keyname(31) = "S"
keyname(32) = "D"
keyname(33) = "F"
keyname(34) = "G"
keyname(35) = "H"
keyname(36) = "J"
keyname(37) = "K"
keyname(38) = "L"
keyname(39) = "Ö"
keyname(40) = "Ä"
keyname(41) = "^"
keyname(42) = "Shift links"
keyname(43) = "#"
keyname(44) = "Y"
keyname(45) = "X"
keyname(46) = "C"
keyname(47) = "V"
keyname(48) = "B"
keyname(49) = "N"
keyname(50) = "M"
keyname(51) = ","
keyname(52) = "."
keyname(53) = "-"
keyname(54) = "Shift rechts"
keyname(55) = "* (Num)"
keyname(56) = "Alt links"
keyname(57) = "Leertaste"
keyname(58) = "Feststelltaste"
keyname(59) = "F1"
keyname(60) = "F2"
keyname(61) = "F3"
keyname(62) = "F4"
keyname(63) = "F5"
keyname(64) = "F6"
keyname(65) = "F7"
keyname(66) = "F8"
keyname(67) = "F9"
keyname(68) = "F10"
keyname(69) = "NumLock"
keyname(70) = "Rollen"
keyname(71) = "7 (Num)"
keyname(72) = "8 (Num)"
keyname(73) = "9 (Num)"
keyname(74) = "- (Num)"
keyname(75) = "4 (Num)"
keyname(76) = "5 (Num)"
keyname(77) = "6 (Num)"
keyname(78) = "+ (Num)"
keyname(79) = "1 (Num)"
keyname(80) = "2 (Num)"
keyname(81) = "3 (Num)"
keyname(82) = "0 (Num)"
keyname(83) = ", (Num)"
keyname(86) = "<"
keyname(87) = "F11"
keyname(88) = "F12"
keyname(100) = "F13"
keyname(101) = "F14"
keyname(102) = "F15"
keyname(112) = "Kana"
keyname(115) = "/?"
keyname(121) = "Convert"
keyname(123) = "NoConvert"
keyname(125) = "Yen"
keyname(126) = ". (Num)"
keyname(141) = "= (Num)"
keyname(144) = "PrevTrack"
keyname(145) = "AT"
keyname(146) = ":"
keyname(147) = "_"
keyname(148) = "Kanji"
keyname(149) = "Stop"
keyname(150) = "AX"
keyname(151) = "Unlabeled"
keyname(153) = "Next Track (Media)"
keyname(156) = "Enter (Num)"
keyname(157) = "Strg rechts"
keyname(160) = "Mute (Media)"
keyname(161) = "Taschenrechner (Windows)"
keyname(162) = "Play/Pause (Media)"
keyname(164) = "Stop (Media)"
keyname(174) = "Volume - (Media)"
keyname(176) = "Volume + (Media)"
keyname(178) = "Home (Internet)"
keyname(179) = ", (Num)"
keyname(181) = "/ (Num)"
keyname(183) = "Druck"
keyname(184) = "AltGr rechts"
keyname(197) = "Pause"
keyname(199) = "Pos1"
keyname(200) = "Pfeiltaste Hoch"
keyname(201) = "Bild hoch"
keyname(203) = "Pfeiltaste Links"
keyname(205) = "Pfeiltaste Rechts"
keyname(207) = "Ende"
keyname(208) = "Pfeiltaste Runter"
keyname(209) = "Bild runter"
keyname(210) = "Einfg"
keyname(211) = "Entf"
keyname(219) = "Windowstaste links"
keyname(220) = "Windowstaste rechts"
keyname(221) = "Menü (Windows)"
keyname(222) = "Power (System)"
keyname(223) = "Sleep (System)"
keyname(227) = "WakeUp (System)"
keyname(229) = "Suchen (Internet)"
keyname(230) = "Favoriten (Internet)"
keyname(231) = "Aktualisieren (Internet)"
keyname(232) = "Abbrechen (Internet)"
keyname(233) = "Vorwärts (Internet)"
keyname(234) = "Zurück (Internet)"
keyname(235) = "Arbeitsplatz (Windows)"
keyname(236) = "E-Mail (Windows)"
keyname(237) = "Media (Windows)"

For counter = 0 To 255
   If keyname(counter) = "" Then keyname(counter) = "Unbekannte Taste (Code " + counter + ")"
Next

schmidtjr

BeitragMo, Okt 11, 2004 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi
so verfolge das hier nun öfters (bin nich mehr allzu oft aufm Boad), dass hier Leute fragen "wie mache ich nen menu, wie speicher ichs inne datei, wie mach ich optionen, wie tastenbelegung...". Naja hab vor einiger zeit mal für die schule schnell nen menu gemacht. das könnte man ja so als Basis nehmen. UND DARAUS LERNEN.
an die Pros:: Bitte nich haun, ich weiß es is nich perfekt, viele schnitzer aber das hat gründe::
- musste schnell gehn, für schule
- spiel war wichtiger
- für damals hats gereicht
- habs jetzt nur schnell fürs forum angepasst, dadurch evtl. noch bissl unübersichtlich weil z.b. meine VariablenLadeFunktion rausgeflogen is.
- ich hasse ellenlange quellcodes, daher so viele .bb includes.
- es is scho älter
- keine Auflösungsänderung da wir uns damals auf 800x600 beschränkt hatten weil die inforaum rechner eh schrott warn
.......

naja könnt hier ellenlang weiterlabern.
Nehmt es oder nicht, is mir egal. Ich blitze eh seit einiger Zeit nicht mehr.

Wer es nimmt, kann ja wenner bock hat nen eintrag in die credits machen.
so long, stay tuned

mfg, iche

Hier die Main datei::
Code: [AUSKLAPPEN]
Include "options.bb"
Include "tasten.bb"
Include "grafik.bb"



datatxt=OpenFile("data.cfg")
Global window=ReadLine(datatxt)
CloseFile datatxt
Dim name$(10)
Dim punkte(10)


Graphics 800,600,16,window
SetBuffer BackBuffer()
Include "high.bb"
Include "highscore.bb"
readoptions
Global normal=LoadFont("Arial",24,0,0,0)
Global marked=LoadFont("Arial",32,1,0,1)
Global klein=LoadFont("arial",12,0,0,0)
Global selected=1
Global linksp1, rechtsp1, obenp1, untenp1, linksp2, rechtsp2, obenp2, untenp2

FlushKeys
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@q Mainloop @@@@@@@@@@@@@
While Not KeyHit(1)

If KeyHit(208) Then selected = selected +1
If KeyHit(200) Then selected = selected -1

If selected<1 Then selected = 4
If selected>4 Then selected = 1

If KeyHit(28) Then
   Select selected
      Case 1
         ;startet euer spiel (habs immer als funktion gehabt dann)
         selected=1
      Case 2
         optionen
         selected=1
      Case 3
         highscore
         selected=1
      Case 4
         End
   End Select
EndIf


drawmenu(selected)
Flip
Cls
Wend
End
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@q Mainloop ende @@@@@@@@

;@@@@@@@@@@@@@ Functions Area @@@@@@@


Function drawmenu(selected)
Select selected
   Case 1
      SetFont marked
      Text 400,100,"Spiel starten",1,0
      SetFont normal
      Text 400,200,"Optionen",1,0
      Text 400,300,"Highscore",1,0
      Text 400,500,"Beenden (Esc)",1,0
   Case 2
      SetFont normal
      Text 400,100,"Spiel starten",1,0
      SetFont marked
      Text 400,200,"Optionen",1,0
      SetFont normal
      Text 400,300,"Highscore",1,0
      Text 400,500,"Beenden (Esc)",1,0
   Case 3
      SetFont normal
      Text 400,100,"Spiel starten",1,0
      Text 400,200,"Optionen",1,0
      SetFont marked
      Text 400,300,"Highscore",1,0
      SetFont normal
      Text 400,500,"Beenden (Esc)",1,0
   Case 4
      SetFont normal
      Text 400,100,"Spiel starten",1,0
      Text 400,200,"Optionen",1,0
      Text 400,300,"Highscore",1,0
      SetFont marked
      Text 400,500,"Beenden (Esc)",1,0
      SetFont normal
End Select
End Function


hier die high include:
Code: [AUSKLAPPEN]
Function highscorein()
hightxt=OpenFile("highscore.txt")
For i=0 To 9
   name$(i)=ReadLine(hightxt)
   punkte(i)=ReadLine(hightxt)
Next
CloseFile hightxt
End Function

Function highscoreout()
hightxt=OpenFile("highscore.txt")
For i=0 To 9
   WriteLine hightxt,name$(i)
   WriteLine hightxt,punkte(i)
Next
CloseFile hightxt
End Function

Function sort()
For i=0 To 9
   For j=0 To 9
      If punkte(i)>punkte(j) Then
         punktezwischen= punkte(j)
         punkte(j)=punkte(i)
         punkte(i)=punktezwischen
         namezwischen$=name$(j)
         name$(j)=name$(i)
         name$(i)=namezwischen$
         EndIf
      Next
   Next
End Function


hier die highscore include:
Code: [AUSKLAPPEN]

Function highscore()
highscorein
sort
highscoreout
FlushKeys
While Not KeyHit(1)
SetFont normal
For i=0 To 9
   Text 50,50+i*40,i+1 + ".",1
   Text 100,50+i*40,name$(i)
   Text 700,50+i*40,punkte(i)
Next
SetFont marked
Text 400,500,"Beenden (Esc)",1,0
SetFont normal
If KeyHit(28) Then
   Exit
EndIf
Flip
Cls
Wend
End Function


hier die options :
Code: [AUSKLAPPEN]
Function optionen()
Cls
selected = 1
readoptions
FlushKeys
While Not KeyHit(1)
   If KeyHit(208) Then selected = selected +1
   If KeyHit(200) Then selected = selected -1

   If selected<1 Then selected = 3
   If selected>3 Then selected = 1

   If KeyHit(28) Then
      Select selected
         Case 1
            grafikmodus
         Case 2
            tastenbelegung
         Case 3
            Exit
      End Select
   EndIf
   drawmenu2(selected)

   Flip   
   Cls
Wend
optionsave
End Function

Function drawmenu2(selected)
Select selected
   Case 1
      SetFont marked
      Text 400,200,"Grafikmodus",1,0
      SetFont normal
      Text 400,300,"Tastenbelegung",1,0
      Text 400,500,"zurück (Esc)",1,0
   Case 2
      SetFont normal
      Text 400,200,"Grafikmodus",1,0
      SetFont marked
      Text 400,300,"Tastenbelegung",1,0
      SetFont normal
      Text 400,500,"zurück (Esc)",1,0
   Case 3
      SetFont normal
      Text 400,200,"Grafikmodus",1,0
      Text 400,300,"Tastenbelegung",1,0
      SetFont marked
      Text 400,500,"zurück (Esc)",1,0
      SetFont normal
End Select
End Function

Function optionsave()
   datatxt=OpenFile("data.cfg")
   WriteLine datatxt, window
   WriteLine datatxt, linksp1
   WriteLine datatxt, rechtsp1
   WriteLine datatxt, obenp1
   WriteLine datatxt, untenp1
   WriteLine datatxt, linksp2
   WriteLine datatxt, rechtsp2
   WriteLine datatxt, obenp2
   WriteLine datatxt, untenp2
   CloseFile datatxt
End Function

Function readoptions()
   datatxt=OpenFile("data.cfg")
   window=ReadLine(datatxt)
   linksp1=ReadLine(datatxt)
   rechtsp1=ReadLine(datatxt)
   obenp1=ReadLine(datatxt)
   untenp1=ReadLine(datatxt)
   linksp2=ReadLine(datatxt)
   rechtsp2=ReadLine(datatxt)
   obenp2=ReadLine(datatxt)
   untenp2=ReadLine(datatxt)
   CloseFile datatxt
End Function


hier die tastenbelegung :
Code: [AUSKLAPPEN]

Function tastenbelegung()
Cls

selected = 1
lip1$=scan2name(linksp1)
rep1$=scan2name(rechtsp1)
obp1$=scan2name(obenp1)
unp1$=scan2name(untenp1)
lip2$=scan2name(linksp2)
rep2$=scan2name(rechtsp2)
obp2$=scan2name(obenp2)
unp2$=scan2name(untenp2)


FlushKeys
While Not KeyHit(1)
   If KeyHit(208) Then selected = selected +1
   If KeyHit(200) Then selected = selected -1

   If selected<1 Then selected = 9
   If selected>9 Then selected = 1

   If KeyHit(28) Then
      Select selected
         Case 1
            linksp1=getscan()
            lip1$=scan2name(linksp1)
         Case 2
            rechtsp1=getscan()
            rep1$=scan2name(rechtsp1)
         Case 3
            obenp1=getscan()
            obp1$=scan2name(obenp1)
         Case 4
            untenp1=getscan()
            unp1$=scan2name(untenp1)
         Case 5
            linksp2=getscan()
            lip2$=scan2name(linksp2)
         Case 6
            rechtsp2=getscan()
            rep2$=scan2name(rechtsp2)
         Case 7
            obenp2=getscan()
            obp2$=scan2name(obenp2)
         Case 8
            untenp2=getscan()
            unp2$=scan2name(untenp2)
         Case 9
            Exit
      End Select
   EndIf
   
   Text 20,10,"Spieler 1:",0,0
   Text 20,200,"Spieler 2:",0,0
   Text 550,40,lip1$,0,0
   Text 550,80,rep1$,0,0
   Text 550,120,obp1$,0,0
   Text 550,160,unp1$,0,0
   Text 550,240,lip2$,0,0
   Text 550,280,rep2$,0,0
   Text 550,320,obp2$,0,0
   Text 550,360,unp2$,0,0

   drawmenu3(selected)

   Flip   
   Cls
Wend
optionsave
End Function

Function drawmenu3(selected)
Select selected
   Case 1
      SetFont marked
      Text 120,40,"Links",0,0
      SetFont normal
      Text 120,80,"Rechts",0,0
      Text 120,120,"Oben",0,0
      Text 120,160,"Unten",0,0
      Text 120,240,"Links",0,0
      Text 120,280,"Rechts",0,0
      Text 120,320,"Oben",0,0
      Text 120,360,"Unten",0,0
      Text GraphicsWidth()/2,500,"zurück (Esc)",1,0
   Case 2
      SetFont normal
      Text 120,40,"Links",0,0
      SetFont marked
      Text 120,80,"Rechts",0,0
      SetFont normal
      Text 120,120,"Oben",0,0
      Text 120,160,"Unten",0,0
      Text 120,240,"Links",0,0
      Text 120,280,"Rechts",0,0
      Text 120,320,"Oben",0,0
      Text 120,360,"Unten",0,0
      Text GraphicsWidth()/2,500,"zurück (Esc)",1,0
   Case 3
      SetFont normal
      Text 120,40,"Links",0,0
      Text 120,80,"Rechts",0,0
      SetFont marked
      Text 120,120,"Oben",0,0
      SetFont normal
      Text 120,160,"Unten",0,0
      Text 120,240,"Links",0,0
      Text 120,280,"Rechts",0,0
      Text 120,320,"Oben",0,0
      Text 120,360,"Unten",0,0
      Text GraphicsWidth()/2,500,"zurück (Esc)",1,0
   Case 4
      SetFont normal
      Text 120,40,"Links",0,0
      Text 120,80,"Rechts",0,0
      Text 120,120,"Oben",0,0
      SetFont marked
      Text 120,160,"Unten",0,0
      SetFont normal
      Text 120,240,"Links",0,0
      Text 120,280,"Rechts",0,0
      Text 120,320,"Oben",0,0
      Text 120,360,"Unten",0,0
      Text GraphicsWidth()/2,500,"zurück (Esc)",1,0
   Case 5
      SetFont normal
      Text 120,40,"Links",0,0
      Text 120,80,"Rechts",0,0
      Text 120,120,"Oben",0,0
      Text 120,160,"Unten",0,0
      SetFont marked
      Text 120,240,"Links",0,0
      SetFont normal
      Text 120,280,"Rechts",0,0
      Text 120,320,"Oben",0,0
      Text 120,360,"Unten",0,0
      Text GraphicsWidth()/2,500,"zurück (Esc)",1,0
   Case 6
      SetFont normal
      Text 120,40,"Links",0,0
      Text 120,80,"Rechts",0,0
      Text 120,120,"Oben",0,0
      Text 120,160,"Unten",0,0
      Text 120,240,"Links",0,0
      SetFont marked
      Text 120,280,"Rechts",0,0
      SetFont normal
      Text 120,320,"Oben",0,0
      Text 120,360,"Unten",0,0
      Text GraphicsWidth()/2,500,"zurück (Esc)",1,0
   Case 7
      SetFont normal
      Text 120,40,"Links",0,0
      Text 120,80,"Rechts",0,0
      Text 120,120,"Oben",0,0
      Text 120,160,"Unten",0,0
      Text 120,240,"Links",0,0
      Text 120,280,"Rechts",0,0
      SetFont marked
      Text 120,320,"Oben",0,0
      SetFont normal
      Text 120,360,"Unten",0,0
      Text GraphicsWidth()/2,500,"zurück (Esc)",1,0
   Case 8
      SetFont normal
      Text 120,40,"Links",0,0
      Text 120,80,"Rechts",0,0
      Text 120,120,"Oben",0,0
      Text 120,160,"Unten",0,0
      Text 120,240,"Links",0,0
      Text 120,280,"Rechts",0,0
      Text 120,320,"Oben",0,0
      SetFont marked
      Text 120,360,"Unten",0,0
      SetFont normal
      Text GraphicsWidth()/2,500,"zurück (Esc)",1,0
   Case 9
      SetFont normal
      Text 120,40,"Links",0,0
      Text 120,80,"Rechts",0,0
      Text 120,120,"Oben",0,0
      Text 120,160,"Unten",0,0
      Text 120,240,"Links",0,0
      Text 120,280,"Rechts",0,0
      Text 120,320,"Oben",0,0
      Text 120,360,"Unten",0,0
      SetFont marked
      Text GraphicsWidth()/2,500,"zurück (Esc)",1,0
      SetFont normal
End Select
End Function

Function Getscan()
FlushKeys
WaitKey()
For i=1 To 237
   If KeyHit(i) Then
      Return i
      End
   EndIf
Next
End Function

Function scan2name$(i)
Select i
   Case 1 Return "Escape"
   Case 2 Return "1"
   Case 3 Return "2"
   Case 4 Return "3"
   Case 5 Return "4"
   Case 6 Return "5"
   Case 7 Return "6"
   Case 8 Return "7"
   Case 9 Return "8"
   Case 10 Return "9"
   Case 11 Return "0"
   Case 12 Return "ß"
   Case 13 Return "´"
   Case 14 Return "Backspace"
   Case 15 Return "Tabulator"
   Case 16 Return "Q"
   Case 17 Return "W"
   Case 18 Return "E"
   Case 19 Return "R"
   Case 20 Return "T"
   Case 21 Return "Z"
   Case 22 Return "U"
   Case 23 Return "I"
   Case 24 Return "O"
   Case 25 Return "P"
   Case 26 Return "Ü"
   Case 27 Return "+"
   Case 28 Return "Return"
   Case 29 Return "Ctrl links"
   Case 30 Return "A"
   Case 31 Return "S"
   Case 32 Return "D"
   Case 33 Return "F"
   Case 34 Return "G"
   Case 35 Return "H"
   Case 36 Return "J"
   Case 37 Return "K"
   Case 38 Return "L"
   Case 39 Return "Ö"
   Case 40 Return "Ä"
   Case 41 Return "^"
   Case 42 Return "Shift links"
   Case 43 Return "#"
   Case 44 Return "Y"
   Case 45 Return "X"
   Case 46 Return "C"
   Case 47 Return "V"
   Case 48 Return "B"
   Case 49 Return "N"
   Case 50 Return "M"
   Case 51 Return ","
   Case 52 Return "."
   Case 53 Return "-"
   Case 54 Return "Shift rechts"
   Case 55 Return "*"
   Case 56 Return "Alt links"
   Case 57 Return "Leertaste"
   Case 58 Return "Feststelltaste"
   Case 59 Return "F1"
   Case 60 Return "F2"
   Case 61 Return "F3"
   Case 62 Return "F4"
   Case 63 Return "F5"
   Case 64 Return "F6"
   Case 65 Return "F7"
   Case 66 Return "F8"
   Case 67 Return "F9"
   Case 68 Return "F10"
   Case 69 Return "NumLock"
   Case 70 Return "Rollen"
   Case 71 Return "7"
   Case 72 Return "8"
   Case 73 Return "9"
   Case 74 Return "-"
   Case 75 Return "4"
   Case 76 Return "5"
   Case 77 Return "6"
   Case 78 Return "+"
   Case 79 Return "1"
   Case 80 Return "2"
   Case 81 Return "3"
   Case 82 Return "0"
   Case 83 Return ","
   Case 86 Return "< >"
   Case 87 Return "F11"
   Case 88 Return "F12"
   Case 156 Return "Enter"
   Case 157 Return "Ctrl rechts"
   Case 181 Return "/"
   Case 183 Return "Drucken"
   Case 184 Return "Alt rechts"
   Case 197 Return "Pause"
   Case 199 Return "Pos1"
   Case 200 Return "Pfeil hoch"
   Case 201 Return "Bild hoch"
   Case 203 Return "Pfeil links"
   Case 205 Return "Pfeil rechts"
   Case 207 Return "Ende"
   Case 208 Return "Pfeil runter"
   Case 209 Return "Bild runter"
   Case 210 Return "Einfügen"
   Case 211 Return "Entfernen"
   Case 219 Return "Win links"
   Case 220 Return "Win rechts"
   Case 221 Return "Menütaste"
End Select
End Function


hier der Grafikmodus :
Code: [AUSKLAPPEN]
Function grafikmodus()
Cls
selected = 1
FlushKeys
While Not KeyHit(1)
   If KeyHit(208) Then selected = selected +1
   If KeyHit(200) Then selected = selected -1

   If selected<1 Then selected = 4
   If selected>4 Then selected = 1

   If KeyHit(28) Then
      Select selected
         Case 1
            window= 1
         Case 2
            window = 2
         Case 3
            window = 3
         Case 4
            Exit
      End Select
   EndIf

   drawmenu5(selected)
   Select window
      Case 1
         Text 200,100,"*"
         Text 600,100,"*"
      Case 2
         Text 200,200,"*"
         Text 600,200,"*"
      Case 3
         Text 200,300,"*"
         Text 600,300,"*"
   End Select
   
   SetFont klein
   Text 400,576,"* Fenster Modus ist auf manchen Rechner extrem langsam! *",1,0
   Text 400,588,"* Änderungen erst nach Neustart des Programms wirksam! *",1,0
   SetFont normal
   Flip   
   Cls
Wend
End Function

Function drawmenu5(selected)
Select selected
   Case 1
      SetFont marked
      Text 400,100,"Vollbild Modus",1,0
      SetFont normal
      Text 400,200,"Fenster Modus",1,0
      Text 400,300,"skalierbarer Fenster Modus",1,0
      Text 400,500,"zurück (Esc)",1,0
   Case 2
      SetFont normal
      Text 400,100,"Vollbild Modus",1,0
      SetFont marked
      Text 400,200,"Fenster Modus",1,0
      SetFont normal
      Text 400,300,"skalierbarer Fenster Modus",1,0
      Text 400,500,"zurück (Esc)",1,0
   Case 3
      SetFont normal
      Text 400,100,"Vollbild Modus",1,0
      Text 400,200,"Fenster Modus",1,0
      SetFont marked
      Text 400,300,"skalierbarer Fenster Modus",1,0
      SetFont normal
      Text 400,500,"zurück (Esc)",1,0
   Case 4
      SetFont normal
      Text 400,100,"Vollbild Modus",1,0
      Text 400,200,"Fenster Modus",1,0
      Text 400,300,"skalierbarer Fenster Modus",1,0
      SetFont marked
      Text 400,500,"zurück (Esc)",1,0
      SetFont normal
End Select
End Function



Desweiteren braucht ihr ne data.cfg die ungefähr so aussehen sollte:
Code: [AUSKLAPPEN]

1
203
205
200
208
30
32
17
31

31


und ne Highscore.txt die fürn begin von mir aus so aussieht:
Code: [AUSKLAPPEN]

paulchen
10
panther
9
Johnny
8
Walker
7
f
4
a
3
d
2
v
1
f
1
b
1



so wenns gut is fangt was damit an, ansonsten schlagt mich nich, es is alt, ich blitze nich mehr, und finds jetzt grottenschlecht Smile

P.S. das ding is vor langer zeit mit hilfe dieses forums entstanden, falls sich hier einer warum auch immer aufn schlips getreten fühlt, soll er sich melden, es is nix absicht, aba ich glaub da is nix drin was geschützt is.
 

jacky

BeitragMo, Okt 11, 2004 21:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Na ja, danke schon mal für die Antworten, aber ich wüsste
gerne, wie mal vom Spieler eine Eingabe verlangen kann,
und die dann nacher anzeigt?

Ich meine, mit A,B,C,usw. ist es ja kein Problem.
Aber zum Beispiel mit Alt oder Control.

mfg
Aller Anfang ist schwer!!!
 

Timo

BeitragMo, Okt 11, 2004 21:55
Antworten mit Zitat
Benutzer-Profile anzeigen
genau so? du prüfst ja nicht die Ascii codes sondern die Scancodes und die beinhalten auch Strg,Alt,etc.
 

jacky

BeitragMo, Okt 11, 2004 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Code?
Aller Anfang ist schwer!!!
 

Timo

BeitragMo, Okt 11, 2004 22:07
Antworten mit Zitat
Benutzer-Profile anzeigen
jacky hat Folgendes geschrieben:
Ich meine, mit A,B,C,usw. ist es ja kein Problem.

wenn du weist, wie es damit geht, dann sollte strg,etc. auch kein Problem sein.

Aber so als Grundgedanke, du brauchst eine Variable, zum Beispiel Key_Runter, die Speichert, welcher Scancode für die Aktion "Runter" ist. Oder zum Beispiel "Aufheben".

Dannach überprüfst du halt nicht mehr via
If keyhit(15)
sondern über
if keyhit(Key_Runter)

das sollte dir erstmal helfen
 

jacky

BeitragMo, Okt 11, 2004 22:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, soweit bin ich auch schon.

Jetzt aber, wie soll ich die Eingabe machen?

Key_Runter=Input("Runter: ") ?

Wenn der Spieler hier Alt oder so eingibt, dann kommt ja nix,
oder?

Please help
Aller Anfang ist schwer!!!
 

Timo

BeitragMo, Okt 11, 2004 22:26
Antworten mit Zitat
Benutzer-Profile anzeigen
nein das stimmt, das geht leider nicht, da musst du dir ne eigene Funktion zu schreiben.

Sie müsste ungefähr das haben:

Code: [AUSKLAPPEN]

Function InCode()
For x = 1 to 237 ; max Anzahl der Scancodes
  If Keyhit(x) then return x
next
End Function


Also du musst jeden Scancode durchrattern, ob er gedrückt wurde und wenn ja ihn zurückgeben
 

jacky

BeitragMo, Okt 11, 2004 22:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, klingt zimlich mühselig Shocked

Na ja, thx Timo, dass du an meiner Frage drangeblieben bist.
Und auch den anderen ein Dankeschön

mfg
Aller Anfang ist schwer!!!

schmidtjr

BeitragDi, Okt 12, 2004 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
hi
naja klink mich hier doch noch ma ein. wenn du dir meinen vorschlag ma angeguckt hättest hättest du gesehn, dass alles was du gefragt hast darin beantwortet is. guck dir die tasten.bb an, die funktionen getscan() und scan2name() sind ganz spannend, aber naja, wer lesen kan is klar...... ihr kennts ja. werd mich dann wohl mal wieder von hier entfernen, wird ja eh nix gelesen.

so long stay tuned
mfg, iche
 

Timo

BeitragDi, Okt 12, 2004 21:49
Antworten mit Zitat
Benutzer-Profile anzeigen
@schmidtjr: das ist ja ganz freundlich von dir, das du den quellcode zur verfügung gestellt hast, aber meinst du nicht, das es ein bisschen viel verlangt ist, sich den gesammten quellcode (über 600Zeilen), der nicht durchkommentiert ist genauestenz nachzuvollziehen? Ich mein, jetzt wo du's gerade sagts, fällts mir auch auf das du schon eine "GetScan" Funktion drinne hast....
Net bös gemeint!!

schmidtjr

BeitragMi, Okt 13, 2004 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
hi
naja zum thema kommentare : da haste recht. hätt ich mehr machen können.
aber zum thema durchackern : es is ja nich der test das zeug schnell ins BB zu machen und zu starten. dann sieht man was es kann, und dass das WAS MAN WILL drinne steckt. also guckt man sich das programm an und findet eine funktion (funktionsnamen stehen ja schließlich schön aufgelistet rechts). Weil man meiner Meinung nach mehr lernt wenn man es selber findet als wenn man es sich geben lässt und reinpastet. aber naja, is ja nu auch gegessen.

mfg, iche

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group