如何解决圆圈应该在您单击时移动但消失
对于课堂作业,班上的每个人都必须编写一个程序,当您单击该形状时,该形状将消失,然后重新出现在其他位置。但是,它只是在我的身上消失了。我的老师查看了一下,没有发现任何问题,但是我仍然不知道如何解决它。这是我写的代码:
#-----import statements-----
import turtle as trtl
import random as rand
#-----game configuration----
dizzy_color = "red"
dizzy_size = 3
dizzy_shape = "circle"
#-----initialize turtle-----
dizzy = trtl.Turtle()
dizzy.shape(dizzy_shape)
dizzy.shapesize(dizzy_size)
dizzy.fillcolor(dizzy_color)
#-----game functions--------
def change_position():
new_xpos = rand.randint(-100,100)
new_ypos = rand.randint(-50,50)
dizzy.penup()
dizzy.hideturtle()
goto(new_xpos,new_ypos)
dizzy.showturtle()
dizzy.pendown()
def dizzy_clicked(x,y):
change_position()
#-----events----------------
dizzy.onclick(dizzy_clicked)
wn = trtl.Screen()
wn.mainloop()
乌龟的名字也令人头晕。
解决方法
问题是您调用了goto()
方法却忘记了该对象:
goto(new_xpos,new_ypos)
应该是:
dizzy.goto(new_xpos,new_ypos)
如果您或您的老师使用的是正确的Python编程环境,则应该已经看到相关的错误消息:
NameError: name 'goto' is not defined
这就是我编写该程序的方式:
from turtle import Screen,Turtle
from random import randint
DIZZY_COLOR = 'red'
DIZZY_SIZE = 3
DIZZY_SHAPE = 'circle'
def change_position():
new_xpos = randint(-100,100)
new_ypos = randint(-50,50)
dizzy.hideturtle()
dizzy.goto(new_xpos,new_ypos)
dizzy.showturtle()
def dizzy_clicked(x,y):
dizzy.onclick(None) # disable handler inside handler
change_position()
dizzy.onclick(dizzy_clicked)
screen = Screen()
dizzy = Turtle()
dizzy.penup()
dizzy.shape(DIZZY_SHAPE)
dizzy.shapesize(DIZZY_SIZE)
dizzy.fillcolor(DIZZY_COLOR)
dizzy.onclick(dizzy_clicked)
screen.mainloop()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。