我正在做一个基本的汽车游戏,希望汽车在赛道上移动得更快,在草地上跑得更慢。我有两个单独的图像来创建背景,一个是轨道,另一个是图像的其余部分。
我有一个可以在屏幕上移动的汽车精灵,但是当测试碰撞时,我不知道该怎么办。我试过了:
track = track = SCREEN.blit(track, (0, 0))
if track.colliderect(car):
speed += 1.5
else:
speed += 0.5
但是我被告知这仅适用于矩形对象,我该怎么办?
我找不到与图像碰撞有关的任何信息,这对我的情况有所帮助,因此,如果还有其他问题要回答,请告诉我。
最佳答案
基本上是这样的:
def isOnTrack(track,car):
#one corner; a is alpha, the transparency
#If a is 0 that means completely transparent
if track.get_at(car.x,car.y).a==0:
return false
#do this for all four corners of car
return true
您用于此碰撞的图像仅包含轨道
如果track是曲面,track.get_at(x,y)返回一个颜色值
颜色有4个字段,r g b a
我检查一个;透明度
关于python - 测试图像碰撞Pygame,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35731710/