Creando fisica y control carro3d blender phyton
Publicado: Mié Ene 22, 2014 2:14 am
Hola a todos, acontinuacion, les voy a pasar la programacion
blender phyton para la Fisica y control de un carro 3d para
un video juego. Les paso tambien los enlaces de los video tutoriales
de donde saque esto:
http://www.youtube.com/watch?v=Nhy3XCKREv4
http://www.youtube.com/watch?v=Jehf8sILOyA
http://www.youtube.com/watch?v=6QjU2mqGoSc
ESTA ES LA FISICA...Esta en portugues.
Hasta el momento no me a funcionado a mi. Debo estar
haciendo algo mal... al que le funcione,que me cuente.
blender phyton para la Fisica y control de un carro 3d para
un video juego. Les paso tambien los enlaces de los video tutoriales
de donde saque esto:
http://www.youtube.com/watch?v=Nhy3XCKREv4
http://www.youtube.com/watch?v=Jehf8sILOyA
http://www.youtube.com/watch?v=6QjU2mqGoSc
ESTA ES LA FISICA...Esta en portugues.
Código: Seleccionar todo
# importando os module
from bge import PhysicsConstraints as pc
# obter o controle
c=g.getCurrentController()
# obter a cena e os objetos da cena
s=getCurrentScena() objects
# nome das rodas
rd_0 = s[\"roda_0\"]
rd_1 = s[\"roda_1\"]
rd_2 = s[\"roda_2\"]
rd_3 = s[\"roda_3\"]
# posicao das rodas
rd_p_0 = [-1.5, 3.0, 0.0]
rd_p_1 = [1.5, 3.0, 0.0]
rd_p_2 = [-1.5, 2.5, 0.0]
rd_p_3 = [1.5, 2.5, 0.0]
# angulo da suspensao
rd_an_0 = [0.0, 0.0, -1.0]
rd_an_1 = [0.0, 0.0, -1.0]
rd_an_2 = [0.0, 0.0, -1.0]
rd_an_3 = [0.0, 0.0, -1.0]
# eixo
rd_e_0 = [-1.0, 0.0, 0.0]
rd_e_1 = [-1.0, 0.0, 0.0]
rd_e_2 = [-1.0, 0.0, 0.0]
rd_e_3 = [-1.0, 0.0, 0.0]
# alturada suspensao
rd_a_s_0 = 0.2
rd_a_s_1 = 0.2
rd_a_s_2 = 0.2
rd_a_s_3 = 0.2
# raio das rodas
rd_r_0 = 0.75
rd_r_1 = 0.75
rd_r_2 = 0.75
rd_r_3 = 0.75
# direcao
rd_d_0 = true
rd_d_1 = true
rd_d_2 = false
rd_d_3 = false
# obter o objeto conectado, o carro
o = c.owner
# criando a fisica
carro = pc.createConstraint(o.getPhysicsId(),0.11
carro = carro.getConstraintId()
o[\"carro\"] = carro = pc.getVehicleConsraint( carro)
# add as rodas no carro
carro.addwheel(rd_0,rd_p_0,rd_an_0,rd_e_0,rd_a_s_0,rd_r_0,rd_d_0)
carro.addwheel(rd_1,rd_p_1,rd_an_1,rd_e_1,rd_a_s_1,rd_r_1,rd_d_0)
carro.addwheel(rd_2,rd_p_2,rd_an_2,rd_e_2,rd_a_s_2,rd_r_2,rd_d_0)
carro.addwheel(rd_3,rd_p_3,rd_an_3,rd_e_3,rd_a_s_3,rd_r_3,rd_d_0)
# limite da rotacao do carro, pra ele nao capota
carro.setRollinfluence(0.05,0)
carro.setRollinfluence(0.05,1)
carro.setRollinfluence(0.05,2)
carro.setRollinfluence(0.05,3)
ESTA ES PARA CONTROL DEL CARRO
# importando os modules
from bge import logic as g, events
# obter o controle
c = g.getCurrentController()
# obter o objeto conectado o carro
o c.owner
# obter o teclado
tc = g.keyboard.events
# variaveis
freio = 0.0
virar = 0.0
acelerador = 0.0
# as teclas que vai muda os valor das varaiaveis
if tc[events.WKEY]: acelerador -= 300.0
if tc[events.SKEY]: acelerador = 200.0
if tc[events.AKEY]: virar = 0.3
if tc[events.DKEY]: virar -= 0.3
if tc[events.SPACEKEY]: virar = 20.0
# obter a fisica do carro que ta no outro script
carro = o[\"carro\"]
# aplicar aceleracao nas rodas 0,1,2,3
carro.applyEngine(acelerador,0)
carro.applyEngine(acelerador,1)
carro.applyEngine(acelerador,2)
carro.applyEngine(acelerador,3)
# vira roda 0.1
carro.setSteeringValue(virar,0)
carro.setSteeringValue(virar,1)
# freia rodas 0,1,2,3
carro.applyBraking(freio,0)
carro.applyBraking(freio,1)
carro.applyBraking(freio,2)
carro.applyBraking(freio,3)
haciendo algo mal... al que le funcione,que me cuente.