Figur bewegt sich auf der Mauer bei Iso Maps?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

blackmaster

Betreff: Figur bewegt sich auf der Mauer bei Iso Maps?

BeitragMo, Mai 12, 2008 23:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
wenn ich meine Figur auf einer Iso Map bewege und ein Mauer kommt, dann ist die Fugur plötzlich auf der Mauer.
Wie kann ich das uzmgehen bzw. wie muss ich die Spielfigur auf einer Iso Map zeichnen?

Hier mal der Code wie ich das zeichne:
Code: [AUSKLAPPEN]
For y=0 To 39
  For x=0 To 39
    DrawImage tile,(x-y)*32-scroll_x,(x+y)*16-scroll_y,Spielfeld(x,y)
  Next
Next

DrawImage Spieler,player_x,player_y


wo liegt da der fehler?

Danke schonmal.

MfG

Caesium

BeitragDi, Mai 13, 2008 0:01
Antworten mit Zitat
Benutzer-Profile anzeigen
du prüfst vor jeder bewegung, ob in der entsprechenden richtung, an der stelle zu der der spieler bewegt würde, eine mauer ist. wenn nein, bewegst du ihn.

Code: [AUSKLAPPEN]
Const HOCH = 200

If KeyDown(HOCH) And Spielfeld(spieler_x, spieler_y - 1) <> MAUER
   ;Bewegung
EndIf


gruß,
caesium
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann. Das Gegenteil ist da schon schwieriger. Smile
 

blackmaster

BeitragDi, Mai 13, 2008 0:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Dir.

Ich glaube Du hast mich falsch verstanden oder ich habe mich falsch ausgedrückt.

Also, das mit dem prüfen ob eine Mauer kommt, weiss ich, aber wenn der Spieler sich mit der Wand kolidiert, dann ist der Spieler auf der Mauer und nicht hinter der Mauer, es wird halt falsch gezeichnet, nur wie kann ich das richtig machen?

EDIT: Hier mal ein beispiel wie es bei mir aussieht, wenn der Spieler an einer Mauer ist:
Screen

Ich bekomme das einfach nicht richtig hin.

Gruss

Caesium

BeitragDi, Mai 13, 2008 0:41
Antworten mit Zitat
Benutzer-Profile anzeigen
muss leider zugeben, dass ich noch nie etwas mit iso-maps gemacht habe. die wände (bzw. alle objekte mit kollision) erst nach dem spieler zu zeichnen wäre vielleicht eine möglichkeit, jedoch müsstest du das zeichnen der map dann aufteilen. ich weiß nicht ob du daran schon gedacht hast, geht mit sicherheit auch iwie anders, aber wie gesagt, ich habe keine erfahrung mit isomaps.

sorry, dass ich das falsch interpretiert habe.

gruß,
caesium
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann. Das Gegenteil ist da schon schwieriger. Smile
 

blackmaster

BeitragDi, Mai 13, 2008 0:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, kein problem.

Wenn jemand eine ahnung hat wie ich das ambesten lösen kann, dann wäre ich euch sehr dankbar.

MfG

The Shark

BeitragDi, Mai 13, 2008 7:56
Antworten mit Zitat
Benutzer-Profile anzeigen
du musst zuerst den boden und die von vorne sichtbaren wände dann den spieler und dann die "überlappenden" wände zeichnen.

BladeRunner

Moderator

BeitragDi, Mai 13, 2008 10:32
Antworten mit Zitat
Benutzer-Profile anzeigen
du malst deine karte von oben nach unten und von links nach rechts (das erledigen ja die for-schleifen für dich). Innerhalb der Forschleife musst du nun prüfen ob die aktuelle Koordinate die des Spielers ist, und wenn ja zeichnest Du ihn ein.
Ganz einfach Wink
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
 

blackmaster

BeitragDi, Mai 13, 2008 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die antworten.

Ich habe versucht den Spieler in der For Next schleife zuzeichnen, aber dann bekomme ich eine hohe auslastung, also der Spieler hat dann verzögerung beim bewegen und ist immer noch nicht hinter der Mauer.

Kann mir vieleicht jemand ein beispiel posten wie man das lösen kann?

MfG

BladeRunner

Moderator

BeitragDi, Mai 13, 2008 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Zeig mal den Code wie du es versucht hast, dann können wir mal schauen wo der Fehler liegt.
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

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group