【发布时间】:2016-07-17 08:21:40
【问题描述】:
我目前正在开发一款基于 Pygame、Python 3 的游戏,游戏的重要部分之一是 Rects 在子弹目标情况下的碰撞。
这很容易使用colliderect 函数实现,但必须不计算与颜色键相同颜色的像素。
例如,如果其中一个精灵(角色)是一个大的等边三角形,其底部是水平的,并且一颗子弹从左上角射出,colliderect 会立即检测到碰撞,即使虽然左上角的像素是玩家精灵的透明的。
我需要创建一个函数,仅当子弹到达与颜色键颜色不同的像素时才会检测到碰撞。如果子弹只有一个像素,这很容易:
if player.get_at((bullet[0] - player.left, bullet[1] - player.top)) != player.get_colorkey():
我尝试为项目符号中的每个像素迭代上述语句,但是,当然,这会导致大量滞后。有没有其他更高效的方法?
提前致谢!!
【问题讨论】:
标签: python python-3.x pygame pygame-surface color-key