Jump'n Run Problem

Previous topic - Next topic

Fenchel

Hallo,
ich hab mal eine Frage an euch Experten, ich bin neu hier und hab auch nicht unbedingt so die Ahnung von Programmierung.
Ich versuche gerade ein einfaches Jump'n Run Demo zu basteln.
Dabei habe ich das Problem, dass der Player Sprite nicht auf eine Plattform springen kann.
Ich wollte dies mit dem Befehl SPRCOLL umsetzen.
Habt ihr vieleicht noch irgendwo einen Demo Quell Code rumliegen, an welchem ich dies nachvollziehen könnte. Die Dateien im Forum sind leider nicht mehr Verfügbar.

Danke schon mal im Voraus

Kitty Hello

Ih mach solche Sachen lieber mit BOXCOLL, weil's schneller ist, aber gut...

Such mal nach "Jump Run" im Forum, da gibt's schon paar Beispiele.

Schranz0r

Move to "GLBasic - de"

Grund:

Ist kein FAQ!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Fenchel

Quote from: Gernot Frisch on 2008-Jun-30
Ih mach solche Sachen lieber mit BOXCOLL, weil's schneller ist, aber gut...

Such mal nach "Jump Run" im Forum, da gibt's schon paar Beispiele.

Hab da ja schon alles durchsucht, aber die externen Dateien die auf anderen Servern liegen sind nicht mehr Zugänglich. Ich wollte mir eigentlich das Jump & Run Gerüst von devlin anschauen. Vieleicht könntest du mir dieses Beispiel per mail schicken wenn dir das nichts ausmacht?
Grüße

Kitty Hello

http://www.glbasic.com/forum/index.php?topic=1077.0 Das ist wohl das Beste.
Ich veranlasse Schranz0r, dass er's anhängt bzw. hochläd.

Schranz0r

Hab es leider nicht mehr auf Webspace... da hab ich ausversehen alles geplättet :(
Reicht die Beschreibung da nicht?
Wenn nicht, mach ich nochmal ein kleines Jump'n Run Tutorial!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Der Code ist als Listing drauf, oder? Bzw. evtl. hat ein anderer das noch rumliegen?

Schranz0r

Ich mach bei gelegenheit ein neues Tutorial!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Fenchel

Ich hab mal noch ein wenig ausprobiert und es auch schon geschafft,  dass ich mit einem Ball von einer Plattform auf die andere Springen kann.  Das ganze ist noch ein wenig verbuggt, könnt ihr mir da weiterhelfen? Also der Ball, soll ruhiger springen und wenn ich auf der Sprungtaste bleibe fällt er nicht auf den Boden zurück. Hier mein Quellcode, das Sprite ist ein Ball mit den Maßen 20 x 20

Code (glbasic) Select
GLOBAL pos_x = 200 // legt die Start Position in x Richtung fest
GLOBAL pos_y = 50 // legt die Start Position in y Richtung fest


LOADSPRITE "ball.png", 0

WHILE TRUE

// sprung
IF KEY(57)  AND jump=FALSE     // wenn SpaceTaste und die variable jump nicht zutrifft
jump=TRUE // Jump Befehl auf zutreffend setzen
jump_pos=0 // jump_pos bekommt den wert 0
ENDIF

IF jump // wenn jump zutrifft
jump_pos=jump_pos+6 // jump_pos wird um 6 erhöht (Geschwindigkeit des Hüpfens)
IF jump_pos>180 // wenn jump_pos den wert 180 ereicht (180 = Sinus Intervall)
jump_pos=0 // wird jump_pos wieder auf 0 gesetzt
jump=FALSE
ENDIF
ENDIF

IF jump=FALSE // Pseudo Schwerkraft, Ball wird immer nach unten gezogen
pos_y=pos_y+4
ENDIF





// bewegung
IF KEY (203) THEN pos_x =pos_x -2 // Tastendruck nach links, bewegt den Ball 2 Pixel nach links
IF KEY (205) THEN pos_x =pos_x +2 // Tastendruck nach rechts, bewegt den Ball 2 Pixel nach rechts

IF pos_x<1 //Spielfeldbegrenzung am linken Rand
pos_x=1

ENDIF

IF pos_x>300 //Spielfeldbegrenzung am rechten Rand
pos_x=300

ENDIF


//kollision
a= pos_y - SIN (jump_pos) * 70

col_boden= BOXCOLL(pos_x, a, 15, 15,   0, 230, 320, 1) // Bodenkollision
IF col_boden=TRUE
pos_y=220
ENDIF

col= BOXCOLL(pos_x, a, 15, 15,   195, 190, 60, 1) // Kollision mit erster Plattform
IF col=TRUE
pos_y=180
ENDIF

col1= BOXCOLL(pos_x, a, 15, 15,   100, 130, 60, 1)// Kollision mit zweiter Plattform
IF col1=TRUE
pos_y=120
ENDIF


DRAWSPRITE 0, pos_x, pos_y - SIN (jump_pos) * 70
DRAWRECT 195, 200, 60, 20, RGB(0, 0, 255)
DRAWRECT 100, 140, 60, 20, RGB(0, 0, 255)
DRAWLINE 0, 240, 320, 240, RGB(0, 255, 0)


SHOWSCREEN

WEND

Kitty Hello


Fenchel

Danke schön, das hätte ich mir auch schon vorher mal anschauen können, da zeigt sich mal wieder wer lesen kann ist klar im Vorteil, Sorry =D

Kitty Hello

Das wurde heute erst geändert/reingestellt ;)

Schranz0r

Gernot du Hund ^^

Echt mal  :good:
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard