Spielfigur schaut in falsche Richtung

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

exastion

Betreff: Spielfigur schaut in falsche Richtung

BeitragMi, Jul 29, 2009 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich bin noch neu hier, und habe keine richtige Antwort auf meine Frage gefunden, nämlich die, wie man, zB. bei Mario, hinbekommt, dass die Spielfigur immer in die Richtung schaut, in die sie gerade gelaufen ist.

Bis jetzt habe ich nur, wenn die Spielfigur nach rechts läuft, dass sie dann nach rechts schaut, wenn sie aber nach links läuft, dann schaut sie nachher wieder nach rechts.

Hier ist mal der Code, wäre froh, wenn mir jemand sagen könnt, was ich tun kann.

Code: [AUSKLAPPEN]
Global xmax=640 ymax=480
Global xmet=xmax/2 ymet=ymax/2
Global R=255 G=R B=G
Global geschwindigkeitLaufen=20
Global geschwindigkeitGehen=10
Global geschwindigkeitPferde=40
Global WaldYmax=ymax
Global Waldxmax=1740
Global X0=0
Global Y0=0
Global frametimer = CreateTimer(60)
Global pl203I=0
Global pl205I=0
Graphics xmax,ymax,32,1
SetBuffer BackBuffer()
Global DuWeldenvarden0 = LoadImage("C:\Documents and Settings\Sven\Desktop\Blitz3D\Eragon_2D\gfx\Du Weldenvarden 0.bmp")
Global DuWeldenvardenMinus1 = LoadImage("C:\Documents and Settings\Sven\Desktop\Blitz3D\Eragon_2D\gfx\Du Weldenvarden -1.bmp")
Global FigurStehen205I = LoadImage("C:\Documents and Settings\Sven\Desktop\Blitz3D\Eragon_2D\gfx\Arya stehenI.bmp")
Global FigurStehen203I = LoadImage("C:\Documents and Settings\Sven\Desktop\Blitz3D\Eragon_2D\gfx\Arya stehen203I.bmp")
Global FigurStehen205II = LoadImage("C:\Documents and Settings\Sven\Desktop\Blitz3D\Eragon_2D\gfx\Arya stehenII.bmp")
Global FigurStehen203II = LoadImage("C:\Documents and Settings\Sven\Desktop\Blitz3D\Eragon_2D\gfx\Arya stehen203II.bmp")
Global Figur205 = OpenMovie("C:\Documents and Settings\Sven\Desktop\Blitz3D\Eragon_2D\gfx\Arya laufen.gif")
Global Figur203 = OpenMovie("C:\Documents and Settings\Sven\Desktop\Blitz3D\Eragon_2D\gfx\Arya laufen203.gif")
Repeat
 Cls
 WaitTimer frametimer
 DrawImage DuWeldenvarden0,X0,Y0
 DrawImage DuWeldenvardenMinus1,-WaldXmax,Y0
 DrawImage FigurStehen205I,xmet,ymax-100
 If KeyDown(205) Then X0=X0-geschwindigkeitLaufen
 If KeyDown(205) Then WaldXmax=WaldXmax+geschwindigkeitLaufen
 If KeyDown(205) Then DrawMovie Figur205,xmet,ymax-100
 If KeyDown(203) Then X0=X0+geschwindigkeitLaufen
 If KeyDown(203) Then WaldXmax=WaldXmax-geschwindigkeitLaufen
 If KeyDown(203) Then DrawMovie Figur203,xmet,ymax-100

 
 
 Flip
Until KeyHit(1)
End
 

n-Halbleiter

BeitragMi, Jul 29, 2009 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
An sich würde ich dir raten, eine Lokale/Globale Variable für die Richtung des Spielers zu machen, z.B. "1" für rechts und "2" für links. Nun setzt du immer, wenn die Taste für die Bewegung nach links gedrückt wurde, die Variable für die Richtung des Spielers auf 2 (um vom Beispiel vorher auszugehen). Später prüfst du dann in einer If-Abfrage, welche Grafik dann gemalt werden soll (Die, die nach links sieht, oder die, die nach rechts sieht). Beispielcode BlitzBasic: [AUSKLAPPEN]

Local SpielerRichtung=1
Local Spieler_nachlinks=LoadImage("bla.png"),Spieler_nachrechts=LoadImage("bla2.png")
Local SpielerX,SpielerY

Repeat
If KeyHit(203) Then SpielerX=SpielerX-5:Spielerrichtung=2
If KeyHit(205) Then SpielerX=SpielerX+5:Spielerrichtung=1
If SpielerRichtung=1
DrawImage Spieler_nachrechts,SpielerX,SpielerY
ElseIf SpielerRichtung=2
DrawImage Spieler_nachlinks,SpielerX,SpielerY
EndIf
Until KeyHit(1)
End


Ich weiß, das ist nicht der eleganteste Code, aber er soll ja nur deutlich machen, was ich meine.
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit
Ploing!
Blog

"Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935)
 

exastion

BeitragMi, Jul 29, 2009 19:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, das klappt jetzt, danke

MfG exastion

EDIT: Ausserdem kann ich diesen Code für noch mehr benutzen, habe ich rausgefunden, nochmals danke

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group