Hogyan készítsünk egy normális ütközést a falakkal a 2d-s árkádokban

CRYSTALL m
mester
Csoport: Közösségi GM
Hozzászólások: 8 Tagok:

Megnéztem a GM-re készülő játékokat, és láttam, hogy sok falat ragadtak meg, ezért szeretném elmondani neked, hogy a normális mozgás hogyan történik.
Tehát kezdjük.
Jó játékért először gondolkodnia kell, hogyan kell csinálni.
Így jöttem fel a 10 perc alatt írt kóddal, de garantálja, hogy nem lesz semmilyen szikla.

Hozzon létre egy játékos objektumot és egy fal objektumot.
Hagyja, hogy a lejátszó és a fal objektumok 32 * 32 sprite-el és egy központtal legyenek (16; 16)
Mi írunk a játékosnak
A Create-ben írunk:
levegő = 0;
global.grav = 0;
hsp = 5;
ugrás = 2;

A lépésben a következőket írjuk:
wi = collision_rectangle (x-15, y + 17, x + 15, y + 17 + vspeed, fal, 0,0)
ha wi> 0 és vspeed> 0 és levegő = 1 akkor
levegő = 0;
vspeed = 0;
gravitáció = 0;
y = wi.y-32;
ugrás = 2
>
. Ez egy ütközésvizsgálat, alulról falon
ha wi<0 and air=0 then
levegő = 1;
gravitáció = global.grav
ugrás = 1
>
. Ellenőrizze a fal hiányát az alulról

ha wi> 0 és vspeed<0 then
vspeed = 0;
y = wi.y + 32;
>
. ütközés a mennyezettel
Így írják le az ugrás feldolgozását
Most az ugrás:

A KeyPress eseményhez (bármilyen kulcs) írja:
ha ugrás> 0 akkor
vspeed = 5;
gravitáció = global.grav
ugrás = 1;
>
Most menj jobbra (balra):
A KeyRight esemény esetében:
wi = collision_rectangle (x + 17, y-15, x + 17 + hsp, y + 15, fal, 0,0)
ha wi<0 then
x + = hsp
>
más
x = wi.x-32;
>

A KeyLeft eseményhez:
wi = collision_rectangle (x-17, y-15, x-17-hsp, y + 15, fal, 0,0)
ha wi<0 then
x- = hsp
>
más
x = wi.x + 32;
>

Ez minden.
Ez az egyszerű kód - az ütközések tanulmányozása, legalábbis nem hibás.
Ha jól emlékszem, ez a kód, amelyet használok.
Lóg a falakon stb. könnyen hozzáadható

Rap_Person
gazda
Csoport: Közösségi GM
0 hozzászólás

Kapcsolódó cikkek