我将不得不拿出一个完整的开发笔记。由于个人原因。代码已OK该,博客,那么就不要粘贴代码,直接解释了整个游戏设计,更确切地说,当新手应该注意的地方发展。

1.继承类和扩展作用的权----展阅读(MVC)。

我们要封装一个角色类,第一印象就是封装一个继承自sprite的精灵,里面封装好玛丽的动作和角色属性等。继承自sprite是可行的,我们仅仅要重写几个static create函数,然后把这个精灵贴到层上就可以。

细致考虑一下,假设角色要再加入一个特效尾随呢。角色吃到道具出现幻影分身呢?一系列的BT需求会发现继承自sprite事实上非常鸡肋,会导致代码非常臃肿,这不是我们继承的本意。所以我们要採用继承自node来创建角色(当然,也能够继承自layer,他们两个的实现应该是一样的,差别在于触摸时间的响应,我木实用过,^_^),我们能够在node里加入我们想要的cocos2dx的对象来完好角色类。

补:今天看子龙山人的blog引用一下

这个MVC模式和游戏实体组件系统差点儿相同。我在这篇文章里面就有介绍过了。对于这两个系统来说,它的思想都是统一的。那就是不要继承CCSprite并把游戏logic所有塞到sprite里面去。

CCSprite应该仅仅负责渲染显示。

并且有时候,你可能须要创建非常多sprite,我们最好是创建一个CCNode类。然后里面聚合很多sprites。这样CCNode成为了Controller,控制view。当view(比方sprite。effect,gL
drawings等等)在屏幕上面移动的时候,controller结点会轮询全部它包括的结点来查询一些游戏相关的状态信息,而且做一些游戏逻辑,然后反过来再更新view。

參考地址:点我!

子龙山人原blog:点我!

2.主场景层、游戏层、控制层、展示层、地图层、角色层的关系。

(原谅我不会绘图)

首先在写代码之前,我们应该明白整个地图层的关系。不要把全部的东西加入到同一个层中来控制。

主场景层是游戏中最大的一个层,它包括了整个场景中其它的全部节点。

控制层:虚拟遥感所在的层

游戏层:我们所示地图和人物所在的层

展示层:一些分数血量等静态的东西。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFuYmluZ2Zlbmd5aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

这么做的优点在后期代码的编写中是显而易见的。特别是对于精灵position的控制。我们不须要使用过多的坐标转换来移动一些角色和地图。

3.TMX地图的设计

在TMX地图中我们也要尽可能的对游戏中不同属性的元素进行划分和分类管理。

同属性的元素应该在同一个Layer里面。

例如以下:


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFuYmluZ2Zlbmd5aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

在解析地图的时候,我们就能够实现分层来控制整个地图中的元素。


4.内存的管理

代码中出现了非常多的内存泄露,我始终没有查到原因,retain的地方我都是用了release可是还是会有泄露。
在下个项目中是用元素的时候,我想我不会再直接使用create了。而是採用预载入的方式,对全部的材质进行统一管理,读取的时候直接从内存中读取,释放的时候统一释放。



版权声明:本文博主原创文章。博客,未经同意不得转载。

