Diagonale Bewegung
Übersicht

DesertEagleBetreff: Diagonale Bewegung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich programmiere im moment für Informatik ein kleines 2D spiel. Ziel des spieles ist es mit seinem Spieler, Gegnern auf der Karte, auszuweichen. Die Bewegung vom Spieler hab ich so gemacht:
If KeyDown (208) Then skoordinate_y=skoordinate_y+5 ausrichtung=1 EndIf If ausrichtung=1 DrawImage (spieler,skoordinate_x,skoordinate_y) EndIf If KeyDown (203) Then skoordinate_x=skoordinate_x-5 ausrichtung=2 EndIf If ausrichtung=2 DrawImage (spieler_links,skoordinate_x,skoordinate_y) EndIf If KeyDown (205) Then skoordinate_x=skoordinate_x+5 ausrichtung=3 EndIf If ausrichtung=3 DrawImage (spieler_rechts,skoordinate_x,skoordinate_y) EndIf If KeyDown (200) Then skoordinate_y=skoordinate_y-5 ausrichtung=4 EndIf If ausrichtung=4 DrawImage (spieler_oben,skoordinate_x,skoordinate_y) EndIf Wenn ich jetzt allerdings 2 Tasten gleichzeitig drücke werden einfach die 2 Bilder übereinander gemalt. Wie kann ich dem sagen das der, falls z.B. unten und links gedrückt wird, der Spieler in richtiger Position malen soll? Vielen Dank MfG DesertEagle |
||
![]() |
WüstLing |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi DesertEagle,
Herzlich Willkommen hier im Forum! Zu erst eine kleine Bitte: Verwende die Code-Tags, wenn du hier Code postest. Dies machst du entweder mit: [ code ] *Der Code* [ /code ] (ohne Abstand) oder mit [ syntax="bb" ] *Der Code* [ /syntax ] Nun zu deinem Code: Wozu verwendest du die Variable "ausrichtung"? In deinem Code steht, dass wenn man eine Taste drückt, das Bild auf den Bildschirm angezeit wird. Du willst aber, dass das Bild nur einmal angezeigt wird, folglich begötigst du DrawImage nur einmal.[/code] P.S.: Ich glaube falsches Forum, aber das machen dann schon die Mods ![]() |
||
DesertEagle |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
"ausrichtung" is dafür da, das der Spieler dahin guckt, in welche Richtung man zuletzt gefahren ist. Ohne das wurde der Spieler immer wieder so gemalt wie der zu beginn des Spieles steht.
DesertEagle |
||
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde es ganz anders machen^^
Trotzdem erstmal Herzlich Willkommen! Ich würde erstmal deinen Spieler als Animation abspeichern. Dann musst du dir die Frames anschauen, an denen der Spieler die Richtung wechselt. Also z.B (l = links; r= rechts,o = oben; u= unten): Dein Bild sieht so aus: oooo rr r r l l l l uuuu Ich hoffe das ist verständlich ![]() Immer weiter: Du speicherst den Richtungswechsel in einer variable also: Code: [AUSKLAPPEN] Global links = 8 Global rechts = 4 Global oben = 0 Global unten = 12 Nun brauchst du noch die Variable player_richtung (oder englisch player_dir^^). NUn folgender (Pseudo) Code: Code: [AUSKLAPPEN] If KeyDown(links) player_richtung = links ; Bewegen (x und y etc...) end if if keydown(rechts) player_richtung = rechts ; Bewegen... end if Das ganze auch noch für oben und unten, UNd dann schreibst du EINMAL iin der Main Loop: Code: [AUSKLAPPEN] DrawImage(<deinSpielerBild>,player_x,player_y,player_richtung) <-- Player Richtung gibt also das Frame an Dann noch animieren und fertisch^^ Das war sehr unverständlich wenn du fragen hast, schreib mir ne pn ![]() lg ComNik |
||
WIP: Vorx.Engine |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group