python - Tkinter 画布感应触摸?
问题描述
我正在做一些游戏,我想知道是否有办法让 tkinter 画布对象检测是否有东西在触摸它。我目前使用这样的东西:
pos = canvas.coords(insert_object_here)
otherpos = canvas.coords(other_object)
if pos[3] <= objectpos[3] and pos[1] >= objectpos[1]:
if pos[2] <= objectpos[0]:
if pos[2] >= objectpos[0]-self.speed:
canvas.move(self.id, -x, y)
if pos[0] >= objectpos[2]:
if pos[0] <= objectpos[2]+self.speed:
canvas.move(self.id, -x, y)
if pos[2] <= objectpos[2] and pos[0] >= objectpos[0]:
if pos[3] <= objectpos[1]:
if pos[3] >= objectpos[1]-self.speed:
canvas.move(self.id, x, -y)
if pos[1] >= objectpos[3]:
if pos[1] <= objectpos[3]+self.speed:
canvas.move(self.id, x, -y)
canvas.move(self.id, x, y)
这是很多代码,我只需要使用一次,使得使用函数毫无意义。
总之,有没有办法让物体检测触摸,或者至少有办法改进这段代码?
解决方案
画布具有命名的方法find_closest
,find_overlapping
可用于确定对象是否正在触摸。
推荐阅读
- pdf - Byterange 的数字签名问题
- sqlite - 将值传递给数据访问对象的方向
- sql - 即使分组(SQL),有没有办法从整个集合中取平均值
- rust - Rust - 生成 shell 失败并出现错误
- javascript - 使用 MongoDB 从函数返回所有文档并使用 express 显示它们
- flutter - 如何在flutter android中添加应用程序图标徽章?
- c# - 如何可靠地从 gmail 中删除消息?[ActiveUp.Net.Mail]
- windows - 为什么 Firefox 生成的 Native Messaging Host 进程有一个奇怪的 DLL 搜索顺序?
- python - Tensorboard 无法启动
- curl - 使用 curl 但不使用 Wget 的特定调用