cocos2dx Scene,Layer,Sprite的理解

layer,scene,sprite的默认锚点都是0.5,0.5

三者都继承自Node节点,暂时没看出有什么区别,或者下面的话是对的吧。

在cocos2d-x中,一个应用可以有多个scene,但任何时刻只能有一个是acitve的。

一个CCScene由多个CCNode组成,一般是包含若干个CCLayer,而CCLayer又包含多个CCSprite。

需要注意的是,CCScene,CCLayer和CCSprite都继承了CCNode,只不过后者还有其他的父类,使用多继承进行实现。

可以得知cocos2d-x的可视化数据组织就是一棵场景树,只不过其中的有些中间节点被赋予了额外的逻辑(比如CCScene和CClayer)

auto visibleSize = Director::getInstance()->getVisibleSize();
Sprite *spr = Sprite::create("bang.png");
spr->setPosition(Vec2(visibleSize.width, visibleSize.height));
scene->addChild(spr);

node 的 _eventDispatcher 用的Director 类里面的_eventDispatcher ,由此可见 _eventDispatcher 是单例的,

{//node类的构造函数
    // set default scheduler and actionManager
    Director *director = Director::getInstance();
    _actionManager = director->getActionManager();
    _actionManager->retain();
    _scheduler = director->getScheduler();
    _scheduler->retain();
    _eventDispatcher = director->getEventDispatcher();
    _eventDispatcher->retain();
  }

  

cocos2dx Scene,Layer,Sprite的理解,布布扣,bubuko.com

时间: 2024-12-25 04:14:50

cocos2dx Scene,Layer,Sprite的理解的相关文章

cocos2dx[3.2](8) ——核心类Director/Scene/Layer/Sprite

[核心类] 导演Director.场景Scene.布景层Layer.精灵Sprite的概念请移步: cocos2dx基础篇(3)--第一个程序HelloWorld 导演控制场景,场景控制图层,图层控制精灵,精灵控制动作. 相互之间的关系框架如下图所示:     由此看出:         (1)整个游戏一般只有一个导演.         (2)一个游戏可以由多个场景组成(菜单界面.游戏界面.游戏结束界面等),但是每次导演只能指导一个场景的运作.         (3)一个场景可以由多个图层组成(

cocos2d基本类介绍 director/scene/layer/sprite

[核心类]     导演Director.场景Scene.布景层Layer.精灵Sprite的概念请移步:     导演控制场景,场景控制图层,图层控制精灵,精灵控制动作.     相互之间的关系框架如下图所示:     由此看出:         (1)整个游戏一般只有一个导演.         (2)一个游戏可以由多个场景组成(菜单界面.游戏界面.游戏结束界面等),但是每次导演只能指导一个场景的运作.         (3)一个场景可以由多个图层组成(背景层.道具层.英雄层.怪物层等,每个图

Cocos2d-x v3.1 核心类Director,Scene,Layer和Sprite(六)

Cocos2d-x v3.1 核心类Director,Scene,Layer和Sprite(六) Scene就像一个舞台一样在上面会摆放各种的元素,有的是固定的比如说布景,道具都是固定不动的,但有的元素也是可以移动的比如说男女主角.在游戏世界里也是如此,在一个游戏场景中我们会放置不同的元素来点缀我们的场景.当然在游戏世界里,也不能完全跟现实世界相同,为了方便元素的控制,我们将不同的元素放在不同的层,这样也方便管理.在一个场景中我们可以放置多个层,我们可以通过addChild来函数来把层加入到场景

Scene\Layer\TransitionScene

http://www.cnblogs.com/mmidd/p/3804158.html It is a good practice to use a Scene as the parent of all your nodes. Scene and Node are almost identical with the difference that Scene has its anchor point (by default) at the center of the screen. Scene是

关于在cocos2dx中继承Sprite的分析与技巧

本文章特指使用C++作为编程语言,基于cocos2dx游戏引擎开发游戏. 在cocos2dx中,sprite作为精灵类是使用最为频繁的类,与其它类相比,如:Node, Layer或Scene,Sprite最大的不同是它包含一个纹理,通过OpenGL的渲染,在游戏中呈现出来.游戏中的主角,怪物,背景,或是精灵的血条等都是通过Sprite来实现的. 在cocos2dx中,关于创建Sprite的类,根据输入参数的不同有以下几个工厂函数, static Sprite* create() static S

Cocos2d-x Lua中Sprite精灵类

Cocos2d-x Lua中Sprite精灵类 精灵类是Sprite,它的类图如下图所示. Sprite类图 Sprite类直接继承了Node类,具有Node基本特征.此外,我们还可以看到Sprite类的子类有:PhysicsSprite和Skin.PhysicsSprite是物理引擎精灵类,Skin是皮肤精灵类用于骨骼动画.创建Sprite精灵对象创建精灵对象有多种方式,其中常用的函数如下:cc.Sprite:create ().创建一个精灵对象,纹理[ 纹理(texture),表示物体表面细

Xcode 添加 Cocos2d-x Scene 模板

用Cocos2d-x开发游戏的时候,XCode默认生成的cpp类基本就是一个空文件,每次都要重复实现Cocos2d-x的基本代码,很麻烦.之前是修改HelloWorld文件,然后新建的文件就直接copy HelloWorld内容,但这样感觉还是挺麻烦的. 于是想办法给Xcode添加Cocos2d-x类模板.下面就是新建文件的时候,多了一个 2dx Scene 的类模板. 步骤: 1.打开Xcode类模板目录地址:/Applications/Xcode.app/Contents/Developer

Cocos2d-x中由sprite来驱动Box2D的body运动(用来制作平台游戏中多变的机关)

好久都没写文章了,就来一篇吧.这种方法是在制作<胖鸟大冒险>时用到的.<胖鸟大冒险>中使用Box2D来进行物理模拟和碰撞检測,因此对每一个机关须要创建一个b2body.然后<胖鸟>是依据<超级马里奥兄弟>设计的,所以机关能够是各种运动轨迹的平台,绕圈转的乌龟,蹦蹦跳的乌龟等.假设用box2d来做这些运动的话要自己写这些轨迹.可是Cocos2d-x已经提供了非常多的action,自己添加action也非常方便.反过来用sprite去设置box2d的b2body

cocos2dx Scene 生命周期(replaceScene,popScene后续补充)

cocos2dx 在多场景切换中,生命周期打印的效果如下: 从 MyScene 场景进入,切换到 HelloWorld 场景,再推出 HelloWorld 场景,流程图(见附件,,,,不知道怎么上传图片,不能粘贴图,郁闷...) 打印 log 如下, MyScene 代码: MyScene::MyScene() { CCLog("wangss------------->MyScene"); } MyScene::~MyScene() { CCLog("wangss---