我正在尝试制作一个基本的cookie单击器:每次单击cookie时,它底部的一个计数器都会增加一个。每当我单击cookie时,都会收到这个奇妙的错误:
TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'
我发现我的代码中的某些内容可能会给程序提供“ None”的返回值,以消除该错误,但我似乎无法弄清楚。
# imports and variables
win = GraphWin('Cookie Clik', 500, 600)
# the cookie itself (center at 250, 250) and displaying the counter
if math.sqrt((win.mouseX - 250)^2 + (win.mouseY - 250)^2) < 200: # <- here's where I get an error
# add one to the counter
我基本上是用pythag来确定鼠标距一个点(圆心)的距离,如果小于半径,则将其加到计数器上
答案 0 :(得分:0)
首先,在此表达式中:
sqrt((win.mouseX - 250)^2 + (win.mouseY - 250)^2)
^
不是幂,它是 xor !您需要**
。接下来,没有:
win.mouseX
相反,您调用win.getMouse()
返回一个Point
实例。这是您要执行的操作的粗略草图:
from graphics import *
from math import sqrt
RADIUS = 20
win = GraphWin('Cookie Clik', 500, 600)
location = Point(250, 300)
cookie = Circle(location, RADIUS)
cookie.draw(win)
counter = 0
text = Text(Point(300, 250), counter)
text.draw(win)
while True:
point = win.getMouse()
if sqrt((point.getX() - location.getX()) ** 2 + (point.getY() - location.getY()) ** 2) < RADIUS:
counter += 1
text.setText(counter)
接下来要添加的内容是单击以退出程序!