Diskuze: Fall Damage

Ostatní jazyky GameMaker GameMaker Fall Damage

Avatar
Munnel
Člen
Avatar
Munnel:

Ahoj lidi,
jak jste si z názvu mohli všimnout potřeboval bych pomoci jak udělat fall damage. A vím, že toho chci celkem hodně, ale také by mi dosti pomohlo kdyby fungovala "zhruba" tak, že by se snižovala při "slidování" o zeď např. jako v Black Hole.
Předem díky za odpověď
Munnel

 
Odpovědět 30.10.2015 9:45
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Munnel
TomBen:

Black Hole jsem nehrál, ale myslím, že na tom technicky nic není. Uděláš si proměnnou, třeba "D=0". S každým stepem padání k ní přičteš nějaké malé číslo, např. 0.01 a při dopadu zaokrouhlíš D na celé číslo. Když bude pád malý, vyjde 0 a damage je nula. Když bude pád větší vyjde 1 nebo víc. To pak můžeš vynásobit nebo vypodmínkovat a výsledek odečíst od životů.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 30.10.2015 12:05
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Munnel
Člen
Avatar
Odpovídá na TomBen
Munnel:

Moc děkuju, jsi pán.

 
Nahoru Odpovědět 30.10.2015 12:41
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Munnel
TomBen:

To jsem rád, že nejsem dáma. :-D :-D

Nahoru Odpovědět 30.10.2015 13:07
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Munnel
Člen
Avatar
Odpovídá na TomBen
Munnel:

xD
Ale jak jsem to šel vyzkoušet v praxi (po prvé jsem to četl na mobilů) tak mi došlo jedno. Když vemu to co jsi mi napsal

S každým stepem padání k ní přičteš nějaké malé číslo

Tak mi došlo, že nevím jak ten step toho padání zapsat. Nešel by prosím udělat nějakej kód ??? Vím, že toho moc v Game Makeru neumim. Předem díky za odpověď.

 
Nahoru Odpovědět 30.10.2015 13:18
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Munnel
TomBen:

GM má událost Step. Ta se provede tolikrát za vteřinu, kolik máš room speed ( default je 30 ). Zbytek záleží na tom, jak hru děláš. Pokud padání má být třeba shora dolů rychlostí 30 pixelů za vteřinu, tak při room_speed 30 můžeš napsat do Eventu Step něco jako toto:

if !place_meeting(x, y+1, obj_podlaha)   { y+=1; D+=1/60; H=health-floor(D); }
else  { health-=floor(D); H=health; D=0; }

Damage bude začínat na dvou vteřinách pádu.
Health musíš počítat přes další proměnnou, jinak bys neviděl damage průběžně.

Nahoru Odpovědět 30.10.2015 14:42
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.