我正在创造一种游戏,其中玩家角色总是停留在屏幕的中心,周围的墙壁会改变位置,就像许多自上而下的游戏一样。
我的问题是我有一个墙壁列表pygame.Rects但我无法找到一种方法使冲突与静态播放器正常工作。我有像这样的变量
walls = [pygame.Rect([0, 0, 20, 20]), ...]
player = pygame.Rect([100, 100, 20, 20])
其中wall包含当前级别的所有墙。当玩家与其中一个碰撞时,如何正确调整并阻止所有其他墙壁移动,我该如何做到这一点。 玩家矩阵的位置永远不会改变,因此必须始终为[100,100],但是墙壁位置确实会发生变化。
答案 0 :(得分:2)
不要移动墙壁。移动播放器。然后,当您绘制所有游戏对象时,只需减去玩家的坐标并添加(100,100)即可让玩家看起来不动。您的游戏模型应始终代表游戏的实际状态,渲染注意事项通常只应在渲染时进行。