发新话题
打印

[分享] AS3物理引擎APE试用

AS3物理引擎APE试用

以前就听说过APE啦,只不过没去研究过它,而且中文资料N少。下午去N神的BLOG偶尔又看到这个东东,决定研究一下。
APE相对来说比较简单,总共就12个类。以下代码显示了物体做自由落体运动,与另一物体发生碰撞的过程,基本没什么难度~只是APE的试用而已,开发工具为FLEX3。详细的说明见注释。

运行演示:http://www.d5power.com/?p=140
    复制内容到剪贴板
    代码:

    import org.cove.ape.*;// 包含ape包
      
      public var mytester:RectangleParticle;//声明一个矩形物体
      public var mygroup:Group;//声明一个物件组
      public var mytester2:RectangleParticle;
      public var mygroup2:Group
      public function init():void
      {
       // 初始化矩形,设置坐标为200:300,尺寸为200:50,旋转角度0,固定
       mytester=new RectangleParticle(200,300,200,50,0,true);
       // 声明组
       mygroup=new Group();
       // 初始化一个不固定的矩形(受重力影响)
       mytester2=new RectangleParticle(200,0,100,100,0);
       mygroup2=new Group();
       
       // 向物件组中添加物件
       mygroup.addParticle(mytester);
       mygroup2.addParticle(mytester2);
       
       
       stage.frameRate = 55;
       
       // 初始化引擎
       APEngine.init(0.25);
       // 指定容器
       APEngine.container = stage;
       // 增加物件组
       APEngine.addGroup(mygroup);
       APEngine.addGroup(mygroup2);
       APEngine.addForce(new Vector(0, 9.8));
       // 规定碰撞检测,为mygorup指定检测对象为mygroup2
       mygroup.addCollidable(mygroup2);
       
       stage.addEventListener(MouseEvent.CLICK, mouseup);
       // 刷新场景
       stage.addEventListener(Event.ENTER_FRAME,run)
      }
      
      public function run(e:Event):void
      {
       APEngine.step();
       APEngine.paint();
      }
      
      public function mouseup(e:MouseEvent):void
      {
       mytester.radian=10;
      }
运行演示:http://www.d5power.com/?p=140

[ 本帖最后由 笨耗子 于 2007-12-25 16:29 编辑 ]
D5Power's Blog
www.d5power.com

TOP

请问知道玩啊

一开始一个方块掉下,再一点就滑下去了,然后就没有了?

TOP

呵呵,这个是开始的哈~~ 根据这个代码修改而来的可控制的程序演示及源文件在:

http://www.d5power.com/?p=144
D5Power's Blog
www.d5power.com

TOP

发新话题