我对 Pygame 比较陌生,并试图制作一个自上而下的赛车游戏。目前一切都已准备就绪,可以开始使用了!但是,我无法在“关卡”的墙壁和背景之间进行正确的碰撞检测。
我想要发生的是汽车不能离开赛道的边界,它被推回赛道并且速度降低。以前这是用 pygame.sprite.collide_rect 尝试的,但没有成功。
这是游戏中第一条赛道和游戏中一辆汽车的截图。稍后将添加背景。
任何关于使用哪些功能的建议将不胜感激!甚至可以像在菜单中那样使用 .collidepoint 吗?
谢谢,亚当。
你可以做的是,检查两个图像是否重叠,但有一个条件:轨道的图像必须是完全不透明的,其他一切都是透明的。然后使用此代码检查是否重叠。
Car_mask = pygame.mask.from_surface(CarImage)
Track_mask = pygame.mask.from_surface(TrackImage)
offset_x, offset_y = (Car.x - Track.y), (Car.y - Track.y)
if (Track_mask.overlap(Car_mask, (offset_x,offset_y)) != None):
print("overlaps")
else:
#Push Car Back On Track, Slow Speed Stuff
#Cause it not touching track at all.