簡體   English   中英

如何使用烏龜在python上更改onclick的背景顏色?

[英]How do I change the background color onclick on python using turtle?

我一直在嘗試使用烏龜在背景中的每次單擊時觸發這些顏色。 如果有人可以幫助我提前感謝您的答復,那將是非常不錯的!

    import turtle
    import random


    f = turtle.pen()
    BG=turtle.Screen()
    colors = ['blue', 'red', 'yellow', 'green']
    BG.bgcolor("black")


    richard.pencolor("orange")
    richard.penup()

    def draw(x,y):
    richard.goto(x,y)
    richard.pendown()
    for x in range(360):
    richard.forward(200)
    richard.left(108)
    richard.forward(205)
    richard.left(108)
    richard.forward(210)
    richard.left(108)
    richard.forward(215)
    richard.left(1)
    richard.forward(220)
    richard.left(108)
    richard.forward(225)
    richard.left(108)
    richard.tilt(20)
    richard.speed(90)
    richard.pencolor()
    richard.pencolor(random.choice(colors))
    richard.bgcolor()
    richard.bgcolor(random.choice(colors))
    if(x % 2 ==1):
    richard.bgcolor(random.choice(colors))
    if(x % 2 ==1):
    richard.pencolor(random.choice(colors))
    richard.penup()
    BG.onclick(draw())

您的主要問題是以下行:

BG.onclick(draw())

我們需要將draw函數本身傳遞給onclick() ,而不是draw()返回的None

BG.onclick(draw)

一個簡單的示例,僅在單擊窗口時更改背景顏色:

from turtle import Screen, Turtle
from random import choice

COLORS = ['blue', 'red', 'yellow', 'green']

screen = Screen()
screen.bgcolor("black")

def draw(x, y):
    color = choice(COLORS)

    while color == screen.bgcolor():  # don't use same color twice in a row
        color = choice(COLORS)

    screen.bgcolor(color)

screen.onclick(draw)
screen.mainloop()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM