在Cocos2d-x中,几乎所有与渲染有关的类都是继承自CCNode类。由此可见,类CCNode在Cocos2d-x引擎中的重要性是无可替代的。场景CCscene、层CCLayer、精灵CCSprite以及精灵集合CCSpriteBatchNode的父类都是类CCNode。 /* 类CCNode与节点有关的函数 */
// 将参数中的节点对象添加至当前节点,z坐标为0
virtual void
CCDirector类,简称Director(导演),是引擎渲染框架的指挥者。导演对象负责创建、管理应用程序或者游戏的主窗口,在特定的条件下显示执行某个场景。在代码中导演是一个单例对象。换句话说,一个游戏当中只有一个导演的角色。它保存着引擎中一些全局配置的设定,同时管理者游戏场景以及负责与渲染器OpenGLES保持联系。 /* CCDirector类与CCScene类有关的函数 */
// 运行
继承关系 原理介绍 Cocos2d-x调度器为游戏提供定时事件和定时调用服务。所有Node对象都知道如何调度和取消调度事件,使用调度器有几个好处: 每当Node不再可见或已从场景中移除时,调度器会停止。 Cocos2d-x暂停时,调度器也会停止。当Cocos2d-x重新开始时,调度器也会自动继续启动。 Cocos2d-x封装了一个供各种不同平台使用的调度器,使用此调度器你不用关心和跟踪你所设定的定
被导演持有的场景对象,是第一个包含游戏内容的层次。但是就其本身来说,并不包含任何实际的绘制内容。可以将场景看作是引擎中游戏画面划分当中一个重要的容器。它只是在游戏界面管理中发挥了重要作用。场景通常不包含游戏逻辑,仅仅是作为一个容器,将不同的层组合到一起,最终呈现给玩家一个完整的画面。 CCScene* HelloWorld::scene()
{
// 初始化场景
CCScene *
图层CCLayer是渲染框架中非常重要的内容。场景类用来划分游戏状态,图层就用来划分游戏画面。通常图层的尺寸会与屏幕尺寸一样。图层可以叠加,也可以彼此包含。 void HelloWorld::layerHandle()
{
CCLayer *layer = CCLayer::create();
this->addChild(layer);
CCLayerColor
精灵对象可以是游戏中的主角,也可以是汽车,也可以是一棵树。哪怕是一片树叶或者是一只鸟,都是一个精灵对象。从技术的角度来看,精灵对象就是一个可以不断变化的图片。精灵本身具备了一些特殊的属性,比如纹理、尺寸、翻转、透明度以及角度。 /* CCSprite类对象创建函数 */
// 创建精灵对象
static CCSprite *create();
// 以图片文件来创建精灵对象
static CCS
Cocos2d-x引擎中的动作系统是最具有魅力的功能,因为它能够让游戏产品变得活力十足。 /* CCAction类的成员函数 */
// 公共函数
CCAction (void);
virtual ~CCAction(void);
const char *description();
virtual CCObject *copyWithZone(CCZone *pZone);
// 返回布尔值
引用 http://www.cocos2d-x.org/docs/manual/framework/html5/zh Cocos2d-JS是Cocos2d-x的JavaScript版本,融合了Cocos2d-html5和Cocos2d-x JavaScript Bindings。它支持Cocos2d-x的所有核心特性并提供更简单易用的JavaScript风格API,并且天然支持原生、
<pre name="code" class="cpp">bool HelloWorld::init()
{
if ( !CCLayer::init() )
{
return false;
}
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
// CCMen
bool HelloWorld::init()
{
if ( !CCLayer::init() )
{
return false;
}
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
CCSprite *maskSprite = CCSprite::crea
bool HelloWorld::init()
{
if ( !CCLayer::init() )
{
return false;
}
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
CCControlSlider *slider = CCCont
//
// HelloWorldScene.h
//
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
#include "cocos-ext.h"
USING_NS_CC;
USING_NS_CC_EXT;
class HelloWorld : public cocos2d:
bool HelloWorld::init()
{
if ( !CCLayer::init() )
{
return false;
}
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
CCProgressTimer *pross = CCProgressTimer:
//
// HelloWorldScene.h
//
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
#include "cocos-ext.h"
USING_NS_CC;
USING_NS_CC_EXT;
class HelloWorld : public cocos2d:
//
// HelloWorldScene.h
//
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
#include "cocos-ext.h"
USING_NS_CC;
USING_NS_CC_EXT;
class HelloWorld : public cocos2d:
//
// HelloWorldScene.h
//
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
#include "cocos-ext.h"
USING_NS_CC;
USING_NS_CC_EXT;
class HelloWorld : public cocos2d:
动画原理: //
// HelloWorldScene.h
//
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
#include "cocos-ext.h"
USING_NS_CC;
USING_NS_CC_EXT;
class HelloWorld : public co
// 图层
bool HelloWorld::init()
{
if ( !CCLayer::init() )
{
return false;
}
CCSize winSize = CCDirector::sharedDirector()->getWinSize();
CCTMXTiledMap *map = CCTMXT
//CCMoveBy 创建一个移动的动作 //参数1:移动到目标坐标所需的时间 //参数2:目标坐标 //支持reverse 可以获取其反向动作 //CCMoveTo 一样的 //CCActionInterval * moveBy = CCMoveBy::create(5,ccp(300, 100)); //CCActionInterval * actionmoveback= moveB
在介绍开发过程前先展示一下游戏 打开游戏后会进入一个欢迎界面 欢迎界面上有两颗棋子红色的帅和黑色的将,可以通过触摸两颗棋子进入游戏场景 当单击红棋子时,玩家持红旗 当单击黑棋时,玩家持黑棋 单击开始显示棋子 通过鼠标点击走棋 单击悔棋可以实现悔棋 单击新局后再单击开始可以实现重新下棋 单击下面的小喇叭可以实现声音的开关 吃掉对方的将后会显示游戏结果 单击游戏结果后重新开始游戏 移植到Android