Jump 'n' Run Collision

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

cleminator

Betreff: Jump 'n' Run Collision

BeitragFr, Jun 28, 2013 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,

nach fast 7 Jahren hat mich der Eifer wieder gepackt und ich habe wieder angefangen BlitzBasic zu programmieren.

So jetzt bin ich gerade an meinem ersten 'Super Mario' dran. Dabei bin ich auf folgenes Problem gestoßen.

Die Schwerkraft ist solange in Takt, wie Mario mit dem Boden kollidiert. Das ist ja sehr logisch. Wenn jetzt aber vor Mario eine Wand kommt (er gegen diese Wand rennt) dann will ich, dass Mario nicht mehr weiter gehen kann (also die X-Bewegung stoppen). DAs Problem ist folgendes: Wie mache ich dass, wenn die Gesamte Map nur eine .png Datei ist? Wenn ich die Kollision abfrage und dann if not imagescollide(mario, mario_x,y, welt,x,y) then mario_x = mario_X + 1, dann geht das ja nicht, denn sobald Mario den Boden mit den Füßen berührt, kann ich nicht mehr laufen.

Nun hatte ich die Idee einfach mit Mario zusammen ein kleines unsichtbares pixel vor ihn zu setzen, welches mit der 'Wandkollision' abgefragt wird. Das würde gehen, ist aber meiner Meinung nach nicht gerade elegant. Habt ihr eine elegantere Lösung?


schöne Grüße

Cleminator

BladeRunner

Moderator

BeitragFr, Jun 28, 2013 14:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, belese dich zum Thema "TileMap". Es ist nicht sinnig solch ein Spiel mit einer großen Hintergrundgrafik zu machen, eine Karte aus Kacheln kommt solchen Problemen deutlich entgegen und spart zudem einiges An Speicher ein.
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
 

cleminator

BeitragFr, Jun 28, 2013 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay alles klar - hast du ein paar gute Links für mich?
Google find ich schon etwas..aber vielleicht hast du etwas speziell dafür zugeschnittenes?

mfg und danke für die schnelle Antwort.

BladeRunner

Moderator

BeitragFr, Jun 28, 2013 19:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast hier 300.000 Beiträge im Portal, davon werden sich sicher einige mit Tilemaps befassen Wink
Die Suche sollte Dir helfen.
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
 

BennyMB

BeitragSa, Jul 06, 2013 11:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Machs so:

Anstelle den ganzen Level in eine einzige Datei zu packen, erstelle eine datei wo alle unterschiedlichen "Felder" aufgelistet sind.

Dann speicherst du jedes Level in eine .dat Datei, wo 0 für Leerstelle steht, 1 für Festblock, 2 für Gefahrenblock, ...

Und dann beim auslesen legst du für alle 1en einen bestimmten bildausschnitt aus der datei mit den feldern aus.

Und bei den Kollisionen fragst du einfach ob ob das zu erreichende Feld eine 0 ist, sonst wird der tastendruck ignoriert bzw. der Sprung gestoppt.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group