使用cocos2d-x 3.x为设备开发时,它会自动设置GL视图以适合设备。在VS2012的Windows上,它创建了一个看似任意大小的窗口。如何设置该窗口的大小?
答案 0 :(得分:11)
我的解决方案如下。
在AppDelegate.cpp中:
bool AppDelegate::applicationDidFinishLaunching() {
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
if(!glview) {
glview = GLView::create("My Game");
glview->setFrameSize(800, 600); // or whatever
director->setOpenGLView(glview);
}
...
}
在我的特定用例中,我将窗口大小设置为各种分辨率和宽高比以测试我的布局。我分享Q& A格式,因为我无法在任何地方找到答案。
答案 1 :(得分:0)
给汤姆+1。另外,我想向大家分享我的答案和经验。
请记住,不要设置屏幕尺寸" AFTER"导演设定了GL视图。这会导致某些节点上的边界检测出现一些问题,尤其是cocos2d :: ui :: Button以及其他创建按钮的方法。我正在使用cocos2d-x v3.6
在这里查看我的答案: cocos2d::Menu click detection is a bit off to bottom left whenever using a custom window size
这样做会导致一些问题:
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
if(!glview) {
glview = GLViewImpl::create("My Game");
director->setOpenGLView(glview);
}
director->getOpenGLView()->setFrameSize(width , height);
点击按钮,不会启动回调。这令人沮丧。也许你的沮丧也可以点击整个屏幕,并注意屏幕的某些部分(很可能是左下角部分)触发回调,好像节点的边界框位于那里一样。它甚至不匹配所讨论节点的位置和大小。 每当我像上面描述的那样改变屏幕尺寸时,我都能重现这个问题。所以永远不要那样做。
汤姆的答案是改变屏幕尺寸的正确方法。
我希望这会阻止任何人这样做。我向上帝发誓,这篇文章本可以省时间解决这个问题。
干杯!