Lunes, 21/Ago/2017, 1:45 PM
                          Inicio

Registrarse

Entrada
Le saludo Huésped | RSS
[ Mensajes nuevos · Participantes · Reglas del foro · Búsqueda · RSS ]
Página 1 de 11
Foro » Programacion » Tutoriales programacion LUA » Uso de objetos [.obj] para juegos en 3D [LuaDev]
Uso de objetos [.obj] para juegos en 3D [LuaDev]
sting18Fecha: Sábado, 10/Sep/2011, 2:01 PM | Mensaje # 1
Generalísimo
Grupo: Administradores
Mensajes: 26
Reputación: 32767
Estatus: Offline
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.

Code
while true do


Cargamos controles.

Code
controls.read()


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.

Code
screen.flip()
end


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
 
tutos13Fecha: Domingo, 20/Nov/2011, 4:28 AM | Mensaje # 2
Soldado raso
Grupo: Usuarios
Mensajes: 4
Reputación: 22
Estatus: Offline
Gracias por el Tutorial biggrin
 
sting18Fecha: Domingo, 20/Nov/2011, 11:25 PM | Mensaje # 3
Generalísimo
Grupo: Administradores
Mensajes: 26
Reputación: 32767
Estatus: Offline
Ya sabes tutos espera mas y mejor explicados saludos y gracias por pasar ;).
 
tutos13Fecha: Lunes, 21/Nov/2011, 11:58 AM | Mensaje # 4
Soldado raso
Grupo: Usuarios
Mensajes: 4
Reputación: 22
Estatus: Offline
Quote (sting18)
Ya sabes tutos espera mas y mejor explicados saludos y gracias por pasar ;).

De nada, eso espero.
Un saludo del Team Esp
 
Foro » Programacion » Tutoriales programacion LUA » Uso de objetos [.obj] para juegos en 3D [LuaDev]
Página 1 de 11
Búscar:

Copyright MyCorp © 2017 Hacer un sitio web gratis con uCoz