c++ - 在 Cocos2d-x 中存储屏幕大小、原点和其他全局变量的有效方法?

标签 c++ cocos2d-x

我正在使用 Cocos2d-x V3.x 构建一个 2d 游戏

我想知道,什么是最好的方法来存储屏幕尺寸变量、原点变量和其他可以在整个游戏中保持不变的变量?

例如:

Size windowSize = Director::getInstance()->getVisibleSize();
Vec2 windowOrigin = Director::getInstance()->getVisibleOrigin();

我相信这些可以设置为全局变量。

执行此操作的最有效方法是什么?

有争议的单例是最好的方式吗?

或者我应该让每个 .cpp 文件在每次创建场景时都有自己的 windowSize 变量吗?

最佳答案

方法有很多种,如果你想在所有场景中使用一个变量,你可以按照下面的方法来做。

//in header
class BaseScene : public Scene
{
protected:
    Size windowSize;
    Vec2 windowOrigin;

};

//cpp file
BaseScene::BaseScene() {

    windowSize = Director::getInstance()->getVisibleSize();
    windowOrigin = Director::getInstance()->getVisibleOrigin();
}

现在从 BaseScene 类扩展每个场景并直接使用变量 windowSizewindowOrigin

关于c++ - 在 Cocos2d-x 中存储屏幕大小、原点和其他全局变量的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38160618/

相关文章:

android - Cocos2d-x:如何将使用 XCode 开发的 Cocos2d-x 项目移植到 Android(通过 Eclipse)?

c++ - Cocos2d-x network::HttpRequest - 为什么我应该将 Layer* 传递给 setResponseCallback?

linux - 在 Linux 上使用 Cocos2dx 制作游戏

c++ - Cocos2dx - C++ 如何将 child 添加到 Sprite 而无需将它们堆叠在一起

c++ - MacOS 10.7.2 : Asking for Qt3 Support? 上的 libQGLViewer 安装

c++ - "invalid use of member"尝试使用我的功能时

c++ - 无法在 Visual C++ 2010 中运行我的第一个 Win32 应用程序

c++ - Boost 的属性树中的自动类型

c++ - 在 C/C++ 中创建对象时编译器优化的边界是什么

cocos2d-x - 检查动画是否在cocos2d-x中运行