Blender phyton carro game
Hola a todos, a continuación, les voy a pasar la programación
Blender Python para la Física y control de un carro 3d para
un video juego. Les paso también los enlaces de los video tutoriales
de dónde saque esto.
ESTA ES La FÍSICA. Esta en portugués.
# importando os module
from bge import logic as g
import PhysicsConstraints as pc.
C = g, getCurrentController().
# obter a cena e os objetos da cena
s = g, getCurrentScene(), objects.
# no me das rodas
rd_0 = s[0]
rd_1 = s[1]
rd_2 = s[2]
rd_3 = s[3].
# posicao das rodas
rd_p_0 = [ 0.85, 1.6, 0.0]
rd_p_1 = [-0.85, 1.6, 0.0]
rd_p_2 = [-0.85, -1.6, 0.0]
rd_p_3 = [ 0.85, -1.6, 0.0].
# ángulo 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.5
rd_a_s_1 = 0.5
rd_a_s_2 = 0.5
rd_a_s_3 = 0.5.
# raio das rodas
rd_r_0 = 0.7
rd_r_1 = 0.7
rd_r_2 = 0.7
rd_r_3 = 0.7.
# 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 física
carro = PC, createConstraint(o, getPhysicsId(),0.11
carro = carro, getConstraintId()
o[carro] = carro = PC, getVehicleConsraint(carro).
# add as rodas no carro
carro, addwhel(rd_0, rd_p_0, rd_an_0, rd_e_0, rd_a_s_0, rd_r_0, rd_d_0)
carro, addwhel(rd_1, rd_p_1, rd_an_1, rd_e_1, rd_a_s_1, rd_r_1, rd_d_1)
carro, addwhel(rd_2, rd_p_2, rd_an_2, rd_e_2, rd_a_s_2, rd_r_2, rd_d_2)
carro, addwhel(rd_3, rd_p_3, rd_an_3, rd_e_3, rd_a_s_3, rd_r_3, rd_d_3).
# límite da rotacao do carro, para 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 CONTROLAR EL 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 = 2500.0
if tc[events. AKEY]: virar = 0.5
if tc[events. DKEY]: virar -= 0.5
if tc[events. SPACEKEY]: virar = 70.0.
# obter a física do carro que está 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. SetSteringValue(virar,0)
carro, setSteringValue(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 ha funcionado a mí. Debo estar
haciendo algo mal, sin embargo, en estudiado con cuidado
los tutoriales arriba señalados, y no me funciona nada.
Tengo instalada la última versión de Blender, se dice no
necesitar tener Python instalado.
A ver si alguien se mete en este proyecto y me corrige.
Blender phyton carro game
Creo que le faltan script, s, y no has subido el blend para que lo podamos analizar.
Si quieres mirar este link, donde explica una forma de ponerle las ruedas y controlarlo.
http://www.tutorialsforBlender3d.com...Vehicle_2.html
Se puede descargar el blend para versión 2.6.
1 Archivos adjunto(s)
Blender phyton carro game
A mi se me cierra el Blender y sin ningún error aparente, subo el blend, tengo la versión de Blender 2.72b un Amd apu con 16g de RAM.
-- IMÁGENES ADJUNTAS --
https://foro3d.com/attachment.php?attachmentid=201455
Blender phyton carro game
Cita:
Iniciado por
tattos3d
A mi se me cierra el Blender y sin ningún error aparente, subo el blend, tengo la versión de Blender 2.72b un Amd apu con 16g de RAM.
No entiendo mucho de Python, pero el texto que tienes puesto, creo que lo has copiado de alguna página traducida, por lo que te a cambiado las ordenes por palabras en castellano, que en el lenguaje Python no tienen ningún significado.
No me refiero a los nombres de las ruedas, si no a las ordenes Python como, por ejemplo, escena = lógica, getCurrentScene(), objects
http://www.blender.org/api/Blender_P...ge, types.html.
Blender phyton carro game
SI es del mismo tutorial lo he hecho al igual, pero a mi manera.
Blender phyton carro game
¿Pero a ti se te cierra el Blender como a mí?
Blender phyton carro game
Cita:
Iniciado por
Soliman
No entiendo mucho de Python, pero el texto que tienes puesto, creo que lo has copiado de alguna página traducida, por lo que te a cambiado las ordenes por palabras en castellano, que en el lenguaje Python no tienen ningún significado.
No me refiero a los nombres de las ruedas, si no a las ordenes Python como, por ejemplo, escena = lógica, getCurrentScene(), objects.
http://www.blender.org/api/Blender_P...ge, types.html.
Eso son variables y las puedes llamar como te de la gana.
Blender phyton carro game
Ya te he dicho que no se mucho de Python, pero de todas formas. ¿estás seguro que este texto está bien?
Código:
#importando modulos.
From bge import logic as lógica
import PhysicsConstraints as pcontrolador.
#obtener controlador.
Controlador = lógica, getCurrentController().
#obtener objetos de la escena.
Escena = lógica, getCurrentScene(), objects.
#nombre de las ruedas.
Rueda_d_d= [rueda_delantera_derecha]
rueda_d_i= [rueda_delantera_izquierda]
rueda_t_d= [rueda_trasera_derecha]
rueda_t_i= [rueda_trasera_izquierda].
#posiciónando las ruedas.
Rueda_p_d_d = [-1.5, 3.0, 0.0]
rueda_p_d_i = [1.5, 3.0, 0.0]
rueda_p_t_d = [-1.5, -2.5, 0.0]
rueda_p_t_i = [1.5, -2.5, 0.0].
#ángulo de la suspension.
Rueda_an_d_d = [0.0, 0.0, -1.0]
rueda_an_d_i = [0.0, 0.0, -1.0]
rueda_an_t_d = [0.0, 0.0, -1.0]
rueda_an_t_i = [0.0, 0.0, -1.0].
#eje.
Rueda_e_d_d = [-1.0, 0.0, 0.0]
rueda_e_d_i = [-1.0, 0.0, 0.0]
rueda_e_t_d = [-1.0, 0.0, 0.0]
rueda_e_t_i = [-1.0, 0.0, 0.0].
#altura de la suspension.
Rueda_as_d_d = 0.2
rueda_as_d_i = 0.2
rueda_as_t_d = 0.2
rueda_as_t_i = 0.2.
#radio de las ruedas.
Rueda_r_d_d = 0.75
rueda_r_d_i = 0.75
rueda_r_t_d = 0.75
rueda_r_t_i = 0.75.
#dirección.
Rueda_d_d_d = True
rueda_d_d_i = True
rueda_d_t_d = False
rueda_d_t_i = False.
#obtener el objeto conectado al coche.
Objeto = controlador, owner.
#creando la fisica.
Coche = pcontrolador, createConstraint(objeto, getPhysicsId(),0,11)
coche = coche, getConstraintId()
objeto[coche] = coche = pcontrolador, getVehicleConstraint(coche).
#añadir las ruaedas al coche.
Coche, addWhel(rueda_d_d, rueda_p_d_d, rueda_an_d_d, rueda_e_d_d, rueda_as_d_d, rueda_r_d_d, rueda_d_d_d)
coche, addWhel(rueda_d_i, rueda_p_d_i, rueda_an_d_i, rueda_e_d_i, rueda_as_d_i, rueda_r_d_i, rueda_d_d_i)
coche, addWhel(rueda_t_d, rueda_p_t_d, rueda_an_t_d, rueda_e_t_d, rueda_as_t_d, rueda_r_t_d, rueda_d_t_d)
coche, addWhel(rueda_t_i, rueda_p_t_i, rueda_an_t_i, rueda_e_t_i, rueda_as_t_i, rueda_r_t_i, rueda_d_t_i).
#limite de la rotación del coche.
Coche, setRollInfluence(0.05,0)
coche, setRollInfluence(0.05,1)
coche, setRollInfluence(0.05,2)
coche, setRollInfluence(0.05,3).
.
Si desconectas el Script de FISICA, ya no se cuelga, por lo que deduzco que será algo del texto que no está bien.
A ver si hay algún programador que nos pueda ayudar. Saludos.