测试图像碰撞Pygame

时间:2016-03-01 19:27:31

标签: python python-3.x pygame

我正在制作一款基本的汽车游戏,并希望汽车在赛道上移动速度更快,在草地上速度更慢。我有两个单独的图像来创建背景,一个是轨道,另一个是图像的其余部分。 Track

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

track = track = SCREEN.blit(track, (0, 0))

if track.colliderect(car):
    speed += 1.5
else:
    speed += 0.5

但我告诉我这只适用于rect对象,我需要做什么?

我无法找到与图像碰撞相关的任何内容,这对我的情况有帮助,所以如果还有其他问题请回答,请告诉我。

1 个答案:

答案 0 :(得分:2)

基本上是这样的:

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.get_at(x,y)如果track是曲面

,则返回颜色值

颜色有4个字段,r g b a

我检查了一个;透明度