cocos2dx3.0 超级马里奥开发笔记(两)——正确的规划游戏逻辑的更多相关文章

  1. Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解

    作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位.那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能.然而这个时候各种 ...

  2. Unity 2D游戏开发教程之使用脚本实现游戏逻辑

    Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态. ...

  3. Cocos2d-x3.0 TestCPP文件夹笔记

    1.不多说,重力加速度. 2.ActionMangerTest:此Test是为了展示通过导演类来获得动作管理器ActionManager类.来控制节点动作. ①CrashTest:销毁demo,在精灵 ...

  4. 手游:cocos2d-x3.0 移植 wp8 开发 各种 “蛋疼”问题的汇总

    蛋疼的问题的起源: wp8 做应用开发,显示显示中文,源码包含中文都是没有一点问题的, 只是cocos2d-x 的编码方式(UTF-8),引起的一系列的问题. 1:不能显示服务器返回的中文 2:c++ ...

  5. Cocos2d-X-3.0 之后的版本的环境搭建

     Cocos2d-X-3.0 之后的版本的环境搭建 由于cocos2d游戏开发引擎更新十分频繁,官方文档同步不够及时和完善.所以不要照着官方文档来照做生成工程. <点击图片就能进入网站> ...

  6. 痞子衡嵌入式:超级下载算法(RT-UFL)开发笔记(2) - 识别当前i.MXRT型号

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是超级下载算法开发笔记(2)之识别当前i.MXRT型号. 文接上篇 <超级下载算法(RT-UFL)开发笔记(1) - 执行在不同CM ...

  7. iOS开发笔记7:Text、UI交互细节、两个动画效果等

    Text主要总结UILabel.UITextField.UITextView.UIMenuController以及UIWebView/WKWebView相关的一些问题. UI细节主要总结界面交互开发中 ...

  8. windows下cocos2dx3.0开发环境及Android编译环境搭建

    cocos2dx更新到了3.x版本号,自己一直没有换,如今开发组要求统一换版本号,我就把搭建好开发环境的过程记录下来. 一.Windowns下开发环境搭建 1.  所需工具         1)coc ...

  9. 安卓开发笔记——关于开源项目SlidingMenu的使用介绍(仿QQ5.0侧滑菜单)

    记得去年年末的时候写过这个侧滑效果,当时是利用自定义HorizontalScrollView来实现的,效果如下: 有兴趣的朋友可以看看这篇文件<安卓开发笔记——自定义HorizontalScro ...

随机推荐

  1. vs2010-error LNK1123: failure during conversion to COFF: file invalid or corrupt

    在项目上右键->Properties-> configuration Properties->Enable Incremental Linking(设置为No). ref: Link ...

  2. javadoc in archive eclipse.

    Open Windows -> Preferences. 2.Select jre from Installed JREs then hit Edit botton on the right. ...

  3. SQL Server 2008创建定期自动备份任务

    首先需要启动SQL Server Agent服务,这个服务如果不启动是无法运行新建作业的,点击“开始”–“所有程序”–“Microsoft SQL Server 2008”–“启动SQL Server ...

  4. jQuery之防止冒泡事件,冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。

    冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件. 下面是html代码部分: <body> <div id="content"> 外层div元素 ...

  5. Java基础--说集合框架

    版权所有,转载注明出处. 1,Java中,集合是什么?为什么会出现? 根据数学的定义,集合是一个元素或多个元素的构成,即集合一个装有元素的容器. Java中已经有数组这一装有元素的容器,为什么还要新建 ...

  6. recvmsg和sendmsg函数

    这两个函数是最通用的I/O函数.实际上我们把所有read.readv.recv和recvfrom调用替换成recvmsg调用.类似地,各种输出函数调用也可以替换成sendmsg调用 #include ...

  7. C++ Primer 5th 第16章 模板与泛型编程

    模板是C++中泛型编程的基础,一个模板就是创建一个类或者函数的蓝图或者说公式. C++模板分为函数模板和类模板. 类模板则可以是整个类是个模板,类的某个成员函数是个模板,以及类本身和成员函数分别是不同 ...

  8. [转]python集合set

    Python中集合set是基本数据类型的一种,它有可变集合(set)和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 来源网 ...

  9. C#语言的新特性及相关信息

     .ENT版本 NET 2.0 :CLR, WinForms ,Wed Services,ASP.NET NET 3.0 :WCF,WF,WPF,CardSpace NET 3.5 :LINQ ,AJ ...

  10. excel设置单元格不可编辑

    把允许编辑的单元格选定,右键-设置单元格格式-保护,把锁定前的对钩去掉.再点工具-保护工作表.这样就可以只让你刚才设定的单元格允许编辑,其他不允许.