cocos 的视图横竖屏切换时,会以左下角为坐标原点进行视图旋转,如下图所示:
初始竖屏:
切换为横屏后:
这样旋转显得很丑陋
而经典的 iOS 应用横竖屏切换时,是以屏幕中心点为原点旋转的,请问 cocos 游戏视图是怎么做到的?怎么改成以中心点旋转?
cocos 的视图横竖屏切换时,会以左下角为坐标原点进行视图旋转,如下图所示:
初始竖屏:
切换为横屏后:
这样旋转显得很丑陋
而经典的 iOS 应用横竖屏切换时,是以屏幕中心点为原点旋转的,请问 cocos 游戏视图是怎么做到的?怎么改成以中心点旋转?
实现 willRotateToInterfaceOrientation,在转屏动画之前先设置好 view 的大小,效果可以勉强接受
转屏过程中后,屏幕会被拉伸一下,转屏结束(didRotateFromInterfaceOrientation)后,再比例调整回来就好了
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
cocos2d::GLView *glview = cocos2d::Director::getInstance()->getOpenGLView();
if (glview)
{
cocos2d::CCEGLView *eaglview = (cocos2d::CCEGLView*) glview->getEAGLView();
if (eaglview)
{
CGSize s = CGSizeMake(, );
glview->setViewPortInPoints(0, 0, s.height, s.width);
}
}
}
```