我只想在屏幕上点击使用龟方法来查找鼠标点击的坐标。目前,我有一个网格,我正在玩奥赛罗。我已经有了将原始坐标转换为游戏可以解释的特定网格坐标的算法。我似乎无法让onscreenclick方法工作。在文档上,它说要使用一个有趣的'函数有两个参数。我相信我有这个,但它没有用。我是python和乌龟的初学者,所以任何帮助将不胜感激:)
import turtle
xclick = 0
yclick = 0
def getcoordinates():
turtle.onscreenclick(modifyglobalvariables())
def modifyglobalvariables(rawx,rawy):
global xclick
global yclick
xclick = int(rawx//1)
yclick = int(rawy//1)
print(xclick)
print(yclick)
getcoordinates()
答案 0 :(得分:1)
你这么近了!
import turtle
xclick = 0
yclick = 0
def getcoordinates():
turtle.onscreenclick(modifyglobalvariables) # Here's the change!
def modifyglobalvariables(rawx,rawy):
global xclick
global yclick
xclick = int(rawx//1)
yclick = int(rawy//1)
print(xclick)
print(yclick)
getcoordinates()
赶上改变?从语法上讲,在modfiyglobalvariables之后删除括号。 你想要的是传递函数,你正在做的是传递函数的输出。
如果你运行了代码,你会得到一个异常(TypeError),说你还没有传递正确的参数;这是因为它试图实际调用modifyglobalvariables。减少,你想要的是
bind_to_mouseclick( my_function )
在这种情况下,每次点击鼠标,都会调用my_function
。此时,它可能提供也可能没有提供正确的参数。相反,你说
bind_to_mouseclick( my_function() )
Python评估my_function
并将调用的结果绑定到鼠标单击。如果my_function
恰好返回一个函数,那就太棒了(也许是我们想要的)。如果它返回一个整数或一个字符串,没有好处。如上所述,关键是例外;如果函数不需要参数,则可能更难以检测
答案 1 :(得分:0)
实际上,检测单击位置很容易。这是代码:
find /?
编辑:
那行不通...好吧idk,但是应该是这样的:/如果您想要一个东西,那么它就可以单击它的那一行; from turtle import *
mouseclickx = 0
mouseclicky = 0
def findcoords(x,y):
print(x)
print(y)
mouseclickx = x
mouseclicky = y
onscreenclick(findcoords,1)