Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios6 使用XCode将box2d场景强制为横向_Ios6_Box2d Iphone_Device Orientation - Fatal编程技术网

Ios6 使用XCode将box2d场景强制为横向

Ios6 使用XCode将box2d场景强制为横向,ios6,box2d-iphone,device-orientation,Ios6,Box2d Iphone,Device Orientation,我正在用BOX2D开发一个游戏。plist文件设置为仅支持纵向方向。游戏开始在肖像模式罚款。Im使用CCLayer进行子类化。为了切换视图或场景,我使用以下代码 [[CCDirector sharedDirector]推送场景:[场景]] 因此,我只想在加载视图/场景时更改方向 1st View/Scene -> Portrait Mode 2nd View/Scene -> Landscape Mode 3rd View/Scene -> Portrait Mode 尝试了

我正在用BOX2D开发一个游戏。plist文件设置为仅支持纵向方向。游戏开始在肖像模式罚款。Im使用CCLayer进行子类化。为了切换视图或场景,我使用以下代码

[[CCDirector sharedDirector]推送场景:[场景]]

因此,我只想在加载视图/场景时更改方向

1st View/Scene -> Portrait Mode
2nd View/Scene -> Landscape Mode
3rd View/Scene -> Portrait Mode

尝试了一些来源,但没有很好的帮助。请帮我做这个。如有任何建议,将不胜感激。谢谢。

在我看来,您希望将整个场景旋转90度(-或+),以实现视图的纵向和横向。一个简单的方法是创建一个非常小的层作为轴心点,将所有视图保持在屏幕的中心

  • 创建一个非常小的层,用作视口。让我们调用此viewportLayer
  • 将viewportLayer的位置设置为屏幕的中心
  • 将第一、第二和第三视图场景添加为viewportLayer的子视图
完成上述操作后,无论何时需要进入纵向或横向模式,您所要做的就是将viewportLayer旋转90度(-或+)

另外,放大和缩小也成为一个简单的解决方案。要实现缩放,您只需缩放viewportLayer,而不用担心子对象。碰撞的所有计算仍然可以很好地工作,因为这些计算很可能在子层中完成,因此不会受到父转换的影响