Hola de nuevo.
Recientemente he terminado la primera parte de mi implementación de Ray Casting:
(http://www.alvaromartin.net/images/misc/locateInstances.png)
No se puede observar en acción pero bueno... lo suyo sería un video
Calculo desde donde está el raton en la pantalla lo proyecto hasta el plano y el vector resultante final en Y == 0.0 es a donde muevo el objeto seleccionado.
Dejando pulsado el click del ratón izquierdo se puede arrastrar la instancia, si pulsamos a la vez la tecla CONTROL y movemos el ratón orizontalmente rotamos el objeto. El resultado es una edición y colocación de objetos bastante rápida, teniendo en cuenta que disponemos de una lista correctamente ordenada de creaturas, vegetación, objetos etc...
Available Resources Widget:
(http://www.alvaromartin.net/images/misc/availableResources.png)
Poximamente utilizaré este mismo Ray Casting para 3 cosas.
La primera, para colocar los objetos de la misma forma sobre mi implementación de terreno.
La segunda, una vez sepa donde da el rayo en el terreno podré hacer brushes y capas multiples para texturizar el terreno facilmente.
La tercera, saber donde da un disparo localizado para lucha cuerpo a cuerpo, a distancia etc... y así proveer al sistema de scripts de esa información para poder crear scripts más potentes. Ejemplo: en el script de onDamaged podremos hacer algo como...
local hitEnum = objMe.getBodyHit( )
if ( hitEnum == LEFT_HAND ) then
// si tiene un arma...
local die = 20
local diceRoll = getRandomNumber( 0, die )
if ( diceRoll < (die / 2) ) then
// inutilizar el brazo y soltar el arma
end
elseif ( hitEnum == LEFT_LEG ) then
// hacer más lento a la criatura
end
Saludetes!