cocos2d-x游戏开发实例(一)

时间:2023-02-07 21:32:30

1.哇!板球。效果展示

cocos2d-x游戏开发实例(一)
(电脑有点卡,运行不流畅。。)

2.游戏框架结构

(1)可以看出来游戏有多个场景构成,全部由ScenceManager调控,具体如下:

cocos2d-x游戏开发实例(一)

2.源码介绍

这里并不具体对代码做出一步步解释,具体后面我会附上我的代码,需要下载研究,下面主要对源码中部分功能在3.0版本的变化作出解释,希望读者更方便理解

(1)cocos2d-x 3.0版本对屏幕监听做出了调整

书中处理为重写父类的方法,代码如下:

//触屏事件 
virtual bool ccTouchBegan(Touch * touch,Event * event);
virtual void ccTouchMoved(Touch * touch,Event * event);
virtual void ccTouchEnded(Touch * touch,Event * event);
//然后还有一堆。。不想误导大家,就不贴了!

而3.0版本变得简单了很多:

auto listener = EventListenerTouchOneByOne::create();
listener->onTouchBegan = [](Touch* touch,Event* event){
return true;
}
;

listener->onTouchMoved = [](Touch* touch,Event* event){
}
;

listener->onTouchEnded = [=](Touch* touch,Event* event){
}

};
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
//是不是简单了好多。。

(2)菜单选项的回调函数形式做了调整

在cocos2d-x 2.x 版本中,代码如下:

CCMenuItemImage *pCloseItem = CCMenuItemImage::create( 
"CloseNormal.png",
"CloseSelected.png",
this,
menu_selector(HelloWorld::menuCloseCallback));

在cocos2d-x 3.0 版本中:

auto closeItem = MenuItemImage::create( "CloseNormal.png",                                             "CloseSelected.png",                                          CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));
//同时对应的函数参数也不同了!!

3.下载

书中章节源码:Link