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
|
Zaslal: 28. květen 2009, 03:36:35 Předmět: |
|
|
Zajímavá diskuze
Já ted kutím taky jednu 2D hru a používám taky dlaždice
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 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
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  |
|
Návrat nahoru |
|
 |
Sosarian
Založen: 07. 11. 2007 Příspěvky: 51
|
Zaslal: 29. květen 2009, 10:45:24 Předmět: |
|
|
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 |
|
 |
|
|
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