Copiar y colorear
Publicado: Mié Ago 08, 2007 5:32 am
Buenas,
verdad que parece facil estas dos acciones? Total, es lo primero que aprendemos cuando somos unos enanos: Copiamos y coloreamos..
Entonces.. Pq es tan dificil de hacer en esto de Blender Game Engine? Simplemente estoy intentando copiar un cubo, mover la copia y colorear uno de rojo y otro de verde..
Os pongo el codigo (aunque me da algo de vergí¼enza pq no soy muy buen programador):
import Blender
import GameLogic
cont = GameLogic.getCurrentController()
scene = GameLogic.getCurrentScene()
sens = cont.getSensor(\'sensor\')
act = cont.getActuator(\"move\")
object = cont.getOwner()
if act.getLastCreatedObject() == None:
act.setObject(\"Cube\")
GameLogic.addActiveActuator(act, 1)
else:
object = act.getLastCreatedObject()
GameLogic.addActiveActuator(act, 1)
object.name = \"GCube\"
object.id = 1
object.position = [3.0, 2.0, 1.0]
print \"PRUEBA\", object.name, object.id, \"FIN PRUEBA\"
# Esto es para pintar, en teoria, el problema es que comparten el mismo mesh (MECube)..
m_i = 0
mesh = object.getMesh(m_i)
while mesh != None:
for mat in range(mesh.getNumMaterials()):
for index in range(mesh.getVertexArrayLength(mat)):
vertex = mesh.getVertex( mat, index )
if object.id == 0:
vertex.colour = [1.0, 0.0, 0.0, 1.0]
else:
vertex.colour = [0.0, 1.0, 0.0, 1.0]
m_i += 1
mesh = object.getMesh(m_i)
Desde ya les estoy muy agradecido.
verdad que parece facil estas dos acciones? Total, es lo primero que aprendemos cuando somos unos enanos: Copiamos y coloreamos..
Entonces.. Pq es tan dificil de hacer en esto de Blender Game Engine? Simplemente estoy intentando copiar un cubo, mover la copia y colorear uno de rojo y otro de verde..
Os pongo el codigo (aunque me da algo de vergí¼enza pq no soy muy buen programador):
import Blender
import GameLogic
cont = GameLogic.getCurrentController()
scene = GameLogic.getCurrentScene()
sens = cont.getSensor(\'sensor\')
act = cont.getActuator(\"move\")
object = cont.getOwner()
if act.getLastCreatedObject() == None:
act.setObject(\"Cube\")
GameLogic.addActiveActuator(act, 1)
else:
object = act.getLastCreatedObject()
GameLogic.addActiveActuator(act, 1)
object.name = \"GCube\"
object.id = 1
object.position = [3.0, 2.0, 1.0]
print \"PRUEBA\", object.name, object.id, \"FIN PRUEBA\"
# Esto es para pintar, en teoria, el problema es que comparten el mismo mesh (MECube)..
m_i = 0
mesh = object.getMesh(m_i)
while mesh != None:
for mat in range(mesh.getNumMaterials()):
for index in range(mesh.getVertexArrayLength(mat)):
vertex = mesh.getVertex( mat, index )
if object.id == 0:
vertex.colour = [1.0, 0.0, 0.0, 1.0]
else:
vertex.colour = [0.0, 1.0, 0.0, 1.0]
m_i += 1
mesh = object.getMesh(m_i)
Desde ya les estoy muy agradecido.