Flash PBEngine 使用MovieClip的swc格式

    这篇文章针对的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的资源,就是一个MovieClip
			var et:et_1 = new et_1();
			
			// 初始化PBE场景
			var sceneview:SceneView = new SceneView();
			// 场景宽
			sceneview.width = 800;
			// 场景高
			sceneview.height = 600;
			// 起个名字
			sceneview.name = "MainView";
			PBE.initializeScene(sceneview);
			
			// 显示这个MovieClip
			ShowMC(et);
		}
		
		private function ShowMC(mc:MovieClip):void
		{
			// PBE的所有对象都是IEntity
			var 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了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值