所有的精灵都必须在pygame中移动

时间:2018-01-05 16:58:04

标签: python animation pygame sprite

我正在使用Vector2来制作相机。但是当我与墙碰撞时,所有精灵都开始移动,所以我用墙壁和地板固定它,但我无法弄清楚如何修复我的敌人。有什么想法吗?

这是我的代码:

a[0]

如果您想要运行它,这是与文件的链接。 https://geordyd.stackstorage.com/s/hZZ1RWcjal6ecZM

1 个答案:

答案 0 :(得分:1)

您正在使用屏幕坐标。你只需要在检查按键时移动墙壁;你应该同时移动敌人。

但是有一个更好的方法;如果你添加更多的类,更容易混淆,可以扩展。

删除Wall中的按键,然后将其放入Player。这将改变玩家在世界坐标中的位置,与墙壁相同的坐标(静态)和敌人移动(动态)。

然后在world_position - players_position处绘制两面墙和敌人,并根据玩家在中心的相对位置进行调整。从技术上讲,甚至玩家本身都是在该位置绘制的 - 他的计算相对于屏幕零运动

为了获得更大的灵活性,您可以考虑单独的Camera类,默认设置为跟随播放器。这样你就可以让相机在其他地方移动,或者如果玩家靠近你的世界边缘,让他走出屏幕中心。