Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我怎么知道在我点击的地方得到一颗星星?_Python_Python Turtle - Fatal编程技术网

Python 我怎么知道在我点击的地方得到一颗星星?

Python 我怎么知道在我点击的地方得到一颗星星?,python,python-turtle,Python,Python Turtle,我想在点击屏幕时画星星。就像我有点明白我需要怎么做,但是我尝试过的一次没有成功,它给出了一个错误: AttributeError:模块“turtle”没有“onScreenClick”属性 有时它会说我需要在其中添加“乐趣” #2.7 Tähtikirkas yö paranneltu versio. #Tähtikirkas yö import turtle as t from random import randint, random def draw_star(points, size

我想在点击屏幕时画星星。就像我有点明白我需要怎么做,但是我尝试过的一次没有成功,它给出了一个错误:

AttributeError:模块“turtle”没有“onScreenClick”属性

有时它会说我需要在其中添加“乐趣”

#2.7 Tähtikirkas yö paranneltu versio.

#Tähtikirkas yö
import turtle as t
from random import randint, random

def draw_star(points, size, col, x, y):
    t.speed(80)
    t.penup()
    t.goto(x, y)
    t.pendown
    angle = 180 - (180 / points)
    t.color(col)
    t.begin_fill()
    for i in range(points):
        t.forward(size)
        t.right(angle)
    t.end_fill()

#pääohjelma
t.Screen().bgcolor('light yellow')

while True:
    ranPts = randint(5, 5) * 2 + 1
    ranSize = randint(20, 50)
    ranCol = (random(), random (), random())
    ranX = randint(-350, 300)
    ranY = randint(-250, 250)
    draw_star(ranPts, ranSize, ranCol, ranX, ranY)

screen的方法是
onclick()
,或者全局函数
onscreenclick()
。方法/函数的参数是用户单击窗口时要调用的函数之一的名称。您的函数应该采用
x
y
参数。下面是对您的代码的修改,允许用户通过单击而不是随机操作来照亮天空:

from turtle import Screen, Turtle
from random import randint, random

def draw_star(points, size, color, x, y):
    turtle.penup()
    turtle.goto(x, y)
    turtle.pendown()

    angle = 180 - (180 / points)

    turtle.color(color)
    turtle.begin_fill()

    for _ in range(points):
        turtle.forward(size)
        turtle.right(angle)

    turtle.end_fill()

def click_sky(x, y):
    ranPts = randint(2, 5) * 2 + 1
    ranSize = randint(20, 50)
    ranColor = (random(), random(), random())

    draw_star(ranPts, ranSize, ranColor, x, y)

turtle = Turtle()
turtle.speed('fastest')
turtle.hideturtle()

screen = Screen()
screen.bgcolor('light yellow')
screen.onclick(click_sky)
screen.mainloop()

是的,非常感谢!谢谢。即使是20几岁以后开始画奇怪的线条:D,但那很好