Sunday, 30 April 2017
Carro con control (python)

Carro con control

Carro de control remoto

Vpython puede ser empleado para generar juegos.  Posee una serie de objetos llamados botones que pueden utilizar para la simulación de controles. En este juego el usuario, puede mediante los botones del control, hacer que el carro se mueva para adelante, para atrás o bien rotar.
En esta animación (juego) se utilizaron boxes, ring y controles.

#************************************
from visual import *
from visual.controls import *

def change1():
    x= r1.pos.x
    while r1.pos.x<10:
        rate(10)
        r1.pos.x +=0.4
        r2.pos.x +=0.4
        r3.pos.x +=0.4
        r4.pos.x +=0.4
        mybox.pos.x +=0.4
        mybox1.pos.x +=0.4

def change2():
    while r1.pos.x>-7:
        rate(10)

   
        r1.pos.x -=0.4
        r2.pos.x -=0.4
        r3.pos.x -=0.4
        r4.pos.x -=0.4
        mybox.pos.x -=0.4
        mybox1.pos.x -=0.4
def change3():
    aa= 0.0
    while aa<2:
        aa+=0.1
        rate(10)
        r1.rotate(angle=0.01,origin=(1,1,1), axis=(0,1,0))
        r2.rotate(angle=0.01,origin=(1,1,1),axis=(0,1,0))
        r3.rotate(angle=0.01,origin=(1,1,1),axis=(0,1,0))
        r4.rotate(angle=0.01,origin=(1,1,1),axis=(0,1,0))
        mybox.rotate(angle=0.01,origin=(1,1,1),axis=(0,1,0))
        mybox1.rotate(angle=0.01,origin=(1,1,1),axis=(0,1,0))
#**************************************
scene2 = display(title='El carrito',x=0, y=0, width=600, height=200,center=(5,0,0), background=(1,0.7,1))
scene2.lights = [vector(6,0,2)]

myboxsuelo = box(pos=(0,0,0), length=10, height=0.6, width=20, color=(0.6,0.6,0.3), axis=(0,-0.5,0.8))
mybox1 = box(pos=(0,2,0), length=2, height=1, width=2, color=color.blue)
mybox = box(pos=(0,1,0), length=5, height=1, width=2, color=color.orange)
r1=ring(pos=(1,0.5,1), axis=(0,0,1), radius=0.4, thickness=0.3, color=color.black)
r2= ring(pos=(1,0.5,-1), axis=(0,0,1), radius=0.4, thickness=0.3,color=color.black)
r3=ring(pos=(-1,0.5,1), axis=(0,0,1), radius=0.5, thickness=0.3, color=color.black)
r4=ring(pos=(-1,0.5,-1), axis=(0,0,1), radius=0.5, thickness=0.2, color=color.black)




c = controls() # Create controls window
# Create a button in the controls window:
b = button( pos=(0,0), width=60, height=60,
               text='Adelante', action=lambda: change1(), color=color.yellow )
e = button( pos=(62,0), width=60, height=60,
               text='Atras', action=lambda: change2() , color=color.blue) 
d = button( pos=(30,62), width=60, height=60,
               text='Rotar', action=lambda: change3(), color=color.red ) 
#*********************************************************                  
while 1:
    c.interact() # Check for mouse; drive actions

#*******************************************



{backbutton}