我正在使用c ++中的cocos2d-x v3进行平台游戏,其中地图通常非常大,可见屏幕通过地图跟踪对象,但我无法找到获取可见位置的方法屏幕在地图上。
使用Size visibleSize = Director :: getInstance() - > getVisibleSize();为我提供整个地图的尺寸。
假设我想在对象到达地图中的某个点时在屏幕的右上角显示一个精灵,并且此精灵将始终位于屏幕的右上角。
使用对象位置不会这样做。
有没有办法获得当前屏幕的位置? 或者有没有办法在屏幕上显示精灵或任何内容,即使屏幕移动它也会出现在屏幕上?
聚苯乙烯。我是游戏开发中的超级菜鸟
答案 0 :(得分:0)
有一个简单的解决方案:
你需要两层: 1:游戏玩家 2:uilayer
Gamelayer是你可以移动的游戏。你的地图会添加到游戏层上,当你需要移动地图时,你可以移动游戏层。
Uilayer不会移动并且它的zorder比游戏层大。旋转总是位于屏幕右上角的精灵就在这一层上。
此外: 有一种更复杂的方式: 你不需要移动游戏层。只需将相机绑定到游戏层并将另一个相机绑定到uilayer。
当您需要查看大地图的其余部分时,您只需将游戏画面的相机移动到您想要的位置。
顺便说一句:
这是我在stackoverflow上的第一个答案。
英语不是我的第一语言,不是很流利。
希望这可以帮助你:)
答案 1 :(得分:0)