2017-10-21 9 views
1

私は、プレーヤーが絶えず動く鍵を押したままにする方法を見つけようとしています。 )pygameのもインストールPython、Turtle Graphics、Key binding

import turtle 
from turtle import * 

#Setup Screen 
wn = turtle.Screen() 
wn.setup(700,700) 
wn.title("white") 
wn.bgcolor("black") 

#Create Player 
player = turtle.Turtle() 
player.penup() 
player.shape("triangle") 
player.color("white") 

def forward(): 
    player.forward(20) 

def lef(): 
    player.left(90) 

def forward(): 
    player.right(90) 

onkey(forward,"Up") 
onkey(left,"Left") 
onkey(right,"Right") 

listen() 

答えて

0

を持っていない私はあなたがthis post on repeating key eventsを読んで、最初のオペレーティング・システムは、キーリピートを提供するかどうかを決定し、あなたが/それを調整することができるかどうかをお勧めしますおよび/またはあなた自身を実装するために、それをオフにする方法。このリンクには、カメで自分のキー繰り返し動作を実装するためのコードが含まれています。

私は以下のコード作り直してきましたし、私のオペレーティングシステム(OSX)はキーリピートを実装しているため、キーは私のために罰金を繰り返す:私は速度を制御(およびそれをオフにする)ことができますOSXで

from turtle import Turtle, Screen 

# Setup Screen 
wn = Screen() 
wn.setup(700, 700) 
wn.title('white') 
wn.bgcolor('black') 

# Create Player 
player = Turtle('triangle') 
player.speed('fastest') 
player.color('white') 
player.penup() 

def forward(): 
    player.forward(20) 

def left(): 
    player.left(90) 

def right(): 
    player.right(90) 

wn.onkey(forward, 'Up') 
wn.onkey(left, 'Left') 
wn.onkey(right, 'Right') 

wn.listen() 
wn.mainloop() 

でシステム環境設定のキーボードパネル。あなたのOSが提供するものを調べてください。

いくつかのプログラミングノート:同じモジュールを2つの異なる方法でインポートすることは避けてください。これは常に混乱の原因となります。繰り返し率の高いキーボードイベントに干渉している場合は、3つのイベントハンドラすべてについて次のように考えてください。

def forward(): 
    wn.onkey(None, 'Up') # disable event in handler 
    player.forward(20) 
    wn.onkey(forward, 'Up') # reenable event 
関連する問題