Dauernde Bewegung

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Dauernde Bewegung

Beitrag von Janiboy »

Hi,
ich möchte sone art Bildschirmschoner programmieren. Die Animation gibts bereits, aber wie bekomm ich die Sprite dazu, sich dauernd zu bewegen und nicht nur einmal? Schleife klappt irgendwie nicht.
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von vonTurnundTaxis »

Also... lade z.B. alle Stufen deiner Animation asl #Sprite 1 -9

Code: Alles auswählen

x = 1

Repeat
DisplaySprite(x,POSX,POSY)

If x = 9
y = 1
EndIf

If x = 1
y = 0
EndIf

If y = 0
  x+1
EndIf

If y = 1
  x-1
EndIf
Forever
...Müsste so funktionieren
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Beitrag von Janiboy »

Noch EINE EINZIGE Frage:

Wie bekomm ich folgendes Programm dazu, dass der panzer erst losfährt, wenn ich es durch tastendruck "befehle" und ballert, wenn ichs sage?
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Beitrag von Janiboy »

If InitSprite()=0
EndIf
If InitKeyboard()=0
EndIf
If InitSprite3D()=0
EndIf
If InitMouse()=0
EndIf

If OpenScreen(640, 480, 16, "Mein Spiel")=0
EndIf


If LoadSprite(0, "Panzer1.bmp" ,0)=0
EndIf

If LoadSprite(1, "Panzer2.bmp" ,0)=0
EndIf






TransparentSpriteColor(0, 255, 0, 128)
TransparentSpriteColor(1, 255, 0, 128)



Repeat
If IsScreenActive()
ClearScreen(0,0,0)
DisplayTransparentSprite(AniFrame, x, y)
FlipBuffers()
Delay(200)
AniFrame + 1
If AniFrame => 2 : AniFrame = 0 : EndIf


ExamineKeyboard()

If KeyboardPushed(#PB_Key_Left)
x-1
EndIf

If KeyboardPushed(#PB_Key_Right)
x+1
EndIf

If KeyboardPushed(#PB_Key_F5)
x+13
EndIf


If KeyboardPushed(#PB_Key_F6)
x-3
EndIf
EndIf
Until KeyboardPushed(#PB_KEY_ESCAPE)
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von vonTurnundTaxis »

Ich verstehe deine Frage nicht richtig... Stell sie nochmal!
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Beitrag von Janiboy »

Der Panzer bewegt sich bei meinem Programm von anfang an. Ich will aber, dass er erst fährt, wenn ich ne taste drücke und wieder anhält wenn ich die taste loslasse.
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von vonTurnundTaxis »

achso...

Code: Alles auswählen

Initialisieren...
die beiden sprites laden...
Repeat
If abc = 1
  ANIMATION WIRD FORTGESETZT
EndIf

If TASTEGEDRÜCKT
  abc = 1
EndIf

If TasteLosgelassen (Keyboardreleased())
  abc = 0
EndIf
Until KayboardReleased(#PB_Key_Escape)
Verstanden?
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Beitrag von Janiboy »

Verstanden ja, aber dann sagt der Debugger immer: Until KeyboardPushed(#PB_KEY_ESCAPE) wär falsch. ???
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Janiboy hat geschrieben:Verstanden ja, aber dann sagt der Debugger immer: Until KeyboardPushed(#PB_KEY_ESCAPE) wär falsch. ???
hast du denn kein ExamineKeyboard einmal in der Schleife?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Beitrag von Janiboy »

Doch, aber vielleicht setz ich diesen Befehl zur bewegung einfach an die Falsche stelle (???)
Antworten