首页 > 解决方案 > 使画布背景透明 - python

问题描述

所以我正在制作一个青蛙游戏,但遇到了问题。对于碰撞检测,我使用以下方法检查一个 Tkinter 画布对象是否与另一个对象重叠:

canvas.find_overlapping(*canvas.bbox(imageObj))

但是,我也将背景设置为画布对象:

background = self.canvas.create_image(0, 0, image = self.imageData["Background"], anchor = "nw")

所以程序正在检测玩家和物体之间的碰撞 24/7。有没有办法解决?我搜索了 SO 并尝试将背景放在标签中,但是当我将画布放在它上面时,背景消失了(可能是因为画布覆盖了它)。

我找不到一种方法来使画布透明而不使其上的对象也透明。我也不想计算每个对象的 x 和 y 框,因为这既麻烦又不可靠。

如果有人可以建议另一种方式,那就太棒了。

标签: python-3.xtkinterdetectionoverlaptkinter-canvas

解决方案


find_overlapping方法返回一个项目列表。只需循环浏览列表并忽略背景项目。


推荐阅读