Update?

Preguntas y respuestas relacionadas con el desarrollo de videojuegos y aplicaciones 3D interactivas, usando Blender Game Engine.
Responder
blendeando
Mensajes: 21
Registrado: Jue Jul 05, 2007 12:10 pm
Nombre:

Update?

Mensaje por blendeando » Lun Ago 06, 2007 4:26 am

Hola a todos de nuevo,

he estado trabajando un poco en la duplicacion de objetos y, hasta ahora, me ha ido bastante bien. Sin embargo, me ha aparecido un problema al pasarme al Game Engine y es que se me hace la replica tal y como quiero, no me aparece en el juego y, cuando salgo de el (con el ESC), chas! ahi esta la copia donde le he dicho..

Para mandaros el codigo como carajo se copia de Blender a \"internet\" y viceversa?

A ver si me podeis ayudar, muchas gracias ^_^

blendeando
Mensajes: 21
Registrado: Jue Jul 05, 2007 12:10 pm
Nombre:

Re: Update?

Mensaje por blendeando » Lun Ago 06, 2007 5:56 am

Por lo que he visto hasta ahora lo que me pasa es que la escena parece ser que suda un tanto de lo que le añado y/o dejo de añadir..

Alguna idea?

blendeando
Mensajes: 21
Registrado: Jue Jul 05, 2007 12:10 pm
Nombre:

Re: Update?

Mensaje por blendeando » Mar Ago 07, 2007 2:26 am

Bueno,

ya he averiguado como copiar el codigo.. Aqui os lo mando esperando que me podais ayudar como las otras veces..

Código: Seleccionar todo

import Blender
import GameLogic

cont = GameLogic.getCurrentController()
scene = GameLogic.getCurrentScene()
sens = cont.getSensor(\'sensor\')
act = cont.getActuator(\'move\')

\"\"\"print dir(scene)
print dir(sens)
print \"\\n\", dir(act)
print \"\\n\", dir(obj)\"\"\"

mat = Blender.Material.New(\'Red_mat\')
mat.setRGBCol( 1, 0, 0 )
mat2 = Blender.Material.New(\'Green_mat\')
mat2.setRGBCol( 0, 1, 0 )

#mat = Blender.Material.Get(\'Red_mat\')
#mat2 = Blender.Material.Get(\'Green_mat\')

if sens.isPositive():
	oldObj = Blender.Object.Get(\'Cube\')
	me = Blender.Mesh.Get(\'Cube\')
	me.materials = [mat]
	oldObj.select(1)
	Blender.Object.Duplicate(1,1,1,1,1,1,1,1,1,1)

	id = oldObj.getProperty(\'id\').getData() + 1
	newObj = Blender.Object.GetSelected()[0]
	newObj.setName( \'Green_Cube\' )
	newObj.setLocation(3.0,1.0,2.0)	
	newObj.getProperty(\'id\').setData(id)

	#print Blender.NMesh.GetNames()
	last_mesh = Blender.NMesh.GetNames()[id]
	me2 = Blender.Mesh.Get(last_mesh)
	me2.materials = [mat2]
	newObj.select(0)

print scene.getObjectList()		
Blender.Redraw()
*PD: Tened en cuenta que soy novato y que quizas no es el codigo mas optimo..

blendeando
Mensajes: 21
Registrado: Jue Jul 05, 2007 12:10 pm
Nombre:

Re: Update?

Mensaje por blendeando » Jue Ago 09, 2007 4:54 am

Bueno,

he cambiado cosas (bastantes) del codigo anterior.. El tema es que hacer cosas en Blender no significa que se vaya a modificar en el juego instantaniamente..

el siguiente codigo tiene como objetivo el de siempre (U_U) coger un cubo, copiarlo y pintar uno de verde y uno de rojo.. Lo que obtengo (con lo que os pegare a continuacion) es una copia del codigo y, primero me pinta los dos rojos y luego los dos verdes..

Por lo que he podido averiguar esto es debido a que los dos cubos comparten el mismo tipo de mesh (MECube) y, por mas que me pongo a buscar entre las clases y demas, no logro encontrar ninguna manera de independizar (o crear una copia, o llamar de forma distinta) los dos mesh..

Si tienen alguna idea que, o bien me diga como independizar los mesh, o bien para lograr el objetivo (copiar mas colorear) de otra forma, se gradecera mucho.
Adjuntos

[La extensión txt ha sido desactivada y no se mostrará en adelante]


Responder