Python 如何基于颜色跟踪精灵上的点
我有一个小精灵来代表一辆汽车,周围有六个点来感知空间。如何根据点的颜色跟踪点,以便测试与矩形的碰撞 左两个点为纯品红,前两个点为纯红色,右两个点为纯绿色*(255,0,255);(255, 0, 0) ; (0,255,0)Python 如何基于颜色跟踪精灵上的点,python,pygame,Python,Pygame,我有一个小精灵来代表一辆汽车,周围有六个点来感知空间。如何根据点的颜色跟踪点,以便测试与矩形的碰撞 左两个点为纯品红,前两个点为纯红色,右两个点为纯绿色*(255,0,255);(255, 0, 0) ; (0,255,0) 我意识到我没有直接回答你的问题 进行此类碰撞的最佳方法是首先检查精灵边界矩形上的碰撞。这是一个有效的检查,因为如果基础矩形没有碰撞,就没有理由检查六个控制点 Pygame已经通过colliderect()成员函数支持这种检测 一旦代码确定发生了基准面碰撞,然后对六个控制点中
我意识到我没有直接回答你的问题 进行此类碰撞的最佳方法是首先检查精灵边界矩形上的碰撞。这是一个有效的检查,因为如果基础矩形没有碰撞,就没有理由检查六个控制点 Pygame已经通过
colliderect()
成员函数支持这种检测
一旦代码确定发生了基准面碰撞,然后对六个控制点中的每一个使用该函数(显然要考虑精灵的当前位置)
您可能还想研究使用更精确的像素级碰撞。
根据点的颜色跟踪点,以便我可以测试与矩形的碰撞?
为什么需要颜色?当然有些坐标x、y和大小足以进行碰撞?我想使用边界框可以更好地找到碰撞
im = Image.open('CarSprite.png')
im = im.convert('RGBA')
data = np.array(im)
red, green, blue, alpha = data.T
black_areas = (red == 0) & (blue == 0) & (green == 0)
data[..., :-1][black_areas.T] = (random.randint(50,250), random.randint(50,250), random.randint(50,250)) # Converts black to random colors
im2 = Image.fromarray(data)
mode = im2.mode
size = im2.size
data = im2.tobytes()