HTML

Survive Developement

Itt olvashatod a Survive! nevű játék fejlesztésének állapotát, lépéseit. És mi is lesz a játék? Egy zombis-túlélős játék, ahol elsősorban a csapatmunkára építkezve kell megpróbálni életben maradni egy kihalt városban. A terep teljesen a tietek, nincsenek szabályok: éljetek túl, ahogy tudtok!


Küldj e-mailt nekünk:
gilgamesco@gmail.com

Sikolyok

Ettől tépjük a hajunkat:

Friss topikok

  • Sir Butcher: A gyors mozgású ütközés-érzékelés majd a lövésnél lesz topic :D A második esetben teljesen igaza... (2012.04.05. 16:38) Ütközésérzékelés
  • _fpeti_: Halad ez. (2012.04.04. 22:01) Gravitáció
  • Sir Butcher: Az sem rossz, az tény :D Szerencsére egyelőre annyi különbözőt kell csinálnom, hogy esélyem sincs ... (2012.02.20. 21:48) Scenery - Még több látvány
  • Sir Butcher: Na, ideírom: obj-nél megoldottam a csontokat. Melléktermékként összejöttek, extra számítás nélkül ... (2011.12.02. 11:48) Model Animálás - a probléma, és a (vélt) megoldás
  • Burwor: "A tesztvárosban sétálgatva belefutsz egy házba, aminek hiányzik egy fala. Mit csinálsz?" Zárva a... (2011.11.10. 15:00) Sziduri - a grafmotor bemutatkozik

A második ház II.

2011.11.22. 22:06 :: Sir Butcher

Siker. Ezzel a szóval foglalhatnám össze a ténykedésemet.

Sikerült végre kiszednem a falakat, és megállapítani, hogy adott fal melyik szobához is tartozik. Ennek előfeltétele, hogy tudja azt, hogy az alaprajz alapján melyik vonalak tartoznak hozzá.

Alkottam egy algoritmust, ami elvileg eléggé hatékony (bár egy egészen picit pontatlan). Minden bizonnyal van jobb technika is, de szerintem ez volt a legegyszerűbb. Sajnos egyelőre csak konvex szobákat tud feldolgozni, de remélem ez elég lesz (most hirtelen).

A megoldás a következő volt: fogtam, összeszedegettem a vonalakat, a szobához. Majd, amikor megvoltak, a vonalak végpontjaiból, és egy egészen kevés offsetből (biztonsági tartalékképpen) kiszámoltam egy BoundingBox-ot (ami voltaképpen egy téglatest, semmi egyéb, ütközésérzékeléshez használatos).

Majd, amikor egy lakásban lévő falakat feldolgoztam, megnéztem, melyek azok a falak, amik valamelyik szoba boundingbox-jába esik. Ha talált ilyet, akkor az a fal megkapta az adott szoba számát. Ha nem talált ilyet, akkor -1, jelezve, hogy az a fal a ház külső pontja (vagyis végre a ház külseje is külön textúrázható, bár ez mellékhatás volt csak :D).

És ezzel végülis a végére is értünk. Megvan a lakás, megvannak a szobák, remekül klaffol minden, a lehető legkevesebb ciklussal. Ezzel a lakás inicializálása, feltöltése, 3D generálása 100ms idő (jó, tudom, sok, de teszteltem: az inicializálás és adatfeltöltés tovább tart mint az összes többi művelet, tehát több ház sem kerül sokkal több időbe, mint ez az egy).

És zárásképpen a kép:
(A kék téglatest a BoundingBox).

Szólj hozzá!

Címkék: ház fejlesztés textúrázás fal szelektálás

A bejegyzés trackback címe:

https://survivedev.blog.hu/api/trackback/id/tr793404594

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása