gpt4 book ai didi

python - 使用turtle.onscreenclick查找鼠标单击的坐标

转载 作者:太空宇宙 更新时间:2023-11-03 17:13:00 25 4
gpt4 key购买 nike

我只是想使用 turtle 方法 onscreenclick 来查找鼠标单击的坐标。目前,我有一个正在玩黑白棋的网格。我已经有了将原始坐标转换为游戏可以解释的特定网格坐标的算法。我似乎无法让 onscreenclick 方法正常工作。在文档上,它说使用带有两个参数的“有趣”函数。我相信我有这个,但它不起作用。我是 python 和 turtle 的初学者,所以任何帮助将不胜感激:)

    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()

最佳答案

你已经很接近了!

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()

catch 变化了吗?从语法上讲,删除 modfiyglobalvariables 后面的括号。 你想要的是传递函数,你所做的是传递函数的输出。

如果你运行代码,你会得到一个异常(TypeError),表明你没有传递正确的参数;那是因为它试图实际调用modifyglobalvariables。减少,你想要的是

bind_to_mouseclick( my_function )

在这种情况下,每次单击鼠标时,都会调用 my_function。此时,它可能会也可能不会提供正确的参数。相反,你说

bind_to_mouseclick( my_function() )

Python 计算 my_function 并将调用结果绑定(bind)到鼠标单击。如果 my_function 碰巧返回一个函数,那就太好了(也许就是我们想要的)。如果它返回一个整数或一个字符串,那就不好了。关键是异常(exception),如上所述;如果该函数不需要任何参数,则可能更难以检测

关于python - 使用turtle.onscreenclick查找鼠标单击的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33908810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com