Ich verwende IDLE und Python 3. Der Bildschirm und der Player werden erstellt, aber es passiert nichts, wenn ich eine Taste drücke. Ich habe dieses Problem nachgeschlagen und eine Reihe von Dingen ausprobiert, bin mir aber nicht sicher, was ich falsch mache.
Die andere ungewöhnliche Sache ist, dass jede Funktion einmal ausgeführt wird. Um dies herauszufinden, habe ich in jede Funktion eine print-Anweisung eingefügt. Warum wird jedes Tastendruckereignis einmal ausgeführt, aber es ist nicht an meine tatsächliche Tastatur gebunden?
Code: Select all
import turtle
#Screen setup
screen = turtle.Screen()
screen.bgcolor('black')
screen.title("Space Invaders")
#Create player
player = turtle.Turtle()
player.color('blue')
player.shape('triangle')
player.penup()
player.speed(0)
player.setposition(0, -250)
player.setheading(90)
playerspeed = 15
#Move the player left and right
def move_left():
x = player.xcor()
x -= playerspeed
player.setx(x)
screen.listen()
print("Move left.") #for debugging
def move_right():
x = player.xcor()
x += playerspeed
player.setx(x)
screen.listen()
print("Move right.") #for debugging
#Create keyboard binding
screen.onkey(move_left(), 'Left')
screen.onkey(move_right(), 'Right')
screen.listen()
#Play game
screen.mainloop()
Mobile version