Código Python:
Ver original
#Por Victor Teran from turtle import * import time FORCE_UNIT = 0.1 class entorno(Turtle): def __init__(self, pantalla): #Turtle.__init__(self) self.pantalla = Screen() self.writer = Turtle() #self.tiempo = time() def cargar_principal(self): self.pantalla.setup(250,500) self.pantalla.bgpic("cancha.gif") def decision(self): ht() self.writer.write("Presione 1 'modo vs PC' y 2 'modo vs amigo'", move=False, align='center', font=("Arial",8,"normal")) self.writer.ht() moduno = self.pantalla.onkey(self.modo1,"1") moddos = self.pantalla.onkey(self.modo2,"2") If moduno = True return "Hello world" elif moddos = True: return "Hello w2" listen() def modo1(self): self.writer.up() self.writer.goto (0,-50) self.writer.hideturtle() self.writer.write("Modo 1 seleccionado", move=False, align='center', font=("Arial",8,"normal")) #self.tiempo.sleep(0.5) self.writer.reset() self.writer.hideturtle() self.writer.up() self.writer.goto (0,-50) self.writer.write("Juega con Derecha e izquierda", move=False, align='center', font=("Arial",8,"normal")) def modo2(self): self.writer.up() self.writer.goto (0,50) self.writer.hideturtle() self.writer.write("Modo dos seleccionado", move=False, align='center', font=("Arial",8,"normal")) #self.tiempo.sleep(0.5) self.writer.reset() self.writer.hideturtle() self.writer.up() self.writer.goto (0,-70) self.writer.write("Juegador1 = Derecha e izquierda", move=False, align='center', font=("Arial",8,"normal")) self.writer.goto (0,-80) self.writer.write("Jugador2 = A y D", move=False, align='center', font=("Arial",8,"normal")) #self.tiempo.sleep(0.5) class jugador(Turtle): def __init__(self,): #self.p = Pen() self.player = Turtle() def ubicarse_abajo(self): #ubicarse self.player.up() #self.player1.shape("square") self.player.goto(0,-180) #fin de ubicacion def ubicarse_arriba(self): #moviendo pincel self.player.up() #self.player2.shape("square") self.player.goto(0, 180) def izquierda(self,vx,vy): vista1 = self.player.heading() if not(vista1 == 180.0): self.player.setheading(180) x,y=pos() from math import sin, cos, pi alpha = self.player.heading() * pi / 180.0 vx += FORCE_UNIT * cos(alpha) vy += FORCE_UNIT * sin(alpha) def derecha(self): vista2 = self.player.heading() if not (vista1 == 0.0): self.player.setheading(0.0) global vx, vy from math import sin, cos, pi alpha = heading() * pi / 180.0 vx += FORCE_UNIT * cos(alpha) vy += FORCE_UNIT * sin(alpha) def main(): V=entorno(Turtle) V.decision() V.cargar_principal() J1=jugador() J2=jugador() J1.ubicarse_abajo() J2.ubicarse_arriba() onkey(J2.izquierda(vx,vy),"A") return True if __name__=='__main__': main() mainloop() pass
La idea es que cuando la persona presione en 1 o 2, selecione un modo de juego. Y inmediatamente se bloquee el 1, lo ideal es hacerlo con un "If", pero ando con la duda de como evaluar si uno de los eventos ya ocurrio, para poder desencadenar sus tareas. Por otro lado, quisiera introducir un retardo de 3 seg entre cada mensaje para que quede vacia la cancha, estaba tratando de utilizar la funcion sleep, pero no se me ha ocurrido la manera de pasarla a la clase entorno cuando la vaya a usar y en cuanto a la parte de las variables vx, vy ; no entiendo bien como pasarlas al metodo correctamente.Espero sepan disculpar mi ignorancia, pero estoy aprendiendo y agradezco la colaboracion de la comunidad en esta labor. De antemano gracias.