游戏引擎PushButton的教程和演示

上传人:飞*** 文档编号:43531321 上传时间:2018-06-06 格式:DOC 页数:17 大小:94KB
返回 下载 相关 举报
游戏引擎PushButton的教程和演示_第1页
第1页 / 共17页
游戏引擎PushButton的教程和演示_第2页
第2页 / 共17页
游戏引擎PushButton的教程和演示_第3页
第3页 / 共17页
游戏引擎PushButton的教程和演示_第4页
第4页 / 共17页
游戏引擎PushButton的教程和演示_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《游戏引擎PushButton的教程和演示》由会员分享,可在线阅读,更多相关《游戏引擎PushButton的教程和演示(17页珍藏版)》请在金锄头文库上搜索。

1、Get Started开始 PushButton,首先你需要下载当前的最新版本(http:/ Flash 并不熟悉,我只是一个半路出家的和尚,所以我选择 Flex(基于 Eclipse,让我觉得舒服)。解压后我们找到 PushButton 的类库所在,在 Bin 文件夹中我找到了 PBEngine.swc(这花了我一阵时间来研究 swc 在 flash 中的职责),也就是我们需要引用的类库文件。我在上面提到过,并没有发现有些帖子博客中提到的 Manager.air,在这里我们直接在 Flex 中新建一个Flex 项目,在建立时在 lib 文件夹中引入 PBEngine.swc,到这里我们的准备

2、工作就基本结束了。为了证明我们的操作成功与否,我们需要做一些测试证明一下。我们在 标签中设置了应用程序结束时调用的 appComplete 方法,在这个方法中我们需要调用 protected function appComplete():voidGlobal.startup(this);用 Matthew Casperson的话就是,当我们要用 PushButton 做什么事情之前,首先一定要调用 Global.startup(this);这是一切的基础。然后让我们做一个简单的动画(一个屏幕上的圆,来完成我们第一期的练习)。首先,在 PushButton 中,所有的东西都称之为”Entity“

3、 翻译成实体也好,所以,要显示一个圆,我们需要两个实体,首先我们需要一个类似于舞台类似于场景的东西我们称之为 ”Scene“(这在以后的例子中仍然会用到),然后需要一个圆,放到这个“Scene“中去。在 PushButton 中,组件构成了实体,实体就像一个空的盒子一样,每放入一个组件,盒子将拥有一个新的功能和特点。PushButton 并没有采用传统的继承的设计模式,并没有在创建一个实体的时候创建一个类,而是实现了一个接口 Entity 的一个对象,并包含了实现其他功能接口的组件,由实体包裹着组件(模块化的思想渐渐付出水面,但是精彩的还在后面,这种模块化让你想到了什么?XML?)。我们创造了

4、一个工厂类来产生我们需要的实体,以供在应用程序入口 Main.mxml 中调用1 2 8 9 10 23 24 25 26 在 EntityFactory 中,我们先创建 Scene。1 package2 3 import mx.core.*;4 5 import com.pblabs.engine.core.*;6 import com.pblabs.engine.entity.*;7 import com.pblabs.rendering2D.*;8 import com.pblabs.rendering2D.ui.*;9 10 import flash.geom.Point;11 12

5、public class EntityFactory13 14 static protected const SCENE_SPATIAL_COMPONENT:String = “Spatial“;15 static protected const SCENE_RENDERER_COMPONENT:String = “Renderer“;16 17 static public function createScene(name:String):IEntity18 19 var Scene:IEntity = allocateEntity(); 20 Scene.initialize(name);

6、 21 22 var Spatial:BasicSpatialManager2D = new BasicSpatialManager2D(); 23 Scene.addComponent( Spatial, SCENE_SPATIAL_COMPONENT ); 24 25 var Renderer:Scene2DComponent = new Scene2DComponent(); 26 Renderer.spatialDatabase = Spatial; 27 28 var View:SceneView = new SceneView(); 29 View.width = Applicat

7、ion.application.width; 30 View.height = Application.application.height; 31 Renderer.sceneView = View; 32 33 Renderer.position = new Point(0,0); 34 Renderer.renderMask = new ObjectType(“Renderable“); 35 36 Scene.addComponent( Renderer, SCENE_RENDERER_COMPONENT); 37 38 return Scene; 39 在类的数据成员我们发现了两类组

8、件的标记常量,一个叫“Spatial“,一个叫“Renderer“,由于我并没有从事过动画创作和任何游戏开发,我只能在开发中逐渐理解他们的含义,最简单的理解就是 Spatial 组件负责空间上的事务,如位置(position),大小(size)等等,而 Renderer 组件则负责处理渲染事务,关于什么叫渲染我并没有专业开发人员更理解,不过它决定了物体的形状,外貌等等。在创建 Scene 时,需要特殊注意的是,实体 Scene 的组件 Render 同样需要一个 View 来将Scene 渲染上去,这个时候我们需要创建一个 SceneView 如上代码所示。然后我们需要创建 Player,也就

9、是那个球。1 static public function createPlayer(name:String, scene:String):IEntity2 3 var entity:IEntity = allocateEntity(); 4 entity.initialize(name); 5 6 var Spatial:SimpleSpatialComponent = new SimpleSpatialComponent(); 7 8 Spatial.spatialManager = NameManager.instance.lookupComponentByName(scene, SCE

10、NE_SPATIAL_COMPONENT) as ISpatialManager2D; 9 10 Spatial.objectMask = new ObjectType(“Renderable“); 11 Spatial.position = new Point(0,0); 12 Spatial.size = new Point(50,50); 13 14 entity.addComponent( Spatial, “Spatial“ ); 15 16 var Render:SimpleShapeRenderComponent = new SimpleShapeRenderComponent(

11、); 17 18 Render.showCircle = true; 19 Render.radius = 25; 20 Render.positionReference = new PropertyReference(“Spatial.position“); 21 22 entity.addComponent( Render, “Render“ ); 23 24 return entity;25 26 27 28 读者会发现和 Scene 的创建非常的类似,在 Spatial 决定了大小和位置后,Render 中指定了这是显示一个圆,并描述这个圆的半径是 25,在这里我们需要注意的是在 Re

12、nder 的定义中,我们需要与 Spatial 的属性进行关联, 比如这里我们需要这个物体的空间位置,所以出现了Render.positionReference = new PropertyReference(“Spatial.position“);在后面我们还会遇到和大小相关联等等。运行在 FlexBuilder 中运行我们的项目,您会得到一个圆,这时候,恭喜你,您已经迈出了第一步。我很喜欢 PushButton,希望您也可以继续。以上部分内容,来自 Matthew Casperson 的博客http:/ 代码下载页面 http:/ PushButton 游戏引擎的 helloworld,我们在一张幕布上成功画出了一个圆,这一节,我们要做的就是让这个圆动起来。这对我来说是激动人心的(因为我原本只是写写简单的交互 JS),上一节我们讲到PushButton 最大的特点就是以组件为中心,一个实体好比一个空箱子,放在里边好多各种功能的石头,这个箱子就具有了各种各样的功能,这些有

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号