2016-02-28 70 views
1

我是新來的Python和試圖建立一個烏龜形狀,一旦用戶點擊鍵盤上的左右箭頭鍵的形狀應該朝那個方向,但是什麼也沒有發生。蟒蛇左,右箭頭鍵事件不工作

我想移動使用左,右方向鍵的播放器,它的擊打不能正常工作,請幫助和建議。

#Create the player turtle 
    player = turtle.Turtle() 
    player.color("blue") 
    player.shape("triangle") 
    player.penup() 
    player.speed(0) 
    player.setposition(0, -235) 
    player.setheading(90) 

    playerspeed = 15 


    #Move the player Left and Right 
    def move_left(): 
     x = player.xcor() 
     x -= playerspeed 
     if x < -200: 
      x = - 200 
     player.setx(x) 

    def move_right(): 
     x = player.xcor() 
     x +- playerspeed 
     if x < -200: 
      x = - 280 
     player.setx(x) 

#Create Keyboard Bindings 
    turtle.listen() 
    turtle.onkey(move_left,"Left") 
    turtle.onkey(move_right, "Right") 
+0

一方面,在'move_right()',你說'X + - playerspeed'取代'X + = playerspeed'。我假設這是一個錯字,但誰知道。 – zondo

+0

但是,我已經糾正了這個問題,玩家仍然沒有動。 – user5963943

回答

0

您需要在腳本的末尾調用turtle.mainloop(),看到https://docs.python.org/2/library/turtle.html#turtle.mainloop

這工作(它顯示一個藍色三角形龜是移動根據向左或向右按​​下光標鍵,它包括修復通過@zondo建議):

import turtle 

#Create the player turtle 
player = turtle.Turtle() 
player.color("blue") 
player.shape("triangle") 
player.penup() 
player.speed(0) 
player.setposition(0, -235) 
player.setheading(90) 

playerspeed = 15 


#Move the player Left and Right 
def move_left(): 
    x = player.xcor() 
    x -= playerspeed 
    if x < -200: 
     x = - 200 
    player.setx(x) 

def move_right(): 
    x = player.xcor() 
    x += playerspeed 
    if x < -200: 
     x = - 280 
    player.setx(x) 

#Create Keyboard Bindings 
turtle.listen() 
turtle.onkey(move_left, "Left") 
turtle.onkey(move_right, "Right") 

#Start the main loop 
turtle.mainloop() 
+0

我已經調用了主循環,但沒有在上面的代碼中顯示它。你能建議嗎? – user5963943

+0

感謝你的代碼現在的工作。 – user5963943

+0

不客氣;請將答案標記爲選中狀態,以便其他人知道此問題已得到解答。 – mdxs