3、Android NDK

Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被称为“NDK”。NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件,就可以创建出so。NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。[7] 

3 Cocos2d-x 3。x引擎介绍

3。1导演、场景、层和精灵

Cocos2d-x 3。x游戏引擎用节点树形结构去管理游戏对象的,一个游戏里拥有许多场景,同样一个场景也包括很多的层,一个层也可以拥有多个游戏对象。游戏流程的管理是由导演类(Director)来管理执行的,导演类可以通过切换不一样的游戏场景来完成游戏流程的管理。其基本结构框架如下图:

图3-1 Cocos2d-x游戏引擎基本结构框架

1、导演(Director)

导演类是Cocos2d-x游戏引擎的核心,OpenGL的初始化,游戏场景的切换,暂停与继续游戏的控制,控制游戏对象,保存游戏数据,获取设备屏幕尺寸等等都是由导演类来控制的。

2、场景(Scene)

一个游戏通常包含多个场景,游戏板块的切换也就是场景之间的切换,流程控制是场景的一个重要作用,可以通过导演类中的方法来控制游戏中场景的切换。下面列举一些常用的方法:

runWithScene( Scene *scene ) 启动游戏,并运行指定的scene 场景。当需要调用这个方法的时就是在主程序第一次启动主场景的时候;

pushScene( Scene *scene ) 方法首先将当前运行中的场景暂停,暂停之后将场景入栈,然后再将指定的游戏场景设置为当前运行场景;

replaceScene( Scene *scene ) 使用指定场景替换当前运行场景,然后释放当前的场景;

popScene() 方法的作用是释放当前的场景,将之前入栈的场景出栈,并将出栈的场景设置为当前运行场景。如果栈为空,直接结束应用。和PushScene结对使用;

end()方法的作用是释放和终止执行场景,并结束应用;

3、层(Layer)

层与场景是有差别的,层通常是在屏幕上可以显现的,比如用户事件输入的接收,包括单点触摸事件,键盘输入等等。可以在层中加入精灵,文本等其他游戏元素,并设置其属性,好比游戏元素的位置,方向和大小;与层中的游戏对象的功能相似,耦合度高,编写好层之后,我们把层按照一定的顺序添加到游戏场景中之后,这些层就可以显现了。

4、精灵(Sprite)

Cocos2d-x中的精灵可以移动、旋转、缩放、执行动画等其他转换,实现精灵显示的基本代码如下:

//创建场景

auto scene = Scene::create();

//创建名为layer的层并把层添加到游戏场景中

auto layer = HelloWorld::create();

scene->addChild(layer);

//创建名为sprite的游戏精灵对象并把游戏对象添加到layer层里

auto sprite = Sprite::create("HelloWorld.png");

layer->addChild(sprite, 0);

3。2动作、粒子系统和动画

1、动作

动作(Action)类创建一个对象就代表着一个动作,每一个动作都需要Node节点对象的支持,所以说动作是作用于Node的。其实动作类是一个接口,Node通过调用动作类的方法实现一系列动作。在游戏的开发中经常用到的两种动作是即时动作和持续动作,这两种动作都是在有限时间内完成的。即时动作指的立即完成的动作,比如设置精灵位置、缩放精灵大小等等。持续动作就是可以通过精灵的属性值慢慢的改变,从而可以实现的动画效果。

2、粒子系统

上一篇:Android多功能时钟的设计+源代码
下一篇:C#+mysql学生成绩管理系统的设计+源代码

基于Apriori算法的电影推荐

PHP+IOS的会议管理系统的设计+ER图

数据挖掘在电子商务中的应用

数据挖掘的主题标绘数据获取技术与实现

基于PageRank算法的网络数据分析

基于神经网络的验证码识别算法

基于网络的通用试题库系...

我国风险投资的发展现状问题及对策分析

互联网教育”变革路径研究进展【7972字】

麦秸秆还田和沼液灌溉对...

张洁小说《无字》中的女性意识

LiMn1-xFexPO4正极材料合成及充放电性能研究

老年2型糖尿病患者运动疗...

安康汉江网讯

ASP.net+sqlserver企业设备管理系统设计与开发

网络语言“XX体”研究

新課改下小學语文洧效阅...