Binden von Tastendruckereignissen mit Turtle [Duplikat]Python

Python-Programme
Anonymous
 Binden von Tastendruckereignissen mit Turtle [Duplikat]

Post by Anonymous »

Ich bin Python-Neuling und probiere eine Reihe verschiedener Projekte aus, um etwas zu lernen. Ich möchte Turtle verwenden, um ein Spiel zu erstellen, und habe auf YouTube diesen Typen gefunden, der durch die Neuerstellung von Space Invaders geht.

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()

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post