cocos2dX定向支持

cocos2dX Orientation Support

本文关键字:支持 cocos2dX      更新时间:2023-10-16

我在做一个简单的方向测试时遇到了这个问题。

假设我在横向模式下使用480*320的设计分辨率,在纵向模式下使用320*480的设计分辨率。现在我有一个宽度为480的长精灵,它在人像模式下不会全部显示出来。然后在方向改变时,我重新定位它,使其正确显示。这样做之后,我成功地将精灵正确放置,锚定在左下角,但精灵仍然没有完全显示出来。

http://tinypic.com/r/34e45c2/8<-纵向模式http://tinypic.com/r/2s84vgh/8<-重新定位后的景观

复制步骤:

1) 使用create_project工具创建默认项目

2) 编辑RootViewController.mm如下将这3行添加到didRotateFromInterfaceOrientation:(UIInterfaceOrigination)fromInterfaceOrintation

auto dum = Director::getInstance()->getRunningScene()->getChildByTag(13579)
                 ->getChildByTag(24680);
dum->setPosition(cocos2d::Point::ZERO);
dum->setAnchorPoint(cocos2d::Point::ZERO);

}

3) 添加上面使用的标签,在createScene下更改为scene->addChild(layer, 0, 13579);在HelloWorld::init下this->addChild(sprite, 0, 24680);

4) 在项目设置"常规"选项卡下,勾选"设备方向"下的所有4种模式

5) 在模拟器中运行,然后单击硬件->旋转左

如何解决此问题?[我也尝试过将HelloWorld层的内容大小更改为getFrameSize(),但没有成功。]

谢谢。

PS我正在使用cocos2dx-3.0alpha1

您可以尝试在AppDelegate.cpp中的AppDelegate中添加以下代码::applicationDidFinishLaunching()方法:

 glview->setDesignResolutionSize(320,480,ResolutionPolicy::SHOW_ALL);

为我工作。我希望它能帮助我。