Bewegungen.
Übersicht

NtotheSBetreff: Bewegungen. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Guten Abend /eher Nacht um die Zeit.
If map(px,py+1) < 2 Then py = py + 1 move = 1 End If End If If KeyDown(200) Then If map(px,py-1) < 2 Then py = py - 1 move = 1 End If End If If KeyDown(203) Then If map(px-1,py) < 2 Then px = px - 1 move = 1 End If End If If KeyDown(205) Then If map(px+1,py) < 2 Then px = px + 1 move = 1 End If End If Es sind nun die 4 Möglichkeiten die Spielfigur zu bewegen. Würde jemand vielleicht mit mir das auseinander pflücken If map(px,py+1) < 2 Then - (px,py) das sind die Koordinaten von der derzeitigen Position des Spielers. WARUM aber +1? Gut wenn [???Ich weiß nicht was] weniger ist als der Array 2... DANN... py = py + 1 Rückt die figur + 1 weiter? move = 1 Warum aber dieser Befehl? Die Figur rückt doch in den vorderen schritt weiter? End If End If Vielen Dank. |
||
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
damit wird vor der bewegung zu dem Feld geprüft, ob es
begehbar ist oder nicht. Dann wurde in der Grafik vermutlich festgelegt, das 0 und 1 begehbare Felder sind und alles ab Grafik 2 und aufwärts ist nicht begehbar. Dann musst du dir das Array auf ein Feld gelegt so vorstellen: Code: [AUSKLAPPEN] 00122301
01223001 12003012 12003400 34001200 24102410 Und im Programm wird überall wo eine Zahl größer gleich 2 steht etwas unbegehbares angezeigt. |
||
NtotheS |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für die Antwort.
Ich habe aber speziell hiermit ein Problem. (px-1,py) Wahrscheinlich fehlt es mir etwas an logik oder ich gehe diese Dinge falsch an. Die px und py sind für mich Koordinaten, aber das -1 und das +1 sagt mir einfach nichts. Vielen Dank PS: 22222222 20000002 20000002 20000002 20000002 22222222 Also das wär nun meiner meinung eine Wand rundeherum. Also logisch gesehen, sollte man die Objekte..über die man nicht rüber gehen DARF immer zuletzt bauen um die übrigen Zahlen freizuhalten, ist das richtig? |
||
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
Erstmal hast du recht mit deinem Bild das das eine Mauer
außen herum ist. stell dir vor dein Spieler steht auf dem Feld (5,5) [man fängt beim grafischen koordinatensystem ja links oben an]. Diese 5,5 ist in den koordinaten px (PLayerX) und py(PlayerY) gespeichert.wenn du nun nach links gehen willst, musst du ja vorher schauen, ob der Punkt begehbar ist. Welche Koordinaten hat denn der Punkt links vom Spieler? Es ist (4,5) und wenn du das nun mit den Spielerkoordinaten vergleichst (5,5) kannst du dir herleiten, das du bei einer linksbewegung px-1 (5-1=4) rechnen musst. Eventuell so verständlich |
||
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Computer rechnet das einfach aus. Nicht mehr, nicht weniger ![]() Nehmen wir an Du bist mit dem Spieler (das X) in Deinem Array an X-Position 2: 22222 20002 22X02 20002 22222 Der Computer rechnet also 2 minus 1 gleich 1. Im Array ist an Position 1 eine Wand -> Mist, dort kann ich nicht hin. Gilt sinngemäß also auch für +1 und die Y-Achse. |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
NtotheS |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen dank erstmal euch beiden
Hubsi, hätte ich recht wenn ich behaupten würde das X steht auf der position (3,3)...also 3 von links nach rechts und dann nach unten. Vielen Dank. |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
NtotheS |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm ja jetzt wird mir das auch klar gut eine 2. Beginnt er aber auch von oben nach unten mit einer 0, ich denke nicht.
Komisch ich bin zwar viele Tutorials durchgegangen, aber die frage ob es auch von oben mit 0 beginnt wird nicht erwähnt. |
||
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
Je nachdem wie man es einprogrammiert kannst du auch von 1 anfangen
aber wenn dann beide (X,Y) von 0 an oder beide von 1 an. NIcht mischen. (auch das geht, aber dann kommst du total durcheinander) |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group