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

XNA - És a bounding-box-ok

2012.03.20. 08:21 :: Sir Butcher

Megint egy kis technika bla-bla következik, de hátha, valakinek még szüksége lesz erre, amit tegnap megtaláltam :)

EDIT: A Boundingbox az a téglatest, aminek két pontja van eltárolva: egy maximum és minimumpont, ami közrezár egy teret, és így remekül lehet "durvább" ütközésérzékelésre használni.

Tegnap és tegnap előtt fejest ugrottam a magasabb szintű ütközés érzékelésbe - egészen pontosan azzal kísérleteztem, hogy hogyan is tudok kinyitni egy ajtót úgy, hogy csak akkor indítsa az animációt, ha ránézek, és adott távolságon belül vagyok. Fejben megvolt az egyszerű ötlet - a kamera közepéből indítók egy Ray-t a camTarget irányába, és egyszerűen megnézem, hogy ütközik-e az adott test Boundingbox-jával. Ez, kis küzdelmek után sikerült is (előtte még sosem használtam ray-t de meg kell mondjam, ennél egyszerűbb tényleg nem is lehetne.)

Első lépés megvolt, továbbléptem: sok ajtó, elszórva véletlenszerűen a világban, és egyesével lehessen nyitni őket. Na igen, de itt szemet szúrt valami: a boundingbox-ok egyáltalán nem úgy helyezkednek el, ahogy az ajtók. Amint elforgatok egy ajtót, a box megnő, torzul, és az addigi tökéletes burkolás szükségtelen terepet fog elemészteni. De gondoltam, kihagytam a forgatást a kódból a BBox-hoz. De sajnos a probléma közel sem volt ennyire egyszerű. Szóval belevetettem magam a google izgalmas világába, és megismerkedtem az Axis-aligned bounding-box-okkal. (Nagy bánatomra, elvoltam addig is nélkülük).

Vagyis az XNA-s box-ok mindig a tengelyekre merőlegesen helyezkednek el, így hiába forgatom őket, a végeredmény mindig ez lesz. A tegnapi napom megoldás kutatás jegyében telt el, és, eléggé siralmas eredménnyel. Találtam pár próbálkozást, de leginkább csak alig-alig, vagy csak egy-két ritka esetre valót. Már kezdtem beletörődni, hogy kénytelen leszek írni egyet (amitől húzódtam, bevallom, mivel tippem sincs, hány napomat emésztette volna fel...) amikor kb a 5. találati oldalán a google-nak kidobta a Microsoft apphub oldalát: és mik vannak: ott van fenn egy teljesen rendben megírt Object-Oriented boundingbox kód, minden szükséges helper metódussal együtt, teljesen ugyanolyan szinten és minőségben, abszolút kompatibilisen megírva XNA-nak az alap box-ához képest. Ma hozzáírtam a saját kódjaimat egy kicsit, és örömmel jelentem: tökéletesen üzemel.

Tehát, ezúton is örök hála az MS fejlesztőinek, illetve, az ebbe a problémába belefutó magyar fejlesztőknek, itt a link:

create.msdn.com/en-US/education/catalog/sample/collision

Szólj hozzá!

Címkék: forgatás xna oobb aabb boundingbox

A bejegyzés trackback címe:

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

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