python-3.x - 使画布背景透明 - 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 框,因为这既麻烦又不可靠。
如果有人可以建议另一种方式,那就太棒了。
解决方案
该find_overlapping
方法返回一个项目列表。只需循环浏览列表并忽略背景项目。
推荐阅读
- ftp - 为什么 SFTP 没有像 FTP 这样的主动/被动模式
- c++ - 使用前向类声明声明类对象(基本 C++)
- python - 在 Pandas 的一列中具有布尔条件 True 的 Groupby
- azure-service-fabric - FabricInvalidAddressException:尝试从 .NET Core 应用程序连接时,NamedEndpoint 'V2Listener'
- javascript - 如何使用接口在打字稿中添加两个数字
- html - 一个角度的div
- android - 从 Eclipse 到 Android Studio:由于巨大的方法导致 VFY 拒绝
- php - 方法 Illuminate\Validation\Validator::validateGt 不存在
- mysql - Mysql在同名组下显示其他不同的单元格数据
- php - 使用 password_verify() 进行 SQL 注入