概要:
一直想看看游戏引擎是怎么回事,听说了很多,最终选择了微云的WiEngine作为入手点
相对于其他而言 WiEngine毕竟是中方开发的,一上来就看英文的可能会有些难懂,这也是选择它的一个原因,另外一方面是看到WiEngine提供了相当丰富的DEMO演示,但是这里也要说的是WiEngine的文档真是非常简陋,只是一个类关系图,方法,很多甚至连参数意义和函数作用都没有,这也导致了在看demo代码的过程中,很多问题没法方便的解决。
WiEngine是吸取cocos2d改写的,但是很可惜并不开源,不过这暂时没有大碍,作为看看游戏引擎是怎么回事的我,已经算足够了。同时WiEngine虽说是iOS,android等都支持,但是真正要移植还是需要用C++,NDK去开发,这个暂时也不讨论了。
WiEngine中一些比较重要的概念有场景Scene,导演Director,节点Node,层Layer,Sprite精灵,Atlas图片集,Action动作等,这些概念在以前模模糊糊也都听说过
Scene场景
一般而言场景Scene指游戏画面,比如菜单界面,读取界面,游戏界面等,并不是代表游戏场景本身,游戏场景本身其实是画布上清空重置,如果不用游戏引擎,场景就类似于我们自己定义的SurfaceView,而通过调用setContentView(SurfaceView)切换场景。WiEngine使用的是GLSurfaceView
Director导演
个人感觉是类似于一个游戏总体管理的类,通过它来得到跟画布屏幕的相关参数,与游戏画面渲染动作本身是没有关系的,但是很多东西需要通过它得到。Director是单例模式,在demo中经常可以看到诸如Director.getInstance().xxxx这样的方法,同样的,对场景的置换也是通过它。
Node节点
Node是所有元素的基类,游戏中精灵,场景等都是扩展于Node的,在绘制游戏的过程中也是从根部开始,逐个绘制所有节点。可以通过setAnchorPercent设置锚点,以及setPosition设置位置。旋转缩放等是相对于锚点进行的。
Layer层
一个场景可以有多个层,也可以一个层都没有,属于Node的子类,可以在层中加入场景。
Sprite精灵
精灵这个概念是我在看游戏开发中最先看到的名词,个人理解所有画面中会进行运动的,也就是除了背景这些,所有的都是精灵。而WiEngine说得更直白,精灵其实代表的就是图片资源。
Atlas图片集
就是常见的将各个资源图拼接成的大图,一般结合TextureAtlas使用
Action动作
动画效果,通过runAction()来启动动作,动作也分很多类型,在demo里都有演示
要注意的一点是Android的坐标系原点在屏幕左上,右方向和下方向为正
而OpenG的坐标系原点则在屏幕左下,上方向和有方向为正
WiEngine中提供了诸如convertToGL等方法来进行转换
在看demo学习的过程中,做了很多记录,原本想全部写下来,可是demo很多又很难组织,恰巧看到一个博客中有WiEngine的demo学习笔记,所以附上链接,稍显简单,不过自己结合着看的话也差不多够了
http://blog.sina.com.cn/s/blog_670f9b990100xt4v.html Action部分的一些
http://blog.sina.com.cn/s/blog_670f9b990100xt4x.html Box2D部分的一些
http://blog.sina.com.cn/s/blog_670f9b990100xt51.html Lua,Node等的一些
另外其实微云本身也有一些PDF资料,在官网上有下载,但是其中说的也是非常简要,只能作为在接触前了解一下用
2/20更新
由于WiEngine对于Box2D的文档实在简陋,很多只是一句简单的英文,连中文都免了,有时会摸不清方向,搜索的过程中发现了一个cocos2d的博客,虽然使用的语言是Objective-C,不过语言大家都是共同的,具体语法可能有些米糊,但是意思肯定是非常明确,这个博客的资料非常好,所以转到这里
http://www.cnblogs.com/andyque/tag/cocos2d/ 强烈推荐
分享到:
相关推荐
在"WiEngine-master"这个压缩包中,我们很可能是获取到了WiEngine的源码仓库,包含了项目的核心代码、资源文件以及可能的构建脚本和示例应用。 1. **WiEngine架构**: WiEngine 由多个模块组成,包括图形渲染模块...
这是一个使用wiEngine手机游戏引擎写的一个非常简单的游戏...况且,在这个类似demo的游戏中,我是用了自己所有面向对象的功力去搭建这个游戏,从这个游戏中,不仅学习如何使用wiEngine,还可以学习面向对象思想的设计!
WiEngine 是一个强大的游戏开发框架,专为移动设备设计,特别是Android和iOS平台。它由C++编写,提供了丰富的2D游戏开发功能,包括图形渲染、物理引擎、音频处理、动画系统等。这个"WiEngine入门笔记(1)学习源码...
WiEngine可能有优化的资源管理系统,避免内存泄漏和提高加载效率。 9. **游戏逻辑**:WiEngineDemos中会包含各种游戏逻辑的实现,如游戏规则、计分系统、AI行为等,帮助开发者了解如何在WiEngine上构建完整的游戏...
### Cocos2d开发资源概览 #### 一、Cocos2d的不同版本及特性 - **Cocos2d-Python**:这是Cocos2d最初版本的基础,它使用Python语言编写,为后续版本的发展奠定了基础。 - **Cocos2d-iPhone**:基于Objective-C语言...
这个"WiEngineDemos_java源代码"包含了使用Java语言编写的示例程序,是学习和理解WiEngine工作原理的好资源。 WiEngine的核心特性包括: 1. **图形渲染**:基于OpenGL ES,提供高性能的2D图形渲染能力,支持精灵、...
4. **编辑器工具**:提供了角色分析设计器、地图编辑器等多种编辑工具,方便开发者进行资源管理和编辑工作。 MT引擎的设计理念在于简化开发流程,提高开发效率,使得开发者能够更加专注于游戏内容的创作。 #### 五...
这样,当游戏运行时,WiEngine可以直接读取这些粒子效果,无需额外处理图像资源,提高了程序的效率。 ParticleDesigner的.plist文件是一种XML格式的数据文件,它包含了粒子系统的所有配置信息,如粒子的生命周期、...
本文将详细解析文档中的关键知识点,并进一步探讨其背后的技术细节。 #### 动作相关概念 - **持续时间**:动作的持续时间定义了一个动作完成所需的时间。根据持续时间的不同,动作被分为两大类:即刻动作(Instant ...
### 微云游戏引擎文档002:系统事件深度解析 #### 一、事件的派发与处理机制 微云游戏引擎(WiEngine)通过其核心组件`EventDispatcher`进行事件的分发与管理,这一机制确保了引擎内部对用户交互、硬件输入和其他...
棺材笔记一 大于你妹的20个字符啊