前段时间一直在忙着游戏的开发工作,很少有时间看cocos2dx,最近时间比较充裕,又重新开始cocos2dx的学习工作。
话说看了 testcpp的一些源码,看了各种例子和视频教程,到现在突然间觉得无从下手了,碉堡了,所以我觉得有必要梳理一下学习的思路,以免走错道。
话不多说,开始记录
首先按惯例开始创建第一个项目hello world,创建的方式很多种,在这里我用的是python脚本方式创建的,网上查看了一下,大家貌似都推荐这种创建方式,创建的步骤,在另外一边文章中有记录了,在这里就不多说了,网上的文章一大推,搜索方式 百度,输入cocos2dx python 肯定有答案的
在这里给出一个我的简单记录地址:http://864343928.iteye.com/blog/2081967
创建好项目之后,运行后看到的效果:
当然看到的不是hello world几个大字,我修改了一下,以表示我对运行成功之后的心情,
以上是运行效果,现在看一下项目的结构,只看class文件中的结构,其他的以后有时间在介绍,如下:
AppDelegate 游戏的入口,从oc衍生过来的, 里面包含游戏的启动,暂停以及结束等等方法
HelloWorldScene 这个就是主场景得类
AppDelegate 的bool AppDelegate::applicationDidFinishLaunching() 的方法中创建了一个场景,并让导演运行这个场景
// create a scene. it's an autorelease object
CCScene *pScene = HelloWorld::scene();
// run
pDirector->runWithScene(pScene);
然后在来看HelloWorldScene ,看代码可以知道,HelloWorldScene是一个层,她有一个方法是创建一个场景,然后还有一个宏,这个宏就是创建她本身即一个层
//继承了一个层
class HelloWorld : public cocos2d::CCLayer
{
public:
// Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
virtual bool init();
// there's no 'id' in cpp, so we recommend returning the class instance pointer
//静态方法创建一个场景
static cocos2d::CCScene* scene();
// a selector callback
void menuCloseCallback(CCObject* pSender);
// implement the "static node()" method manually
//一个实现宏,创建一个层就是helloWorldScene 他本身
CREATE_FUNC(HelloWorld);
};
在来看helloworldscene的实现文件helloworldscene.cpp
通过调用CCScene的静态方法,创建一个场景的指针,然后在调用HelloWorld的create的方法,创建一个层并且把层加入到场景中 看代码
CCScene* HelloWorld::scene()
{
// 'scene' is an autorelease object
CCScene *scene = CCScene::create();
// 'layer' is an autorelease object
HelloWorld *layer = HelloWorld::create();
// add layer as a child to scene
scene->addChild(layer);
// return the scene
return scene;
}
当调用helloworld的create()方法时,这个方法首先会,调用helloworld类的构造函数,然后调用init() 初始化方法,然后告诉这个指针会自动释放内存,这样就完成了整个hello world项目的初始化工作。
这个是helloWorldScene 的create()方法的宏定义
#define CREATE_FUNC(__TYPE__) \
static __TYPE__* create() \
{ \
__TYPE__ *pRet = new __TYPE__(); \
if (pRet && pRet->init()) \
{ \
pRet->autorelease(); \
return pRet; \
} \
else \
{ \
delete pRet; \
pRet = NULL; \
return NULL; \
} \
}
整个的流量是,appDelegate的初始化方法,调用helloWorldScene的 scene()方法,创建一个场景,而在helloWorldScene的scene()方法中,创建场景的同时,创建一个他自己本身的层并且加入到场景中,然后创建层的同时完成初始化的工作
相关推荐
总的来说,"基于cocos2dx的一个小例子"是一个很好的学习资源,它揭示了Cocos2dx游戏开发的基本流程和关键技术,对于初学者而言,通过这个实例可以深入理解和掌握Cocos2dx框架,为进一步的游戏开发打下坚实基础。
- 使用Cocos2dx命令行工具创建一个新的项目,如`cocos new HelloWorld -p com.yourcompany.helloworld -l cpp -a android`。 - 这个命令会生成一个包含C++源代码和资源文件的HelloWorld项目。 3. **集成到Android...
本文将深入解析Cocos2d 3.4版本中创建HelloWorld工程的实例代码,并提供相关的文档说明。 一、环境搭建 在开始Cocos2d 3.4的开发之前,首先需要安装必要的开发工具。这通常包括: 1. Cocos2d-x SDK:这是Cocos2d的...
Cocos2dx是一个基于C++的游戏开发框架,它提供了丰富的功能来帮助开发者创建2D和3D游戏。在这个场景中,我们将深入探讨如何在Cocos2dx 2.x中实现MP4视频的播放。 首先,Cocos2dx 2.x自身并不直接支持MP4格式的视频...
《Cocos2dx工具解析:聚焦CocosBuilder》 Cocos2dx是一个广泛使用的开源游戏开发框架,基于C++,支持跨平台的游戏开发,适用于iOS、Android、Windows等多个平台。在Cocos2dx的生态系统中,有一系列强大的辅助工具,...
这个压缩包文件"testSprite"显然包含了一个关于如何在Cocos2d-x中使用精灵的示例,非常适合初学者学习。下面将详细介绍Cocos2d-x中的精灵及其应用。 1. **精灵(Sprite)概念**: - 精灵是Cocos2d-x中的一种基本...
这个“cocos2dx捕鱼游戏代码例子”是针对初学者的一个宝贵资源,可以帮助他们更好地理解和掌握Cocos2dx API的使用。 在捕鱼游戏中,你需要了解以下关键知识点: 1. **Cocos2dx架构**:Cocos2dx由多个模块组成,...
Cocos2d-x的“HelloWorld”项目是每个新开发者入门的起点,它展示了如何创建一个简单的显示“Hello, World!”的窗口。 2. **Jsoncpp解析** Jsoncpp是一个轻量级的JSON库,它支持C++98、C++11和C++14标准。Jsoncpp...
Cocos2dx是一个开源的游戏开发框架,基于C++,并提供了多种语言接口,如Lua和JavaScript,它为开发者提供了强大的2D游戏开发能力。本小例子将带你深入理解cocos2dx的核心概念和功能,特别是如何使用精灵和动画,以及...
在iOS开发中,Cocos2dx是一个广泛使用的游戏开发框架,它允许开发者创建跨平台的2D和3D游戏。然而,随着Apple对App Store审核政策的调整,使用UIWebView的App将不再被接受,因为Apple已经将其列为弃用API。在2020年...
某手游cocos代码
在游戏开发领域,cocos2dx是一个广泛使用的开源游戏引擎,尤其在跨平台开发中扮演着重要角色。本篇将深入探讨cocos2dx游戏开发系列的第三部分——源码解析和Android工程的创建与迁移。 首先,cocos2dx是基于C++的,...
这个“cocos2dx游戏代码”压缩包包含的是一个基于Cocos2d-x实现的“马里奥”游戏源代码,由初学者小菜编写,他建议其他开发者可以参考其中的“emeny”类进行重写。 首先,我们要理解Cocos2d-x的核心概念。它是一个...
Cocos2dx是一个开源的游戏开发框架,它基于C++,同时支持多种语言,如Lua和JavaScript,为跨平台游戏开发提供了强大的工具。 在Cocos2dx 3.x版本中,框架进行了诸多优化和改进,提高了性能,简化了API,使得开发者...
Birkemose的代码是一个很好的起点,但为了适应Cocos2dx v3.13,我们需要对原有的代码进行适配和优化。 在Cocos2dx 3.x中实现水波纹效果,我们主要依赖以下几个核心概念和技术: 1. **纹理(Texture)和精灵...
【标题】"Cocos2dx斗地主服务端与客户端详解" 在游戏开发领域,Cocos2dx是一款...通过对这些代码的分析和学习,开发者可以掌握网络游戏的设计原理,加深对Cocos2dx引擎的理解,以及如何构建一个跨平台的斗地主游戏。
基于cocos2dx3.2的ScrollView改良版,...由于cocos库太大,压缩包里已经移除cocos核心库,需要自行下载安装cocos2dx 3.2版本,并任意生成一个cocos2dx项目,把里面的cocos文件夹复制到ScrollViewDemo文件夹下即可。
《cocos2dx 2048:游戏开发与cocos2dx框架解析》 “cocos2dx 2048”是一个基于cocos2dx框架开发的流行数字拼图游戏,它仿照了2048游戏的玩法,通过编程技术将2D图形、动画和逻辑控制融合在一起,为玩家提供了趣味且...
确保所有依赖项都已正确配置,是成功进行Cocos2dx开发的第一步。 2. 创建新项目: 使用Cocos2dx的命令行工具,你可以轻松创建一个新的游戏项目。通过执行“cocos new”命令,指定项目名称和选择模板类型,即可生成...
配置完成后,只需打开一个Cocos2dx3.0项目的Lua脚本,按下F7键,SublimeText就会调用`run.py`进行编译和运行,你可以在终端看到项目的输出结果。 总结来说,使用SublimeText启动Cocos2dx3.0项目,需要完成以下步骤...