Renderuje, fyzikuje a reaguje na vstup. Problém se zdmi jsem zatím odložil, nejspíš to až takový problém není. Pokud si představíme, že je zeď např. z cihel, není nějaké to zaškobrtnutí předmětu až tak překvapivé. Navíc, protože centrem pozornosti je Ball ve tvaru koule, škobrtnutí se zase tak nevyskytují.
Řešil jsem zajímavý problém s projekcí a jak reagovat na uživatelský vstup. Uživatel vybírá objekt 3D prostoru dotykem prstu (či myší) na obrazovku.
Protože objekty se vyskytují v jedné rovině ve výšce 0-1m, zvolil jsem rovinu, kde se vybírají předměty na půl metru nad zemí.
Pomocí kamery a volání unproject() dostaneme dva body - jeden na near plane (označme A) a jeden na far plane (B). Tyto dva body vytvoří přímku AB a průnikem s rovinou z=0.5 dostaneme hledané souřadnice, s kterými již můžeme hledat ve 2D prostoru světa Box2D.
Z úvah dostáváme hezké rovnice:
v = B-A
A.z + t * v.z = 0.5
t = (0.5 - A.z) / v.z
P = A + t * v
Žádné komentáře:
Okomentovat