.[ ČeskéHry.cz ].
(2D) TileEngine
Jdi na stránku Předchozí  1, 2
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Crypton



Založen: 14. 05. 2009
Příspěvky: 306
Bydliště: The Void

PříspěvekZaslal: 28. květen 2009, 03:36:35    Předmět: Odpovědět s citátem

Zajímavá diskuze Smile

Já ted kutím taky jednu 2D hru a používám taky dlaždice Smile
Vykrelování mám v tomto pořadí (vrstvách):
-Dlaždice
-Statické objekty
-Dynamické objekty (včetně NPC a PC)
-Světla
-Střechy budov


Nepoužívám Z-Buffer a kdybych tam chtěl přidat třeba nějaký most, tak bych to hodil do té vrstvy kde kreslím střechy Smile a nebo bych vytvořil novou nadvrtvu. Myslím že se to nazývá underlay a overlay layer... takže vrstva pod a nad, a každý vrstva může mít jednu pod a nad vrstvu.

Kolizi jsem taky rešil, ze začátku jsem používal obyčejné TRect, ale používat je pro velké objekty, nebo objektry podivných tvarů pro kolizi je dost nepřesné.

Proto jsem to řešil tak jako to řešil emulátor Mugen, každý objekt má kolizních obdelníků více (takže pole TRect).

Ty obdelníky se umístovaly ručně přímo v editoru postav, takže to byla piplačka.

No a nakonec jsem to řešil tak že každý složitý objekt měl kolizní body a né obdelníky, takže pole typu TPoint, kde jsem si vytvořil aplikaci která je automaticky vypočítala z dané bitmapy (pomocí barevného klíče).

PS: Ultima Online? Taky taky Smile

PS2: Ještě s tím mostem, šlo by to udělat přes triggery a to jednoduše bez velkých úprav.

Dejme tomu že máš ten most na pozici 500, 400 a šířka toho mostu je 100 a výška 50 pixelů.
Já bych to udělal tak že bych tam u toho mostu definoval dva obdelníky, jeden obdelní by byl před mostem a jeden a za mostem, to jsou ty naše trigerry.

Ty obdelníky budou mit stejnou výšku jako ten most, takže 50, a šířku třeba 20 pixelů.

Výpočet těch trigerů by vypadal nějak tahkle

Trigger1.Left.= Most.Left - 20;
Trigger1.Right:= Most.Left;
Trigger1.Top:= Most.Top;
Trigger1.Bottom:= Most.Bottom;


Trigger2.Left.= Most.Right;
Trigger2.Right:= Most.Right + 20;
Trigger2.Top:= Most.Top;
Trigger2.Bottom:= Most.Bottom;

No a když ten hráč projde trigerem 1 tak se nastaví tomu mostu patřičná hodnota Z, a když hráč projde trigerem 2 tak se vrátí hodnota Z toho mostu zpět na normál.



Takhle to můžeš udělat i s jinými objekty Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Sosarian



Založen: 07. 11. 2007
Příspěvky: 51

PříspěvekZaslal: 29. květen 2009, 10:45:24    Předmět: Odpovědět s citátem

problém s tima kolizema není že by bylo komplikovaný je testovat, ale musí byt lehký je kreslit, a hlavne musim nejak dokazat spocitat kterym smerem se mam posouvat kdyz postavicka narazi do rohu nejakyho koliznicho objektu (tzn kdyz prochazim mezi dvema kamenama abych se nemusel trefit presne na pixel)

jinak neco podobny tem triggerum sem tam na tom obrazku mel akorat sem tomu proste rikal transition plane, ale problem je ze ten trigger neni zas tak univerzalni jak se zda a clovek by musel premyslet kdyz by ho umistoval

dival sem se na rpg maker a jelikoz je udelanej dost jednoduse a delaji se v nem efektivni hry asi se s nizim k tomu ze zahodim ideu mostu
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2
Strana 2 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna