我正在使用Vector2来制作相机。但是当我与墙碰撞时,所有精灵都开始移动,所以我用墙壁和地板固定它,但我无法弄清楚如何修复我的敌人。有什么想法吗?
这是我的代码:
a[0]
如果您想要运行它,这是与文件的链接。 https://geordyd.stackstorage.com/s/hZZ1RWcjal6ecZM
答案 0 :(得分:1)
您正在使用屏幕坐标。你只需要在检查按键时移动墙壁;你应该同时移动敌人。
但是有一个更好的方法;如果你添加更多的类,更容易混淆,可以扩展。
删除Wall
中的按键,然后将其放入Player
。这将改变玩家在世界坐标中的位置,与墙壁相同的坐标(静态)和敌人移动(动态)。
然后在world_position - players_position
处绘制两面墙和敌人,并根据玩家在中心的相对位置进行调整。从技术上讲,甚至玩家本身都是在该位置绘制的 - 他的计算相对于屏幕零运动。
为了获得更大的灵活性,您可以考虑单独的Camera
类,默认设置为跟随播放器。这样你就可以让相机在其他地方移动,或者如果玩家靠近你的世界边缘,让他走出屏幕中心。