Steuerung(2D)

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

azureuz

Betreff: Steuerung(2D)

BeitragDi, Dez 07, 2004 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich hab da mal eine Frage zur steuerung.
Hier erstmal mein Code(ist nur ein teil):

BlitzBasic: [AUSKLAPPEN]

Graphics 550,350,32,2
SetBuffer BackBuffer()

Global rx1=40
Global ry1=150

Global rx2=490
Global ry2=150

While Not KeyHit(1)

Rect rx1,ry1, 5, 50, 1
Rect rx2,ry2, 5, 50, 1

If KeyDown(200) Then
ry1=y+1
End If

If KeyDown(208) Then
ry1=y-2
End If

Flip
Cls
Wend


Wenn ich jetzt nach oben oder unten drücke, geht das rechteck gleich gan nach unten. sozusagen ohne bewegung?

edit:
ich habs raus! funzt nun!


edit:
wieso geht das nur, wenn ich "rx1", "x" nenne?

BladeRunner

Moderator

BeitragDi, Dez 07, 2004 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Du weisst y keinen wert zu. also ist es 0.
wenn du nun ry= y+1 schreibst ist das ...
ry= 0+1
also:
ry=1
Damit du einen Counter erhöhst (auch ry) schreib: counter=counter+1

in deinem Beispiel also:
BlitzBasic: [AUSKLAPPEN]
ry=ry+1
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

azureuz

BeitragDi, Dez 07, 2004 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
hatte zwar geschrieben das ich es raus habe, aber egal ^^
trotzdem danke Wink

nun hab ich ein andres problem.
ich will, dass wenn ich die leertaste drücke, der befehl "ballx=ballx-3" ausgeführt wird. aber ich will die leertaste nur einmal drücken(wie ein spielstart).

atm sieht das so aus:

BlitzBasic: [AUSKLAPPEN]

If KeyHit(57) Then
links=1
If links=1 Then
ballx=ballx-3
End If
End If

BladeRunner

Moderator

BeitragDi, Dez 07, 2004 17:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
edit:
wieso geht das nur, wenn ich "rx1", "x" nenne?

Daher meine Antwort. Du hattest zwar einen Workaround aber anscheinend den Kern des Ganzen noch nicht wirklich verstanden.

Zu deinem zweiten Problem: Wenn du die Handlung pro Tastendruck nur einmalig ausführen willst, kannst Du deinen Code vereinfachen: Lass einfach die Statusvariable (links) weg (if keyhit(57) then ballx=ballx-3)

Oder setze sie manuell wieder auf 0.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

azureuz

BeitragDi, Dez 07, 2004 17:22
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
Zitat:
edit:
wieso geht das nur, wenn ich "rx1", "x" nenne?

Daher meine Antwort. Du hattest zwar einen Workaround aber anscheinend den Kern des Ganzen noch nicht wirklich verstanden.

Zu deinem zweiten Problem: Wenn du die Handlung pro Tastendruck nur einmalig ausführen willst, kannst Du deinen Code vereinfachen: Lass einfach die Statusvariable (links) weg (if keyhit(57) then ballx=ballx-3)

Oder setze sie manuell wieder auf 0.


zu 1.: naja..hab das edit falsch gesetzt ^^ ich hab das shcon alles verstanden Wink

zu 2.: geht immernoch nicht. ich muss die leertaste gedrückt halten :/

BladeRunner

Moderator

BeitragDi, Dez 07, 2004 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke wir reden aneinander vorbei. was willst du jetzt wirklich?
1. einmal drücken - dauerhaft bewegen
2.solange gedrückt bewegen
3. bei druck einmal bewegen
?
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

azureuz

BeitragDi, Dez 07, 2004 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
punkt 1 ^^
es soll sich so lange bewegen, bis es auf etwas anderes trifft...

BladeRunner

Moderator

BeitragDi, Dez 07, 2004 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast die ifs verschachtelt, d.h. das zweite wird nur aufgerufen wenn das erste "wahr" ist. Mach zwei getrennte ifs und es wird gehen...
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

azureuz

BeitragDi, Dez 07, 2004 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
na geht doch! Very Happy

vielen dank Smile

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group