我正在做一个基本的汽车游戏,希望汽车在赛道上移动得更快,在草地上跑得更慢。我有两个单独的图像来创建背景,一个是轨道,另一个是图像的其余部分。 python - 测试图像碰撞Pygame-LMLPHP

我有一个可以在屏幕上移动的汽车精灵,但是当测试碰撞时,我不知道该怎么办。我试过了:

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/

10-12 04:33