[phpBB Debug] PHP Notice: in file /includes/session.php on line 1007: Cannot modify header information - headers already sent by (output started at /mnt/data/accounts/p/pws/data/www/kreveta/article.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 1007: Cannot modify header information - headers already sent by (output started at /mnt/data/accounts/p/pws/data/www/kreveta/article.php:1)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 1007: Cannot modify header information - headers already sent by (output started at /mnt/data/accounts/p/pws/data/www/kreveta/article.php:1)
Totální destrukce! - Kreveta.NET

Totální destrukce!

Vystavil Firejs

26.11.2010

3
Určitě jste o tom snili – mít hru kde se dá všechno rozstřílet a zničit… a neříkejte, že ne. ;)


Bezesporu je větší zábava bojovat, když kolem vás létají kusy beden, stolů, počítačů atd., ale přelstít nepřítele tím, že ho obejdeme skrze zeď, to je teprve něco!

Začneme bednami. ;)

Určitě budeme potřebovat sprite bedničky a pak nějaké její kousky (pro lepší efekt můžete nastavit animaci, například rotaci). Dále vytvořte nový objekt „kousek“, který bude mít po vytvoření nastaveno „Move free“ na „random(360)“ se speed na „1+random(2)“, což nám zajistí, že pokaždé vyletí jiným směrem a rychlostí. Samozřejmě musíme nastavit friction(tření) například na 0.1, aby nám objekt někdy zastavil. Druhým eventem bude klasický step, ten bude kontrolovat rychlost a při nule zastaví animaci (např. change the sprite – speed 0).

Nyní si vytvoříme bednu. V create eventu bude mít nastavenou proměnou „život“ například na hodnotu pět. Při kolizi s kulkou se sníží o jedna a také se na relativní pozici vytvoří „kousek“. Ve stepu pak bude kontrola, zda není život menší než jedna, a pokud ano, objekt se zničí. V destruktoru pak bude vytvoření mnoha kousků a nějaký pěkný efekt hnědého kouře, případně i spuštění zvuku.

Stejným způsobem můžete udělat zničitelné úplně všechno, ale dávejte si pozor, aby ze železné bedny nelítaly dřevené kusy atp. ;)

Druhá část dnešního článku pak bude věnována problematice zničitelných zdí. Existuje mnoho metod jak je vytvořit a všechny jsou docela náročné na hardware. Dnes vám ukážu jednu z nich.

Připravte si čtyři sprity – jeden pro novou zeď, druhý pro poškozenou zeď, třetí pro zničenou a pak si vytvořte jeden malý – který bude velký asi jako jedna třetina původního obrázku. Budou vypadat nějak takto:



Prvním objektem bude zed_maly_kus. Nastavte příslušný obrázek a znovu nastavte život(třeba jen na jeden), kousky atp.

Druhým objektem bude zed_znicena, u toho si nastavte depth například na 1 (aby se zobrazovala vždy dole).

Třetím objektem bude zed. Bude mít určitý život a proměnou „znicena“, tu nastavte na false. Ve stepu pak kontrolujte, zda je život menší, než (dejme tomu) polovina celkového a zda je zničena na false. Pakliže ano, nastavte ji na true a změňte obrázek. Při destrukci pak objekty nechte vytvořit devět objektů „zed_maly“ na správných souřadnicích a velkou „zed_znicena“.

A teď už se můžete začít probourávat zdmi – samozřejmě čím více malých kousků bude tvořit, tím krásněji se vám do zdi bude tvořit díra. Toto nastavení záleží už jen na vás ;)

Nakonec si vytvoříme explozi, a proto si vyrobíme klasické červené soudky. Prvně si vytvoříme sprit soudku a pak dva další, kterými budou dvě kružnice – jedna menší červeně, druhá větší žlutě – asi chápete, že půjde o rozsah a sílu zranění.

K soudku si jen řekneme, že po zničení vytvoří naší explozi – ta se bude tvořit ze dvou objektů (ty kružnice), které se po dvou až třech stepech zničí. Poté už zbývá pouze nastavit potřebné kolize do zničitelných objektů – při kolizi s červeným ubírejte dva životy, se žlutým třeba jen půlku. Tohle nám zajistí pěkný efekt, viditelný hlavně na zdech, ta nejblíže bude zničená, zatímco ty vedle jen poškozeny. Samozřejmě je to celé o vychytání správných hodnot, ale to už je na vás.



Teď už zbývá pouze přidat posunování předmětů z minulého článku. Úplně vidím tu scénu, kdy před sebou posunuji bednu, ze které mi odskakují do ksichtu kusy dřeva kvůli palbě nepřátel, a mezitím si raketometem vyrábím dveře do nejbližší budovy – nádhera.

Pokud si nevíte rady, můžete nahlédnou do přiloženého gmk souboru: Download


Hodnocení +2Líbí
Přečteno 1727-krát

Komentáře

Přidat nový



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


Zapsal JayaJ - 28.11.2010 14:26



už jde x) supeer



Zapsal Firejs - 27.11.2010 22:19



Divné, místo stažení se otevře hlavní stránka - zkusím přeuploadovat.



Zapsal JayaJ - 27.11.2010 21:45



Navod dobrej x), určitě bych si to v nějaký hře skusil x), akorat ten gmk soubor nejde stahnout ;)




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.