`
fireDragonpzy
  • 浏览: 467579 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

cocos2d-x基础(一)

阅读更多
1.程序入口

程序入口为cocos2d::CCApplication::run()。这里的CCApplication是单件,所以只需要从它派生一个子类,如HelloWorld中的AppDelegate,原来调用以下代码:

[cpp] view plaincopy
AppDelegate app;  
return cocos2d::CCApplication::sharedApplication().run();  
2.创建程序窗口
在AppDelegate::initInstance()中,可以根据CC_TARGET_PLATFORM的值判断程序的运行平台,在CC_PLATFORM_WIN32下创建程序窗口的代码如下:

[cpp] view plaincopy
CCEGLView * pMainWnd = new CCEGLView();  
CC_BREAK_IF(! pMainWnd|| ! pMainWnd->Create(TEXT("cocos2d: Hello World"), 480, 320));  

3.开始场景循环
在AppDelegate::applicationDidFinishLaunching()中,可以实例化CCDirector和CCScene。注意下面的HelloWorld类其实是继承了CCLayer的,但是在HelloWorld::scene()方法中创建了一个简单的CCScene实例并返回了。

[cpp] view plaincopy
// initialize director  
CCDirector *pDirector = CCDirector::sharedDirector();  
pDirector->setOpenGLView(&CCEGLView::sharedOpenGLView());  
  
// enable High Resource Mode(2x, such as iphone4) and maintains low resource on other devices.  
// pDirector->enableRetinaDisplay(true);  
  
// turn on display FPS  
pDirector->setDisplayFPS(true);  
  
// set FPS. the default value is 1.0/60 if you don't call this  
pDirector->setAnimationInterval(1.0 / 60);  
  
// create a scene. it's an autorelease object  
CCScene *pScene = HelloWorld::scene();  
  
// run  
pDirector->runWithScene(pScene);  
在tests项目的AppDelegate::applicationDidFinishLaunching()中,创建场景的方式看起来不同,但其实和上面是一样的。TestController是继承了CCLayer的,只是这里把创建新CCScene实例的代码提出来,而没有封装到TestController中。代码如下:
[cpp] view plaincopy
CCScene * pScene = CCScene::node();  
CCLayer * pLayer = new TestController();  
pLayer->autorelease();  
  
pScene->addChild(pLayer);  
pDirector->runWithScene(pScene);  

4.响应用户输入

用户输入的响应接口在cocos2d::CCLayer中,包括ccTouchesBegan、ccTouchesMoved、ccTouchesEnded、ccTouchesCancelled等,所以如果一个CCScene实例需要处理用户输入,那么这个CCScene至少要包含CCLayer,并在该CCLayer中处理事件。

上面的HelloWorld的例子,HelloWorld这个类就是继承了CCLayer的,所以它能接收用户输入。


5.场景切换

在tests项目的TestController::menuCallback(CCObject*pSender)中,响应用户点击菜单的事件,并切换到需要的演示场景。切换场景的代码为:

[cpp] view plaincopy
TestScene* pScene = CreateTestScene(nIdx);  
if (pScene)  
{  
    pScene->runThisTest();  
    pScene->release();  
}  
假如要进行ActionManagerTest,则CreateTestScene(nIdx)会创建一个ActionManagerTestScene的实例并返回,而ActionManagerTestScene::runThisTest()的代码如下:
[cpp] view plaincopy
void ActionManagerTestScene::runThisTest()  
{  
    CCLayer* pLayer = nextActionManagerAction();  
    addChild(pLayer);  
  
    CCDirector::sharedDirector()->replaceScene(this);  
}  
创建一个CCLayer实例给this,然后直接调用CCDirector::replaceScene(this)切换场景,恩,很直接……
转自:http://blog.csdn.net/zhanhuai1/article/details/7254361
分享到:
评论

相关推荐

    Cocos2d-x实战:JS卷——Cocos2d-JS开发

    资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...

    Cocos2d-x 3.x游戏开发实战pdf含目录

    《Cocos2d-x 3.x游戏开发实战》是一本深度探讨Cocos2d-x 3.x框架的游戏开发书籍,适合对游戏编程有兴趣的开发者学习。Cocos2d-x 是一个开源的、跨平台的2D游戏开发框架,广泛应用于iOS、Android、Windows等多平台的...

    cocos2d-x-3.1.zip

    总的来说,Cocos2d-x 3.1是游戏开发者学习2D游戏开发的一个重要参考点,虽然它已经不是最新的版本,但其核心概念和机制在后续版本中仍然保持一致,是理解整个Cocos2d-x框架的基础。解压并研究“cocos2d-x-3.1”中的...

    Cocos2d-x实战C++卷关东升著完整版pdf

    总之,《Cocos2d-x实战C++卷》全面覆盖了Cocos2d-x游戏开发的各个环节,从基础到进阶,为读者提供了一条清晰的学习路径。通过阅读并实践书中的示例,读者可以逐步成长为熟练的Cocos2d-x游戏开发者。

    cocos2d-x 3.0

    cocos2d-x 3.0是cocos2d-x系列的一个重要升级,它基于C++编写,支持跨平台开发,包括iOS、Android、Windows等多个操作系统。该版本引入了新的渲染系统、性能提升、新的动画系统以及更友好的API,极大地提高了开发...

    Cocos2d-x实战 JS卷 Cocos2d-JS开发

    《Cocos2d-x实战 JS卷 Cocos2d-JS开发》是一本深入探讨Cocos2d-x游戏引擎JavaScript版本使用的专业书籍。Cocos2d-x是全球范围内广泛采用的游戏开发框架,尤其适用于2D游戏的制作,而Cocos2d-JS则是其JavaScript接口...

    cocos2d-x_v3.16安装及环境变量配置文档

    cocos2d-x 是一个开源的游戏开发框架,使用 C++ 语言编写,支持多平台发布,包括 iOS、Android、Windows、macOS...对于想要进行跨平台游戏开发的开发者来说,熟悉 Cocos2d-x 以及其依赖环境的安装和配置是必要的基础。

    cocos2d-x-2.1.4.rar

    一、cocos2d-x 框架基础 1. 跨平台性:cocos2d-x 支持iOS、Android、Windows Phone等多平台,开发者只需要编写一次代码,就能在多个平台上运行,极大地提高了开发效率。 2. C++ 基础:cocos2d-x 使用C++作为主要...

    Cocos2d-x学习笔记

    5. 在解决方案中选择HelloWorld项目作为起点,这是Cocos2d-x提供的一个基础示例,可以快速看到游戏框架运行的效果。 6. 编译并运行HelloWorld项目,观察到基本的游戏框架运行在屏幕上,此时Cocos2d-x的入门学习已...

    cocos2d-x-3.13.1.zip

    使用cocos2d-x 3.13.1进行游戏开发,开发者需要掌握C++编程基础,理解面向对象设计原则。通过学习cocos2d-x的API文档,可以快速上手创建游戏场景、添加交互元素、编写游戏逻辑。同时,利用其提供的工具如cocos ...

    Cocos2d-x 闪电特效

    Cocos2d-x是一款流行的开源游戏开发框架,它基于C++,并利用OpenGL进行图形渲染。在游戏开发中,特效的实现是至关重要的,能够极大地提升游戏的视觉体验和玩家的沉浸感。"Cocos2d-x 闪电特效"正是这样一个专题,它...

    cocos2d-x 跑酷源码

    二、cocos2d-x基础组件 1. `Scene`:游戏的场景,相当于游戏的一个阶段或屏幕。在"runningGame"中,可能有多个场景,如主菜单、游戏进行、游戏结束等。 2. `Layer`:场景中的分层,可以看作是场景上的一个画布,...

    cocos2d-x 《保卫萝卜》源代码

    首先,我们需要理解Cocos2d-x的基础架构。Cocos2d-x提供了一系列的类,如Scene(场景)、Layer(层)、Sprite(精灵)和Node(节点),它们构成了游戏世界的基本元素。在《保卫萝卜》中,每个萝卜、怪物、炮塔都可能...

    cocos2d-x+socket

    一、cocos2d-x的网络基础 cocos2d-x本身并不直接提供Socket功能,但可以通过集成第三方库来实现。例如,我们可以使用C++的Socket API或者第三方库如Poco,它们提供了封装好的Socket操作接口,使得在cocos2d-x项目中...

    cocos2d-x入门讲解

    一、Cocos2d-x基础 Cocos2d-x是Cocos2d家族的一员,基于C++实现,同时提供了Lua和JavaScript的绑定接口。它的核心特性包括渲染引擎、物理引擎、动画系统、粒子系统、音频管理、资源管理等。通过这些功能,开发者可以...

    cocos2d-x教程

    Cocos2d-x是一个开源的游戏开发框架,广泛用于创建2D和3D游戏,教育软件,模拟器等跨平台应用程序。这个教程将深入探讨cocos2d-x的使用方法,帮助开发者掌握其核心概念和功能。 一、cocos2d-x概述 cocos2d-x是基于...

    Cocos2d-X游戏源码大合集.rar

    1. **Cocos2d-X基础**: Cocos2d-X的核心特性包括场景管理、精灵、动作、粒子系统、物理引擎支持、触摸事件处理、2D渲染等。源码中应展示了这些基本元素如何在实际游戏中运用,帮助开发者了解如何构建游戏世界和...

    迷失航线-Cocos2d-x项目实战-射击类游戏-关东升

    《迷失航线》是一款基于Cocos2d-x框架开发的射击类游戏,专为移动设备设计。Cocos2d-x是一个开源的游戏开发框架,它使用C++作为主要编程语言,同时支持Lua和JavaScript,广泛应用于2D游戏开发。在这个项目实战中,...

    精通COCOS2D-X游戏开发 基础卷_2016.4-P399-13961841.pdf

    精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发

    使用cocos2d-x-2.0-2.0.4开发的简单跨平台益智类魔塔小游戏

    在本项目中,开发者利用cocos2d-x 2.0.4版本创建了一个简单的益智类魔塔小游戏,旨在展示cocos2d-x在跨平台游戏开发中的应用能力。 1. **cocos2d-x框架**: - **C++基础**:cocos2d-x 2.0.4主要采用C++编写,这...

Global site tag (gtag.js) - Google Analytics