Creando fisica y control carro3d blender phyton

Preguntas y respuestas relacionadas con el uso y desarrollo de scripts Python y plugins para Blender 3D
Responder
zanvapalo
Mensajes: 15
Registrado: Sab Ene 18, 2014 8:09 am
Nombre:

Creando fisica y control carro3d blender phyton

Mensaje por zanvapalo » 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.

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)

Hasta el momento no me a funcionado a mi. Debo estar
haciendo algo mal... al que le funcione,que me cuente.

roegten
Mensajes: 31
Registrado: Sab May 21, 2011 11:38 am
Nombre:

Re: Creando fisica y control carro3d blender phyton

Mensaje por roegten » Jue Ene 23, 2014 7:39 am

Están buenos esos videotutoriales...

Lo que pasó es que tu código tiene bastantes errores. Ya me funcionó. Aquí como me quedó:

Código: Seleccionar todo

#FISICA DEL CARRO

# importando os module
from bge import logic as g
import PhysicsConstraints as pc

# obter o controle
c=g.getCurrentController()

# obter a cena e os objetos da cena
s=g.getCurrentScene().objects

# nome das rodas
rd_0 = s[\"0\"]
rd_1 = s[\"1\"]
rd_2 = s[\"2\"]
rd_3 = s[\"3\"]

# posicao das rodas
rd_p_0 = [1.0, -1.0, 0.0]
rd_p_1 = [-1.0, -1.0, 0.0]
rd_p_2 = [-1.0, 1.0, 0.0]
rd_p_3 = [1.0, 1.0, 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.05
rd_a_s_1 = 0.05
rd_a_s_2 = 0.05
rd_a_s_3 = 0.05

# raio das rodas
rd_r_0 = 0.8
rd_r_1 = 0.8
rd_r_2 = 0.8
rd_r_3 = 0.8

# 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.getVehicleConstraint(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_1)
carro.addWheel(rd_2,rd_p_2,rd_an_2,rd_e_2,rd_a_s_2,rd_r_2,rd_d_2)
carro.addWheel(rd_3,rd_p_3,rd_an_3,rd_e_3,rd_a_s_3,rd_r_3,rd_d_3)

# 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)


#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 -= 2500.0
if tc[events.SKEY]: acelerador = 2200.0 
if tc[events.AKEY]: virar = 0.3
if tc[events.DKEY]: virar -= 0.3
if tc[events.SPACEKEY]: freio = 100.0

# obter a fisica do carro que ta no outro script
carro = o[\"carro\"]

# aplicar aceleracao nas rodas 0,1,2,3
#carro.applyEngineForce(acelerador,0)
#carro.applyEngineForce(acelerador,1)
carro.applyEngineForce(acelerador,2)
carro.applyEngineForce(acelerador,3)

# vira roda 0.1
carro.setSteeringValue(virar,2)
carro.setSteeringValue(virar,3)

# freia rodas 0,1,2,3
#carro.applyBraking(freio,0)
#carro.applyBraking(freio,1)
carro.applyBraking(freio,2)
carro.applyBraking(freio,3)

Saludos.

zanvapalo
Mensajes: 15
Registrado: Sab Ene 18, 2014 8:09 am
Nombre:

Re: Creando fisica y control carro3d blender phyton

Mensaje por zanvapalo » Jue Ene 23, 2014 11:07 am

Amigo grasias por tu correccion. Lo pondre en prectica, haber como me va....Saludos.

Responder