我正在制作一款基本的汽车游戏,并希望汽车在赛道上移动速度更快,在草地上速度更慢。我有两个单独的图像来创建背景,一个是轨道,另一个是图像的其余部分。
我有一个可以在屏幕上移动的汽车精灵,但在测试碰撞时我不知道该怎么办。我试过了:
track = track = SCREEN.blit(track, (0, 0))
if track.colliderect(car):
speed += 1.5
else:
speed += 0.5
但我告诉我这只适用于rect对象,我需要做什么?
我无法找到与图像碰撞相关的任何内容,这对我的情况有帮助,所以如果还有其他问题请回答,请告诉我。
答案 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
我检查了一个;透明度