Flash PBEngine 使用MovieClip的swc格式

来源:互联网 发布:淘宝直通车定向投放 编辑:程序博客网 时间:2024/05/21 21:54
    这篇文章针对的PBE 的版本为Mon Nov 07 23:18:44 -0800 2011  发布的1.0版本。使用Flashdevelop 4.0作为IDE,使用当前最新的Flex SDK4.5.1
    2.0粗略的看了一眼,写得很薄。2.0应该是针对游戏框架的设计,呵呵,2.0 Demo的第一句话“PushButton Engine is an industrial strength open source Flash game framework.”挺敢说的,工业强度。。。

    目的很明确,就是用PBE显示一个MovieClip,这个MovieClip是导出为 swc格式的。这种方式很适合开发,由Flash美术人员制作*.fla后导出成swc,这样就可以不用再跟程序人员费尽口舌的说明某某在XX坐标,某某在XX坐标,层级关系是这样的(此处省略XX字)。人员配合几次形成默契后连文档都省了。

    不用PBE其实这是很容易做到的,

this.addChild(new swcClass());

    但变为PBE的一个Component就稍微复杂了些,没办法为了组织起一个庞大的游戏逻辑,肯定是会复杂的。

    准备工作:1个动画原件导出成swc(这个美术人员都会,这里要注意的也就是动画的原点),PBE的源码(我喜欢编译源码到工程里,而不喜欢PBE的swc,往上查看或修改代码比较方便),建一个AS3工程(其实就用 解压引擎的目录\development\FlashDevelop\PBEngine 的这个Hello,在里面增加代码就挺好)

package  {import com.pblabs.engine.debug.Logger;import com.pblabs.engine.entity.IEntity;import com.pblabs.engine.PBE;import com.pblabs.rendering2D.MovieClipRenderer;import com.pblabs.rendering2D.ui.SceneView;import flash.display.MovieClip;import flash.display.Sprite;import flash.geom.Point;/** * ... * @author Simon */public class Hello extends Sprite{public function Hello() {// 它初始化PBE.startup(this);Logger.print(this, "Hello, World!");// 以上是原来例子提供的// swc的资源,就是一个MovieClipvar et:et_1 = new et_1();// 初始化PBE场景var sceneview:SceneView = new SceneView();// 场景宽sceneview.width = 800;// 场景高sceneview.height = 600;// 起个名字sceneview.name = "MainView";PBE.initializeScene(sceneview);// 显示这个MovieClipShowMC(et);}private function ShowMC(mc:MovieClip):void{// PBE的所有对象都是IEntityvar obj:IEntity = PBE.allocateEntity();// 这个MovieClipRenderer 半年前还不好用,这个版本修改了一些代码var fxrender:MovieClipRenderer = new MovieClipRenderer();// 直接把这个MovieClip赋值了fxrender.clip = mc;// 开启无限循环播放,否则播放1遍后就停止了fxrender.loop = true;// 指定个位置,这里是可以插入运动功能Component的,这里就不插入了fxrender.position = new Point(0, 0);// 指定显示场景fxrender.scene = PBE.scene;// 把这个render添加到这个对象 - PBE的基本规则也算是灵魂规则吧obj.addComponent(fxrender, "fxRender");obj.initialize();}}}

OK了!

原创粉丝点击