摘要:01--从根源种子CCNode说起 02—从Cocos2DX视角看游戏组成 03--理解HelloWorld结构 04--简单菜单使用 05--简单场景切换与精灵创建 06--触摸事件响应 07--动作系统(一) 08--动作系统(二)使用即时动作 09--动作系统(三)使用持续动作 11--...
阅读全文
随笔分类 - Cocos2DX学习-入门篇
摘要:01--从根源种子CCNode说起 02—从Cocos2DX视角看游戏组成 03--理解HelloWorld结构 04--简单菜单使用 05--简单场景切换与精灵创建 06--触摸事件响应 07--动作系统(一) 08--动作系统(二)使用即时动作 09--动作系统(三)使用持续动作 11--...
阅读全文
摘要:Box2D引擎与触摸的交互通过创建鼠标关节以及碰撞检测来得到触摸点下面的刚体,在根据触摸操作完成相应的功能。首先添加触摸响应函数声明 virtual void ccTouchesBegan(cocos2d::CCSet* touches, cocos2d::CCEvent* event); virtual void ccTouchesMoved(cocos2d:...
阅读全文
摘要:在上一篇文章中我们创建了的一个物理世界,当物理世界中的刚体一个也没有显示出来。为显示物理世界中的物体,我们需要引入GLES-Render(调试Box2D使用)。这两个文件可以再 %Cocos_Home%\samples\Cpp\TestCpp\Classes\Box2DTestBed中找到,将这两个文件拷贝到项目中并引入工程中。 再声明一个变量...
阅读全文
摘要:创建工程Box2DTest,去掉背景和精灵对象等。首先在HelloWorldScene.h头文件定义一个屏幕像素与物理世界长度转换宏,并引入box2D头文件 #define PIXEL_TO_METER 30 #include "Box2D/Box2D.h" 再声明几个函数与变量 void createWorld(); //创建物...
阅读全文
摘要:物理模拟引擎专注于模拟现实世界中物体以及物体之间的基本运动规律。在游戏中引入物理引擎能提高游戏的真实性和可玩性,如《愤怒的小鸟》中小鸟弹出的抛物线运动、《割绳子》中割后的运动等等。既然是在游戏中引入物理引擎那就设计到物理引擎和游戏引擎之间的交互,看看书中的图: 上图反应的就是用户、渲染世界(游戏引擎)、物理世界(物理引擎)三者的交互关系。用户通过操作游戏引擎中的精灵、菜单等等渲染世界中的元素;...
阅读全文
摘要:保存游戏中的数据时游戏中常用的功能,Cocos2DX为我们提供CCUserDefault类。该类使用xml文件存储数据,并提供几个基本类型的存储接口。 //根据key获取指定的值,重载版本在没有读取到值返回的默认值 bool getBoolForKey(const char* pKey); bool getBoolForKey(const char* pKey, bool...
阅读全文
摘要:Cocos2DX为我们提供了简单易用的音乐引擎,对于简单的使用只需要掌握libCocosDenshion库中的SimpleAudioEngine使用即可。 libCocosDenshion将音乐分为两个大类:背景音乐和音效 背景音乐:通常背景音乐时间较长; 音效:而音效通常在特定的动作执行时播放,时间较短,更换频率高。 下面就以背景音乐的实例为例看看怎么使用SimpleAudioEngi...
阅读全文
摘要:Cocos2DX引擎实用CCTMXTileMap类来表示瓦片地图(也就砖块地图),主要包含如下四类元素: 砖块元素:tmx文件中指定的纹理图片(理解不一定正确); 砖块拼接的图层(CCTMXLayer):这就是我们看到的背景地图,引擎以精灵CCSprite来组织砖块元素,其中包含砖块大小等诸多信息; 物体图层(CCTMXObjectGroup):可能用于组织建筑物等等 自身属性:主要是地图大小...
阅读全文
摘要:上一篇文章在使用持续动作过程中遇到不少问题,以获取动作类的反系动作尤为突出。所以今天把动作类找了个遍,先将大部分动作类是否实现reverse方法总结如下: T表示实现F表示没有实现。 观察可以发现带To的方法都没有实现而By都是先了该方法,不知道引擎设计者这样设计的原因。
阅读全文
摘要:前面的学习笔记以已经大致理解了持续动作,他的重要性就不再次强调了。今天要实现的效果是精灵首先有一个缩放动作然后移动到指定位置再缩放,最后返回原地再缩放。 首先还还是要修改一下项目,以便我们观察,修改后运行如下图: 红色框中就是执行动作的精灵直接上代码: 1 void HelloWorld::men...
阅读全文
摘要:前一篇文章大致理解了动作系统的结构,今天先学习一个简单的即时动作如何使用。首先使用配置好的环境创建一个项目DemoActionInstant命令:python create_project.py -project DemoActionInstant -package demo.game.action...
阅读全文
摘要:动作在游戏中有举足轻重的作用,它让游戏中的元素活了起来,比如单击一个按钮使用一个特效让玩家明显的感觉到点了这个按钮;角色的移动,攻击等等都离不开动作。因此Cocos2DX也为我们提供了丰富强大的动作系统。 CCNode与动作基类 CCNode中定义了动作有关的函数,也就是说根源种子类以及子类都能够执行动作。 //执行一个动作,并返回该动作 CCAction* runAction(CCAct...
阅读全文
摘要:Cocos2DX提供了加速度计和触屏的支持,两种操作方式为我们带来了不少新的乐趣。Cocos2DX对触屏的支持采用了事件驱动的方式: 上图反映了引擎在处理触屏的原理,目前的状况并不适合深入的原理性的东西。所有今天主要还是看看作为开发者如何响应触屏事件,首先看看引擎准备的函数 //CCLayer.h // default implements are used to call scrip...
阅读全文
摘要:场景就是游戏的不同状态,如游戏菜单、游戏关卡等等。而场景的切换由导演类CCDirector来完成,通常我们使用replaceScene(CCScene *pScene)函数来切换场景。为了方便我使用上一节的项目,新建一个场景GameScene类和一个图层GameLayer类。 //GameScene.h#pragma once#include "cocos2d.h" //使用VS类向导添加,...
阅读全文
摘要:准备工作 首先创建一个Cocos2DX-win32应用程序,项目名称未MenuDemo并取消Box2D和声音的支持,如下图: 点击“Finish”有运行一下项目,如下图没有问题 (windows下配置见 http://www.cnblogs.com/BlueBeauty/p/3687542.html 和http://www.cnblogs.com/BlueBeauty/p/3690409....
阅读全文
摘要:作为程序猿还是要代码来说事的,现在开始进入到具体的代码中来。国际惯例HelloWorld打头阵,我也不能免这个俗。 Win32入口函数中主要代码如下: main.cpp // 创建应用实例 AppDelegate app; //创建游戏窗口并设置窗口大小 CCEGLView* eglView = CCEGLView::sharedOpenGLView()...
阅读全文
摘要:Cocos2DX引擎按照层次逻辑将游戏元素细分为:导演CCDirector、场景CCScene、图层CCLayer、精灵CCSprite。在上面篇中我们已经知道除导演CCDirector外都继承了CCNode,而引擎在组织他们的时候使用了树的结构。 导演类作为游戏流程的控制者,他持有一个或多个场景对象,是适当的时候切换场景并和外部交换信息。我们可以先简单的理解为一个场景管理器,在场景的存储...
阅读全文
摘要:CCNode作为渲染框架的基类(暂且这样理解,CCObject为引擎基类)其中定义了绘制游戏元素相关的属性以及相关方法。属性当中需要注意的一个是Z坐标,在渲染框架中用来表示元素的遮挡关系,其值越小越容易被遮挡。而在元素的操作方面提供三类方法:对节点的操作、定时器的使用、执行动作。 1)节点的操作 引擎将游戏元素组织成树的结构,这也是CCNode命名中Node的来源。对树的操作无非就是添加节点...
阅读全文
|