Primero que nada, tenemos que tener en cuenta nuestro .obj objeto para poder después hacer uso de el yo uso el programa google sketshup para crear fácilmente los objetos deseados yo les dejare la muestra para que los metan a su psp y lo prueben.
Comenzamos y lo primero que tenemos que hacer es cargar nuestro objeto para después ser manipulado, y lo hacemos con esto.
Code
objeto=model.load("obj/objeto.obj")
Ya para estar leyendo esto creo ya saben lo de las rutas así que no explicare(este tuto es un poco mas avanzado)
Después de cargar nuestro objeto tenemos que crear una tabla para manipularlo y es así.
Code
mover={pos={x=0,y=-2,z=-34},rot={x=0,y=0,z=0}}
le ponemos como nombre init y usamos pos que son las posiciones x,y,z que seria donde queremos mostrar nuestro objeto teniendo en cuenta que z es el fondo y el x he y ya deven de saber como se usa (como les digo este es porque ya son avanzados)
el rot que pusimos dentro de ini es para girar la imagen igual utilizaremos x,y,z para hacer las comprobaciones de giro , estas dependeran de como hemos creado nuestro objeto con sketchup.
Después iniciamos nuestro bucle para manipular nuestro objeto a nuestro antojo.
Cargamos controles.
y comencemos a mover nuestro objeto, todo dependera de nuestras coordenadas que pusimos en nuestra tabla int y sus variables, una muestra de como manipular nuestro objeto.
Code
if controls.up() then mover.rot.y=mover.rot.y+1 end -- giramos posición Y
if controls.down() then mover.rot.y=mover.rot.y-1 end -- giramos posición Y al contrario
if controls.triangle() then mover.rot.x=mover.rot.x+1 end -- giramos posición X
if controls.cross() then mover.rot.x=mover.rot.x-1 end -- giramos posición X al contrario
if controls.square() then mover.rot.z=mover.rot.z-1 end -- giramos posición Z
if controls.circle() then mover.rot.z=mover.rot.z+1 end -- giramos posición Z al contrario
if controls.l() then mover.pos.z=mover.pos.z-1 end -- movemos nuestro objeto Z (hacia al fondo)
if controls.r() then mover.pos.z=mover.pos.z+1 end -- movemos nuestro objeto Z (hacia afuera)
if controls.analogx()>100 then mover.pos.x=mover.pos.x+1 end -- movemos nuestro objeto X (derecha)
if controls.analogx()<-100 then mover.pos.x=mover.pos.x-1 end -- movemos nuestro objeto X (izquierda)
if controls.analogy()>100 then mover.pos.y=mover.pos.y-1 end -- movemos nuestro objeto Y (abajo)
if controls.analogy()<-100 then mover.pos.y=mover.pos.y+1 end -- movemos nuestro objeto (arriba)
if controls.start() then mover.pos,mover.rot = {x=0,y=-2,z=-34},{x=0,y=0,z=0} end -- regresamos el objeto a posicion original
Para que las pulsaciones de arriba surjan efecto tenemos que activar todas las cordenadas y lo hacemos así.
Code
objeto:rotation(math.rad(mover.rot.x),math.rad(mover.rot.y),math.rad(mover.rot.z))
y Por ultimo tenemos que mostrar el objeto con las coordenadas que pusimos arriba.
Code
objeto:position(mover.pos.x,mover.pos.y,mover.pos.z);
objeto:blit()
Ponemos que nos muestre en que coordenadas esta nuestro objeto para llevar un control y ver como funciona exactamente.
Code
screen.print(5,5,"Pos: "..mover.pos.x..":"..mover.pos.y..":"..mover.pos.z.." Rot: "..mover.rot.x.." : "..mover.rot.y.." : "..mover.rot.z)
Y por ultimo hacemos que se muestre y cerramos nuestro bucle principal.
Listo ya con esto nos podemos ir dando una idea de como hacer nuestro juego en 3D , lo demás depende de ustedes y sus conocimientos ya adquiridos anteriormente tanto para programación como para creación de objetos con sketchup les dejo el SRC junto con el EBOOT.PBP de luadev que utilice para dicho tutorial así que solo descarguen y metan lo en la carpeta GAME de su psp y miren como funciona exactamente, esto que les digo saludos a todos y espero les sirva.
Descarga: http://www.megaupload.com/?d=4SG4PHEO
sting18