我正在创建一个国际象棋,我遇到的第一个问题是实现一个创建代码,它将允许我获得鼠标的当前位置,并在鼠标坐标系中打印鼠标的图像,基本上循环它,直到用户这么说。现在只是在计时器上。请随意用另一个gif替换图像。这只是代码的一部分
我不知道还能做什么。我基本上重新排列了代码,希望这是问题所在,但事实并非如此
def Mousecoords():
pointxy = root.winfo_pointerxy()
print(str(pointxy))
canvas.create_image(pointxy[0], pointxy[1], image=whiteKing.pieceImage)
time.sleep(0.3)
ok = 0
while ok <= 10:
root.after(500, Mousecoords)
ok += 1
现在,代码所做的是实时获取光标的实际坐标,在计时器持续时间内完成后,它会显示图像。但是,我要实现的是获得坐标和图像被模拟打印出来。在
现在,它的作用是:
获取坐标(1) 获取坐标(2) 获取坐标(3) 获取坐标(4) 获取坐标(5) 获取坐标(6) 获取坐标(7) 获取坐标(8) 获取坐标(9) 获取坐标(10)
打印图像(同时打印1-10张)
相反,我想让它做的是:
获取坐标(1) 在(1)处显示图像 获取坐标(2) 在(2)处显示图像 获取坐标(3) 在(3)处显示图像 获取坐标(4) 在(4)处显示图像 获取坐标(5) 在(5)处显示图像 获取坐标(6) 在(6)处显示图像 获取坐标(7) 在(7)处显示图像 获取坐标(8) 在(8)处显示图像 获取坐标(9) 在(9)处显示图像 获取坐标(10) 在(10)处显示图像
如果有其他方式或方法让图像跟随光标,请启发我谢谢 如果我没有解释清楚或者漏掉了几点,也请告诉我
您不应该使用
winfo_pointerxy()
,因为它返回相对于屏幕原点(屏幕左上角)的鼠标位置。在画布上使用bind('<Motion>', callback)
来跟踪鼠标相对于画布的位置(这样就不需要使用.after()
)。另外,不应该每次更新图像时都重新创建图像,而应该更新图像的坐标。在下面是示例代码:
以及输出:
相关问题 更多 >
编程相关推荐