在棋盘上移动一个椭圆
Move an oval on a chessboard
我有一个棋盘,里面有 32 个可移动的物体。那些可移动的物体是圆圈,上面有一个字母。
boardGUI.create_oval(x0 + tileSize * j + ((1/5)*tileSize), y0 + tileSize * i + ((1/5)*tileSize), x0 + tileSize * (j + 1) - ((1/5)*tileSize),y0 + tileSize * (i + 1) - ((1/5)*tileSize), fill = "#000")
boardGUI.create_text(x0 + tileSize * j + (tileSize/2), y0 + tileSize * i +(tileSize/2),text = matrix[i][j][0].upper(),font = ("Helvetica", 12, "bold") , fill = "#FFF")
因此我的问题是:如何同时移动圆圈和字母? (第一次点击应该得到棋子的坐标,第二次点击应该将棋子移动到新坐标)
我尝试使用 tkinter 的 find_overlapping 和 find_closest 方法,但是 find_overlapping 给了我一个包含 3 个元素的元组,而 find_closest returns 我只有一个元素所以我不知道该怎么办。
提前感谢您的帮助:)
您可以通过标签系统同时移动方块和字母。这可以通过在创建图块和字母对象时在对象参数中添加 , tag = "tile{}-{}".format(i, j)
或类似样式的东西来实现。
使用您的代码,这可能看起来像:
boardGUI.create_oval(... , tag = "tile{}-{}".format(i, j) )
boardGUI.create_text(... , tag = "tile{}-{}".format(i, j) )
您现有的代码在省略号中是相同的。
这(假设您的 i 和 j 递增是正确的)将为您提供一种同时移动图块和图块上的字母的方法,可能是通过 boardGUI.move("tile{}-{}".format(i, j), x, y)
,您可以在其中格式化 i 和j 值与您要移动的图块在棋盘上的位置,当然 x/y 值是您要移动的数量 tile/letter.
希望对您有所帮助!
我有一个棋盘,里面有 32 个可移动的物体。那些可移动的物体是圆圈,上面有一个字母。
boardGUI.create_oval(x0 + tileSize * j + ((1/5)*tileSize), y0 + tileSize * i + ((1/5)*tileSize), x0 + tileSize * (j + 1) - ((1/5)*tileSize),y0 + tileSize * (i + 1) - ((1/5)*tileSize), fill = "#000")
boardGUI.create_text(x0 + tileSize * j + (tileSize/2), y0 + tileSize * i +(tileSize/2),text = matrix[i][j][0].upper(),font = ("Helvetica", 12, "bold") , fill = "#FFF")
因此我的问题是:如何同时移动圆圈和字母? (第一次点击应该得到棋子的坐标,第二次点击应该将棋子移动到新坐标)
我尝试使用 tkinter 的 find_overlapping 和 find_closest 方法,但是 find_overlapping 给了我一个包含 3 个元素的元组,而 find_closest returns 我只有一个元素所以我不知道该怎么办。
提前感谢您的帮助:)
您可以通过标签系统同时移动方块和字母。这可以通过在创建图块和字母对象时在对象参数中添加 , tag = "tile{}-{}".format(i, j)
或类似样式的东西来实现。
使用您的代码,这可能看起来像:
boardGUI.create_oval(... , tag = "tile{}-{}".format(i, j) )
boardGUI.create_text(... , tag = "tile{}-{}".format(i, j) )
您现有的代码在省略号中是相同的。
这(假设您的 i 和 j 递增是正确的)将为您提供一种同时移动图块和图块上的字母的方法,可能是通过 boardGUI.move("tile{}-{}".format(i, j), x, y)
,您可以在其中格式化 i 和j 值与您要移动的图块在棋盘上的位置,当然 x/y 值是您要移动的数量 tile/letter.
希望对您有所帮助!