Cocos2dx游戏教程(三):“见缝插针”,Cocos2dx核心类介绍

前面给大家介绍了图片精灵的加载和相关核心类的描述,聪明的小伙伴们应该都已经了解了相关的使用方式吧,这次呢就详细的介绍下几个核心类的作用,使用方式和框架结构,巩固一下。

序、框架结构图

我们看一下将要实现的游戏的示意图,能看出哪些是场景,哪些是精灵么,还有文字和菜单按钮哦(后面介绍)
在这里插入图片描述
如下图所示,上章的Director,Node,Scene,Layer,Sprite结构图如下。
Node类是绝大部分类的父类,如Scene、Layer、Sprite等等的父类都是Node。
在这里插入图片描述

一、Director导演类

Director俗称导演类,Director是Cocos2d-X的核心。
我们在开发过程中可以通过单例模式获取导演对象:

auto director= Director::getInstance();

还比如,我们想获取屏幕可视区的大小可以使用

auto visibleSize = Director::getInstance()->getVisibleSize();

屏幕大小可以使用

auto winSize = Director::getInstance()->getWinSize();

说道这大家肯定也想起了前面切换场景吧,这也是导演类所处理的,对于切换场景,我们来看一下几种方法

1、初始化游戏场景

该方法有且仅在启动游戏的时候会调用,只此一次,用来初始化游戏显示的第一个场景。

runWithScene( Scene *scene );

2、将一个场景压入栈中,并运行下一场景

pushScene( Scene scene );

3、释放当前场景,代码执行场景中弹出栈顶的场景,如果栈为空,直接结束应用。和PushScene结对使用。

popScene()

4.直接替换场景,当前场景被释放,这是切换场景时最常用的方法。

replaceScene( Scene *scene );

当然Director还有好多用法,大家可以去参考源代码或者运行Cocos2dx自带的例子学习哈。

二、Scene场景类

Scene是继承与Node类的。场景就像是一个容器,将不同的布景层(Layer)组合在一起,方便管理。
一个游戏会有很多的场景,比如,主界面,游戏界面,载入界面等等都是一个场景。而每一个场景都是由多个图层组合在一起,形成一个完整的游戏画面。

场景的创建如下

 auto scene = Scene::create();

三、Layer布景层类

Layer继承于Node。Layer不仅继承了Node的所有操作,还附加触控、重力加速度计、支持键盘输入的事件代理。
一个布景层(Layer)可以包含多个元素,如标签(Label)、菜单(Menu)、精灵(Sprite)等等。
注意:Layer的锚点默认为(0,0),即左下角。并且忽略锚点的设置,即使你setAnchorPoint了锚点,Layer的锚点也不会改变,依然是(0,0)。

布景层创建如下

auto layer = HelloWorld::create();

我们上面创建了场景,那么我们怎么将布景层加入场景呢

scene->addChild(layer);

四、Sprite精灵类

Sprite继承于Node,简单一点,其实就是一个2D的图片,一般加载在Layer上。默认锚点为(0.5,0.5)居中哦。
Sprite不仅继承了Node,还继承了纹理协议接口TextureProtocol。

如何创建一个精灵呢

auto sprite = Sprite::create("filename");

然后将精灵加入布景层

layer->addChild(sprite);

五、总结

一个简单的游戏场景的建立离开不了上面几个核心类的共同作用,总体来说我们需要

导演指挥->创建一个场景->创建一个层加入场景->创建游戏元素加入层

到这里应该对核心的操作有些了解了吧,后续将会结合游戏例子介绍相关的操作,遇到其他知识点穿插着讲哈,希望和大家共同进步!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值