working on python game using turtles.
have player object that moves up and down (jump) on key press. trying to add moving platform that the player has to jump on.
i tried putting moving platform in a while loop. problem is since the while loop is running to keep the platform moving, the program does not detect key press.
-tried moving turtle.listen() inside the main while loop but that didnt work.
How do I keep the platform moving in a while True loop and have the listener active?
have player object that moves up and down (jump) on key press. trying to add moving platform that the player has to jump on.
i tried putting moving platform in a while loop. problem is since the while loop is running to keep the platform moving, the program does not detect key press.
-tried moving turtle.listen() inside the main while loop but that didnt work.
How do I keep the platform moving in a while True loop and have the listener active?
import turtle screen = turtle.Screen() screen.screensize(1000, 1000) screen.bgcolor("light green") player = turtle.Turtle() player.hideturtle() player.penup() player.shape("circle") player.color("red") player.fillcolor("yellow") player.setposition(-50, -40) player.showturtle() s = turtle.Turtle() s.hideturtle() s.penup() s.shape("square") s.color("black") s.fillcolor("white") s.setposition(-50, -60) s.showturtle() #first tier s1 = turtle.Turtle() s1.hideturtle() s1.penup() s1.shape("square") s1.color("black") s1.fillcolor("white") s1.showturtle() s2 = turtle.Turtle() s2.hideturtle() s2.penup() s2.shape("square") s2.color("black") s2.fillcolor("white") s2.setposition(s1.xcor()+20, 0) s2.showturtle() s3 = turtle.Turtle() s3.hideturtle() s3.penup() s3.shape("square") s3.color("black") s3.fillcolor("white") s3.setposition(s2.xcor()+20, 0) s3.showturtle() s4 = turtle.Turtle() s4.hideturtle() s4.penup() s4.shape("square") s4.color("black") s4.fillcolor("white") s4.setposition(s3.xcor()+20, 0) s4.showturtle() #second tier s5 = turtle.Turtle() s5.hideturtle() s5.penup() s5.shape("square") s5.color("black") s5.fillcolor("white") s5.setposition(s4.xcor()+30, 60) s5.showturtle() s6 = turtle.Turtle() s6.hideturtle() s6.penup() s6.shape("square") s6.color("black") s6.fillcolor("white") s6.setposition(s5.xcor()+20, 60) s6.showturtle() s7 = turtle.Turtle() s7.hideturtle() s7.penup() s7.shape("square") s7.color("black") s7.fillcolor("white") s7.setposition(s6.xcor()+20, 60) s7.showturtle() s8 = turtle.Turtle() s8.hideturtle() s8.penup() s8.shape("square") s8.color("black") s8.fillcolor("white") s8.setposition(s7.xcor()+20, 60) s8.showturtle() #third tier s9 = turtle.Turtle() s9.hideturtle() s9.penup() s9.shape("square") s9.color("black") s9.fillcolor("white") s9.setposition(s8.xcor()+30, 120) s9.showturtle() s10 = turtle.Turtle() s10.hideturtle() s10.penup() s10.shape("square") s10.color("black") s10.fillcolor("white") s10.setposition(s9.xcor()+20, 120) s10.showturtle() s11 = turtle.Turtle() s11.hideturtle() s11.penup() s11.shape("square") s11.color("black") s11.fillcolor("white") s11.setposition(s10.xcor()+20, 120) s11.showturtle() s12 = turtle.Turtle() s12.hideturtle() s12.penup() s12.shape("square") s12.color("black") s12.fillcolor("white") s12.setposition(s11.xcor()+20, 120) s12.showturtle() s13 = turtle.Turtle() s13.hideturtle() s13.penup() s13.shape("square") s13.color("black") s13.fillcolor("red") s13.setposition(s11.xcor()+20, 180) s13.showturtle() #moving plaform while True: s13.backward(3) if s13.xcor() > 250: s13.setheading(0) if s13.xcor() < -200: s13.setheading(180) squareList = [s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12] falling = False def jump(): speed = 2 while speed > 0: y = player.ycor() x = player.xcor() y += 6 x += 1.3 speed -= 0.09 player.setposition(x, y) if speed < 0: falling = True while falling: y = player.ycor() x = player.xcor() y -= 2 x += 1 speed += .10 player.setposition(x, y) for squares in squareList: if (player.xcor() >= 0 and player.xcor() <= 80) and player.ycor() == 20: falling = False if (player.xcor() >= 80 and player.xcor() <= 160) and player.ycor() == 80: falling = False if(player.xcor() >= 160 and player.xcor() <= 240) and player.ycor() == 140: falling = False def right(): x = player.xcor() x += 2 player.setx(x) turtle.listen() turtle.onkey(jump, "Up") turtle.onkey(right, "Right") turtle.mainloop()