【发布时间】:2016-01-17 18:30:11
【问题描述】:
我对 Pygame 比较陌生,正在尝试制作一款自上而下的赛车游戏。目前一切都已准备就绪,可以开始使用了!但是,我无法在“关卡”的墙壁和背景之间进行正确的碰撞检测。
我想要发生的是汽车无法离开赛道边界,它被推回赛道并降低速度。以前这是用 pygame.sprite.collide_rect 尝试的,但没有成功。
这是游戏中的第一条赛道和游戏中的一辆汽车的屏幕截图。稍后会添加背景。
任何关于使用哪些功能的建议将不胜感激!甚至可以像在菜单中那样使用 .collidepoint 吗?
谢谢, 亚当。
【问题讨论】:
-
任何
rect函数都适用于矩形对象,并且您有圆形轨道。我认为:如果您是 PyGame 的新手,您应该从更简单的东西开始 - arcanoid、俄罗斯方块、推箱子 - 带有矩形对象的东西,没有角度/三角函数。 -
我会使用圆弧的中心和车角进行碰撞检测。例如你的车在哪里,如果任何一个角落有
x > center.x和center.y + radius > corner.y > center.y - radius,并且到中心的距离大于墙壁的半径,你就会发生碰撞。但是,是的,这可能比你想开始的更复杂。