2017-12-20 5 views
-3

このプログラムでは、矢印キーを使用してタートルを制御できますが、どうやって画面から離れるのを防ぐことができますか?タートルのスクリーンからの脱出を防ぎますか?

def h1(): 
     kjr.forward(20) 
    def h2(): 
     kjr.right(45) 
    def h3(): 
     kjr.left(45) 
    wn.onkey(h1, 'Up') 
    wn.onkey(h2, 'Right') 
    wn.onkey(h3, 'Left') 
    wn.listen() 
    wn.mainloop() 

答えて

0

(あなたはすでにそれを知っていない場合)あなたの窓の高さと幅を見つけるためにあなたのwn画面の変数に照会して、これらの制限外の放浪からカメを防ぐためにh1()を変更します。ここでは事実の後にチェックし、望ましくない場合の動きを元に戻す簡単な例です:

from turtle import Turtle, Screen 

def h1(): 
    kjr.forward(20) 

    x, y = kjr.position() 

    if -width < x < width and -height < y < height: 
     return 

    kjr.undo() 

def h2(): 
    kjr.right(45) 

def h3(): 
    kjr.left(45) 

wn = Screen() 

width, height = wn.window_width()/2, wn.window_height()/2 

kjr = Turtle('turtle') 

wn.onkey(h1, 'Up') 
wn.onkey(h2, 'Right') 
wn.onkey(h3, 'Left') 

wn.listen() 
wn.mainloop() 

あなたはおそらく、このビットを飾るし、研磨することをお勧めします。

関連する問題