Windows上的cocos2d-x 3.x:如何更改游戏窗口的大小?

时间:2014-06-04 04:03:30

标签: windows visual-studio cocos2d-x cocos2d-x-3.0

使用cocos2d-x 3.x为设备开发时,它会自动设置GL视图以适合设备。在VS2012的Windows上,它创建了一个看似任意大小的窗口。如何设置该窗口的大小?

2 个答案:

答案 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);

点击按钮,不会启动回调。这令人沮丧。也许你的沮丧也可以点击整个屏幕,并注意屏幕的某些部分(很可能是左下角部分)触发回调,好像节点的边界框位于那里一样。它甚至不匹配所讨论节点的位置和大小。 每当我像上面描述的那样改变屏幕尺寸时,我都能重现这个问题。所以永远不要那样做。

汤姆的答案是改变屏幕尺寸的正确方法。

我希望这会阻止任何人这样做。我向上帝发誓,这篇文章本可以省时间解决这个问题。

干杯!