AS3物理引擎APE试用


APE相对来说比较简单,总共就12个类。以下代码显示了物体做自由落体运动,与另一物体发生碰撞的过程,基本没什么难度~只是APE的试用而已,开发工具为FLEX3。详细的说明见注释。
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;
}
其中函数run必须要在影片播放中不断执行,以刷新各物件新的位置,因此需要通过Event.ENTER_FRAME来调用。

原文地址:https://www.cnblogs.com/appleseed/p/1292246.html