原生平台,横竖屏自适应问题求教~

版本: 1.9.2


问题:项目需要实现横竖屏切换功能,在WEB版没问题,但是原生平台不行,求解决方案或者思路。


描述:

  • (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    [super didRotateFromInterfaceOrientation:fromInterfaceOrientation];

    auto glview = cocos2d::Director::getInstance()->getOpenGLView();
    if (glview)
    {
    CCEAGLView *eaglview = (__bridge CCEAGLView *)glview->getEAGLView();
    if (eaglview)
    {
    CGSize s = CGSizeMake([eaglview getWidth], [eaglview getHeight]);
    cocos2d::Application::getInstance()->applicationScreenSizeChanged((int) s.width, (int) s.height);
    glview->setFrameSize( s.width, s.height );
    //glview->setDesignResolutionSize( 1280, 640, glview->getResolutionPolicy() );
    }
    }}
    这个方法中applicationScreenSizeChanged是空方法,setFrameSize设置也没有什么用处,重置分辨率还是没有什么效果,应该如何处理才能实现和WEB中一样的效果?


案例:
Creator自带例子即可,只要设置可以横竖屏切换就会有问题。


截图:




You have to Reset GLView Size while switching among screen orientations.like
cocos2d::EventDispatcher::dispatchResizeEvent(width, height);