cocos2dx3.0 C++开发 零基础入门笔记

本篇博客介绍了cocos2d-x 3.0版本使用C++进行游戏开发的基础知识,包括自定义场景、添加按钮和事件处理、解决中文乱码问题、精灵的翻转、序列动作执行、延迟调用函数、宏的使用、动画制作、音乐播放、定时器应用、场景切换以及如何利用粒子系统实现下雪效果等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


测试代码环境:

 

VS2013 + cocos 2d x 3.0


程序执行流程

1、AppDelegate::applicationDidFinishLaunching()

2、创建场景createScene。

3、导演执行runWithScene


导演:


CCDirector获取:
auto director = Director::getInstance();


导演可以获取到视图信息,以及对视图显示相关项进行配置等。

获取界面可视区域大小

Director::getInstance()->getVisibleSize();



场景:

一个界面为一个场景。场景继承于层Layer。

导演控制场景的显示,场景有多层,没层里有许多精灵,精灵有各种动作。

很常用的类如下:

Director    Scene      Layer     Sprite  

 

如何自定义场景?


答:

1、首先派生自public cocos2d::Layer。

2、让场景自动释放。CREATE_FUNC(MyAppScene);

3、添加创建场景实现。

static cocos2d::Scene* createScene()
{
    cocos2d::Scene* MyAppScene::createScene()
    {
    // 自动释放的场景
    auto scene = Scene::create();

    // 自动释放的层
    auto layer = MyAppScene::create();

    // 场景中添加层
    scene->addChild(layer);

    // 返回场景
    return scene;
    }
}



4、重写虚函数 virtual bool init() override; 在场景里添加精灵。
bool MyAppScene::init()
{
    if (!Layer::init())
    {
        return false;
    }

    Size visibleSize = Director::getInstance()->getVisibleSize();

    // 新建精灵
    auto sprite = Sprite::create("dk_quit_game_bg.9.png");
    // 设置瞄点位置
    sprite->setAnchorPoint(ccp(0.5, 0.5));
    // 设置图片位置
    sprite->setPosition(ccp(visibleSize.width / 2.0, visibleSize.height / 2.0));

    // 添加精灵到场景
    this->addChild(sprite);

    return true;
}




如何添加按钮以及相应按钮事件?

答:
1、可用图片式按钮,需要准备两张图片,正常情况和鼠标按下的情况。
定义一个签名为   void OnStartButtonMenu(cocos2d::CCObject* pSender);   的事件响应函数。

    // 图片式按钮
    auto startmenu = CCMenuItemImage::create("button.png",
        "button_p.png",
        this,
        menu_selector(MyAppScene::OnStartButtonMenu));

    // 文本式按钮
    auto starmenuitemfont = CCMenuItemFont::create("On", this, menu_selector(MyAppScene::OnStartButtonMenu));

    auto menu = CCMenu::create(startmenu, starmenuitemfont, NULL);
    this->addChild(menu);


   

中文乱码如何解决?

答:


由于在cocos2d-x中直接使用中文会出现乱码,谁让cocos2d-x是由cocos2d而来,而cocos2d这东西是老外写的呢?通常解决中文乱码有两种方法:


(1)使用iconv库,cocos2d-x中提供了这个库,但是只是在win32平台,当程序移植到Android等平台时,需要自己下载iconv库编译。

(2)将中文字符串写到XML文件中(注意XML文件格式保存为UTF-8),然后解析XML文件,格式可以仿照Android中的strings.xml,而且这种方法能方便以后的国际化。

通过比较,可以很容易的发现第二种方法更好,那么下面就介绍第二种方法,让我们能在cocos2d-x程序中使用中文,彻底解决中文乱码问题。

二 实现
1 、新建XML文件,按照一定的格式,输入相应要显示的中文,最后一定需要使用UTF-8格式保存文件

<dict>
    <key>Hello</key>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值