首页 > 其他分享 >win10 vs2022 搭建 cocos2d-x 3.17 开发环境

win10 vs2022 搭建 cocos2d-x 3.17 开发环境

时间:2023-06-08 23:35:19浏览次数:78  
标签:origin 3.17 height width visibleSize vs2022 cocos2d NULL

引擎下载地址

https://cocos2d-x.org/download/

也可以在 github 下载

https://github.com/cocos2d/cocos2d-x/tags

手册地址

https://docs.cocos2d-x.org/cocos2d-x/v3/zh/

api 文档地址

https://docs.cocos2d-x.org/api-ref/cplusplus/v3x/index.html

hello world

安装注意事项

  1. 需要 python2 , 安装后可以用 python2 的绝对路径运行 cocos 的 setup.py
  2. 如何没有把 python2 加入到环境变量, 可以修改引擎路径下的 tools\cocos2d-console\bin\cocos.bat
@echo off
@python2 绝对路径 "%~dp0/cocos.py" %*

新建项目

cocos new HelloCocos -p com.laolang.hellococos -l cpp

然后打开 proj.win32 目录下的 .sln 文件, 提示升级点确认, 编译运行即可

中文乱码问题

参考:
Cocos2d-x 中文标题设置
Cocos2d-x 中文内容设置

标题直接用下面的函数转一下, Label等内容的中文显示还需要中文字体的支持, 可以从网上下载或者从C盘拷一个, 例如宋体常规, 此字体文件名为:simsun.ttc

std::string CommonUtil::GBKToUTF8(const std::string& strGBK)
{
    std::string strOutUTF8 = "";
    WCHAR* str1;
    int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0);
    str1 = new WCHAR[n];
    MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, str1, n);
    n = WideCharToMultiByte(CP_UTF8, 0, str1, -1, NULL, 0, NULL, NULL);
    char* str2 = new char[n];
    WideCharToMultiByte(CP_UTF8, 0, str1, -1, str2, n, NULL, NULL);
    strOutUTF8 = str2;
    delete[]str1;
    str1 = NULL;
    delete[]str2;
    str2 = NULL;
    return strOutUTF8;
}

hello world 关键代码注释

