Posunování bedniček a podobného haraburdí...

Vystavil Firejs

08.09.2010

9
V tomto krátkém tutoriálu se naučíte vytvořit postavičku, která dokáže posunovat předměty.


Znáte to, máte hru, ve které běhá panáček, všude jsou různé překážky, ale s hráčem nijak nereagují. Nebylo by lepší, kdyby je hráč mohl posunovat? V tomto článku si ukážeme jednu z mnoha metod jak na to.

Budeme potřebovat nějakou postavičku a krabici. Postavičce uděláme klasické ovládání do čtyř světových stran, s rychlostí např. 3, ale navíc se při zmáčknutí příslušné klávesy uloží proměnná „global.d“ na hodnotu daného směru.


„do prava“ = 0
„nahoru“ = 90
„do leva“ = 180
„dolů“ = 270


Krabice bude solid (pozn. To nám zajistí, že do ní postavička „nevjede“) a v eventu create, bude nastavovat „friction“ na hodnotu 0.1, což nám zajistí, že bedna po získání rychlosti zpomalí. Druhým a zároveň posledním eventem bude kolize s postavičkou. Ta bude obsahovat jen ikonku „move free“, v jejíž direction bude obsahovat výše vytvořenou globální proměnnou. A speed o něco vyšší než rychlost figurky např. 3.5.

Můžeme vytvořit „room“ a šoupat krabici sem a tam... ale... když se setkají dvě krabice, tak se do sebe „zarazí“, to jde však jednoduše opravit přidáním kolize s krabicí, ve které nastastavíme rychlost na nulu, a to pomocí tohoto řádku:
speed = 0


Dále si můžeme vytvořit objekt „zeď“, která bude mít zaškrnuto „solid“. Stím, že v krabici vytvoříme další kolizi, přesně podle té poslední a to samé nezapomeneme udělat i u postavičky, protože jinak by nám mohla procházet zdmi.



V případě, že chcete postavičku ovládat do všech směrů, jednoduše zrušte nastavení "global.d" v klávesách, a do step dejte:
global.d = direction


Stejně tak můžete takto krabice posunovat v plošinovce, ale samozřejmě tam budete muset zapojit gravitaci.

Určitě jsou daleko lepší možnosti, jak podobnou věc vyřešit, ale tahle je jednoduchá, snadná a funguje. ;)

Malá ukázka: Zde


Hodnocení +14Líbí
Přečteno 1482-krát

Komentáře

Přidat nový



Pro přispívání musíte být přihlášen


Zapsal Firejs - 14.11.2010 21:05



Však proč, ne.. píšu že je to jeden z mnoha způsobů.. doslova:"Určitě jsou daleko lepší možnosti..."



Zapsal xem - 14.11.2010 00:16



Ja nechcem nejak rípať ale nestačilo by do kolízie bedne s hráčom dať


hspeed=object0.hspeed
vspeed=object0.vspeed
ja som to skúšal a funguje to lepšie nemusíš sa hrať s direkciou a vytvárať zbytočné premenné ;)



Zapsal xem - 29.09.2010 19:06



Myslím Že adamso robil ten tut a z toho som sa naučil proste že
obj_bedna:
speed=obj_player.speed a potom treba nadstaviť pohyb hráča cez speed niekedy to síce môže byť nevíhodné ale je to presnejšie :)) ale inak tut sa mi páčil.



Zapsal Firejs - 29.09.2010 12:08



Jo však píšu že jsou lepší možnosti jak to udělat... tato je jednoduchá a snadná... nevhodná pro přesnost, neboť když do kostky tlačíš zboku, ale jdeš nahoru - posunuje se nahoru, ale např. v topdown akci na posunování židlí, stolů, různých trosek... dostačuje.
Můžeš popsat tvůj princip "jednoducho cez speed"? Nějak nevím jak to myslíš.



Zapsal xem - 29.09.2010 07:12



tak mne to dosť bugovalo ale prečo to jednoducho nerobiť cez speed???



Zapsal mimamo - 15.09.2010 18:20



Pohyb, gravitace, kolize, střílení, pohyb za hráčem, jednoduchý tut na hru viděnou z boku, jednoduchý tut na topdown.


Jen střílím od boku, jestli to je blbost, včas mě zastavte.



Zapsal Firejs - 13.09.2010 21:00



No, asi to není na škodu, a dokonce se to i snadno a rychle píše (todle mi trvalo jen půl roku :D), jen to chce ty náměty, protože na spousty základních věcí už něco napsáno bylo.



Zapsal mimamo - 12.09.2010 19:43



Pěkné. Určitě bych uvítal více podobně směřovaných návodů - tj. základní věcí v game makeru. :)



Zapsal moddo - 08.09.2010 20:25



Moc pekne :) Ted jsem tohle delal v BlitzMaxu :)




Poslední komentáře

Sousední akvárko

Nejčtenější

Nejlepší

Web Kreveta.net je unikátní sbírkou článků mapují proces tvorby her. Vedle návodů naleznete v krevetím akvárku i rozhovory s vývojáři, recenze, soutěže. Portál Kreveta.net připravují (řazeno abecedně): Akhera, Banane4joy, Bullet_catcher, Burák, Fire.js, Ikkju, Izual, Likandro, Makan, PepiCzech, StorN, Tior.
Akvárko vymaloval Tior, o chod filtrace se stará StorN (design a kód).
Copyright © 2010 Kreveta.net. Všechna práva vyhrazena.