2017-09-03 5 views
2

私はまだプログラミングの世界の初心者で、何か助けを求めています。私はほとんどのコードを理解していません。私はここで終わった前に、私はそれに異なるアプローチを試してみた:#コメントとPython Turtle:クリックすると四角形の鉛筆色が変わります

import turtle 
import random 

window = turtle.Screen() 
#window.colormode(255) 

square = turtle.Turtle() 
square.speed(0) 
square.hideturtle() 

square.up() 
square.goto(-200, 200) 
square.down() 

for i in range(4): 
    square.forward(50) 
    square.right(90) 

square.up() 
square.goto(-205, 205) 
square.write("Change Color") 


pencil = turtle.Turtle() 
pencil.shape("circle") 

def drawing_controls(x, y): 
    if (-200 <= x <= -150) and (150 <= y <= 200): 
     pencil.color(random.random(), random.random(), random.random()) 

#def sqc (self, x, y): 


window.onclick(drawing_controls) 
#window.onclick(square.pencolor(random.random(), random.random(), 
random.random())) 

pencil.onrelease(pencil.goto) 

行は、このイライラ問題を解決する上で、私のこれまでの多くの試みの一つからです。

答えて

0

私はあなたの実際の目標を確信していませんが、私は以下のリワークがあなたに求めている行動を与えると思います。むしろでクリックする四角形を描くよりも、亀がクリックされる正方形のようになります。

from turtle import Turtle, Screen 
from random import random 

def drawing_controls(x, y): 
    pencil.color(random(), random(), random()) 
    square.color(*pencil.color()) 

def drag_pencil(x, y): 
    pencil.ondrag(None) 
    pencil.goto(x, y) 
    pencil.ondrag(drag_pencil) 

square = Turtle('square', visible=False) 
square.speed('fastest') 
square.hideturtle() 
square.up() 

square.goto(-200, 230) 
square.write('Change Color', align='center') 

square.goto(-200, 200) 
square.shapesize(50/20) 
square.showturtle() 

pencil = Turtle('circle') 

square.onclick(drawing_controls) 

pencil.ondrag(drag_pencil) 

window = Screen() 
window.mainloop() 

代わりのonrelease()を、私はそれをよりインタラクティブにするためにondrag()に切り替えます。しかし、pencil.gotoを使用すると、ondrag()ハンドラの一般的な例であるにもかかわらずスムーズに動作しないため、ドラッグハンドラ内でドラッグイベントを無効にしてモーションを円滑にするハンドラを作成しました。

+0

これは間違いなく私が探していたものですが、スクエアをカメで描くのではなくクリックした四角形に変更しました!しかし、私はまだ色付け部分を解決することができませんでした。大変ありがとうございます! –