如何使用tkinter在Python中检测彼此相邻的矩形

时间:2019-08-11 05:28:01

标签: python tkinter

我是tkinter的新手,但是我正在尝试制作一个程序,其中矩形AI将在其他矩形的迷宫中导航,但是我不确定检测AI周围的矩形以便找到开口的最佳方法是什么并找出要去的地方(例如左右看是否有矩形)

我尝试进行碰撞,但是无法使其正常工作,但是我也没有将每个迷宫墙都变成它自己的变量,所以我不知道如何检查它的坐标是否与AI有关。那么也许看看是否有“ AIPossition_x + 5”之类的东西?

这是我现在正在使用的代码

maze_create_x = 25
maze_create_y = 25

for char in maze:
    if char == "+":
        canvas.create_rectangle(maze_create_x, maze_create_y, maze_create_x + 25, maze_create_y + 25, fill="black")
    elif char == "/":
        maze_create_y += 25
        maze_create_x = 0
    maze_create_x += 25


robot = canvas.create_rectangle(80, 55, 95, 70, fill="blue")

我希望“机器人” AI能够看到它的前面,左边或右边是否有一个矩形,但是我不确定从哪里开始。感谢您的所有帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用canvas.find_overlapping(x1, y1, x2, y2)来表示(x1,y1,x2,y2)是要知道其中是否有项目的矩形的坐标。返回与该矩形重叠的项的id的元组。

例如,要检查AI的右侧:

x1, y1, x2, y2 = canvas.coords(robot)
if canvas.find_overlapping(x1 + 25, y1, x2 + 25, y2):
    print('There is a wall on the right')
else:
    print('The way is clear on the right')