AppDelegate的applicationDidFinishLaunching方法
其四个方法含义分别为(https://blog.csdn.net/xiayao2012/article/details/49472423)

initGLContextAttrs();//设置 OpenGL环境
applicationDidFinishLaunching(); //逻辑初始化
applicationDidEnterBackground(); //切换到后台
applicationWillEnterForeground(); //切换到前台

bool AppDelegate::applicationDidFinishLaunching() {
    // 初始化 director
    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();
    // 初始化 opengl 试图
    if(!glview) {
        glview = GLViewImpl::createWithRect(CommonUtil::GBKToUTF8("第一个 Cocos2d-X 程序"), cocos2d::Rect(0, 0, resolutionSize.width, resolutionSize.height));
        director->setOpenGLView(glview);
    }

    // 开启左下角 FPS 状态信息
    director->setDisplayStats(true);
    // 设置 FPS 为 60, 默认为 60
    director->setAnimationInterval(1.0f / 60);

    // 设置屏幕分辨率
    glview->setDesignResolutionSize(resolutionSize.width, resolutionSize.height, ResolutionPolicy::NO_BORDER);

    register_all_packages();

    // 创建 Hello World 场景, 对象的释放交给 cocos2d-x 管理
    auto scene = HelloWorld::createScene();

    // 运行
    director->runWithScene(scene);

    return true;
}

HelloWorldScene的init方法

bool HelloWorld::init()
{
    // 先执行父类的 init
    if (!Scene::init())
    {
        return false;
    }

    // 获得可视区域大小
    const auto visibleSize = Director::getInstance()->getVisibleSize();
    log("width:%f , height:%f", visibleSize.width, visibleSize.height);
    // 获得原点位置 左下角
    const Vec2  origin = Director::getInstance()->getVisibleOrigin();
    log("x:%f , y:%f", origin.x, origin.y);


    // 关闭按钮, 是一个 MenuItemImage, 表示一个菜单项
    auto closeItem = MenuItemImage::create(
        "CloseNormal.png", // 非选中状态
        "CloseSelected.png", // 选中状态
        CC_CALLBACK_1(HelloWorld::menuCloseCallback, this) // 回调函数
    );
    // 按钮位置, 窗口右下角
    const float x = origin.x + visibleSize.width - closeItem->getContentSize().width / 2;
    const float y = origin.y + closeItem->getContentSize().height / 2;
    closeItem->setPosition(Vec2(x, y));

    // 把菜单项添加到菜单中
    auto menu = Menu::create(closeItem, NULL);
    menu->setPosition(Vec2::ZERO);
    // 菜单添加到当前层
    this->addChild(menu, 1);

    // Hello World 文本
    const auto label = Label::createWithTTF(CommonUtil::GBKToUTF8("第一个程序"), CommonUtil::GetDefaultFontPath(), 24);
    // 设置文本位置
    label->setPosition(Vec2(origin.x + visibleSize.width / 2, origin.y + visibleSize.height - label->getContentSize().height));
    // 文本添加到当前层
    this->addChild(label, 1);

    // 创建背景图片
    const auto sprite = Sprite::create("HelloWorld.png");
    // 图片位置
    sprite->setPosition(Vec2(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y));
    // 背景图片添加到当前层
    this->addChild(sprite, 0);

    return true;
}

关于资源复制问题

有时候 Resources 目录下的文件无法复制到输出目录, 此时可以使用生成事件解决这个问题

xcopy /s /f /h /y $(ProjectDir)..\Resources\res $(OutDir)\Resources

image

标签:origin,3.17,height,width,visibleSize,vs2022,cocos2d,NULL
From: https://www.cnblogs.com/khlbat/p/17465004.html

相关文章

  • 使用VS2022打包C#项目生成setup文件并部署
    首先安装工具新建Setup项目先将\bin\Debug下的生成文件添加到里面添加文件夹将我们需要的文件放入添加项目输出在用户桌面添加快捷方式简单的安装其实右键项目=》生成,然后就在debug这个目录下下一步下一步就可以了安装好桌面就有了添加卸载程序1.右......
  • [SpriteKit] 系统框架中Cocos2d-x制作小游戏ZombieConga
    概述使用SpriteKit实现一个简单的游戏,通过一个游戏来进行SpriteKit的入门,熟练2D游戏的API,也可以更好的结合在iOS应用中.详细今天我们进入一个全新的系列,先熟悉SpriteKit,然后再看实战的游戏案例。一、了解SpriteKit本期的内容就是使用SpriteKit实现一个简单的游......
  • Vs2022安装.Net4.5程序包
    因为VS2022将不再支持.NET4.5,即使在VisualStudioInstaller中也找不到.NET4.5的选项我们可以在NuGet包中下载.NET4.5的工具包找到程序包管理器控制台Vs2022顶部菜单>视图>其它窗口>程序包管理器控制台将下段代码复制进程序包管理器控制台然后回车Install-PackageMicrosof......
  • VS2022跨项目文件输出到指定文件夹脚本
      脚本: copy$(TargetPath)$(SolutionDir)”路径地址“$(TargetFileName)/y举个栗子: ”路径地址“= TestClient\bin\Debug\net5.0-windows\Modules\  =>   copy$(TargetPath)$(SolutionDir)TestClient\bin\Debug\net5.0-windows\Modules\$(TargetFileName)......
  • 【Cocos2d游戏开发之四】独自收集Cocos2d提供的字体!共57种(有对照的字体图)...
     很多游戏中,便于开发就会直接采用Cocos2d提供的字体库来使用,但是因为提供的种类很多,那么Himi利用一些时间整理了57种字体样式,这些我想足够你用了;不多说下面一起来看看吧:(每张图对应11种样式的字体,字体的名字就是其样式的名字)   ---------------1------------------CCLabelTTF*myLabel=[CCLabelTTFlabelWithS......
  • 【Cocos2d游戏开发之七】添加/删除系统组件,并解决View设置透明会影响View中的其他组件
    好像有段时间没有更新了,主要项目比较着急,不过现在cocos2d基本算是全拿下了,进展很顺利,那么在这里主要给大家介绍下一些Himi遇到的问题;本章介绍两个知识点:        1.在Cocos2d中添加系统组件;(本例中添加UIView并嵌套一些View)  “   如何把背景图片设置为半透明......
  • 【Cocos2d游戏开发之九】CCSpriteBatchNode与"pvr.ccz","plist"精灵优化及注意事项
     首先对于使用过精灵的童鞋很熟悉CCSpriteBatchNode,至少大家都会知道它能优化精灵,但是至于优化原理这里简单说下:      一般使用精灵CCSprite的时候,都是直接使用[CCLayer*addChild:CCSprite*];,假设我们创建一百个精灵,那么当前的CCLayer会为100个精灵单独绘制;  ......
  • VS2022安装与使用
    作为个人使用,不用考虑老版本兼容问题,直接安装VS2022。环境:win11 1.下载对于VS,微软提供了社区版,因此不需要搞什么破解,直接在个人环境上到 下载链接 下载社区版即可。2.安装下载后,才发现下载的是个安装程序。点击该程序,会提示需要设置某些选项,以便配置安装,点击继续就行:......
  • Windows 11、Windows 10使用VS2022安装 .NET 4.0、.NET 4.5等低版本环境
    由于新版windows10、windows11自带.NETFramework4.8,而一些旧的代码,又需要.NET4.0、.NET4.5等低版本的运行环境。最新携带运行环境版本如下:.NETFramework系统要求-.NETFramework|MicrosoftLearn安装低版本运行环境方法:无需安装VS2019,在VisualStudio2022中编......
  • vs2022+qt 通过qss文件给QPushButton控件设置样式
    新建QSS文件1)在Qt项目文件夹中,“右键”---“新建”---“文本文档”,并将其改成.qss后缀在里面写入样式信息:/*正常状态或者鼠标松开按钮的状态,按钮颜色*/QPushButton{background-color:rgb(240,255,255);color:rgb(0,0,2);border-style:outset;bo......