AS3游戏物理引擎APE新手指导

转载请注明出处:余音绕梁网

随着Actionscript的发展,现在flash的物理引擎也越来越多了。

如果要做一个物理引擎,我们需要各种各样的知识,包括:物理学,约束条件,融合等,当我们总是考虑这些问题的时候,我们就不能集中力量考虑我们的主要目标了:制作游戏或应用。

现在已经有人开发出Actionscript物理引擎了,APE(Actionscript Physics Engine)是一个面向flash和flex免费开源的2D物理引擎,它的发行基于MIT协议。

我昨天用了用它,发现它让人非常惊奇。当然,我们需要更多的时间进行实践,我来和大家分享第一步。

关于这个引擎的文档比较少,对新手来说有点不是很清晰。

这是我第一次用APE,同时也是第一次用Flex,两个工具开发都很快,这确实有点挑战。

第一步:下载APE alpha版本

现在,我们需要打开Flex,Flex是一个跨平台的开发工具,可用于开发各种富互联网应用。Flex开发的应用表现力非常强,能再主要浏览器和操作系统是运行。

如果是第一次使用Flex,可以再这里下载Flex 30天试用期的版本。

当将Flex装到你电脑上之后,就来创建第一个ActionScript项目:

我们将项目名字命名为”ape”,不要点击“Finish”,点击“Next>”

选择“Library Path”并点击“Add SWC”

现在找到并选中ape.swf文件,点击OK完成

在你的窗口里面应当有以下内容:

package {

import flash.display.Sprite;

 

public class ape extends Sprite

{

public function ape()

{

}

}

}

因为我命名为ape,所以这个类就是ape。

现在打入以下的内容:

package {

      import org.cove.ape.*;

      import flash.events.Event;

      import flash.display.Sprite;

[SWF(width='500',height='400',backgroundColor='0xFFFFFF',frameRate='30')]

      public class ape extends Sprite {

             public function ape() {

                   addEventListener(Event.ENTER_FRAME, run);

                   APEngine.init(1/4);

                   APEngine.container = this;

                   APEngine.addMasslessForce(new Vector(0,2));

                   var defaultGroup:Group = new Group();

                   defaultGroup.collideInternal = true;

                   var cp:CircleParticle = new CircleParticle(250,10,5);

                   defaultGroup.addParticle(cp);

              var wp:WheelParticle = new WheelParticle(280,10,5,false,1,0.3,0.1,1);

                   defaultGroup.addParticle(wp);

                   var rp:RectangleParticle = new RectangleParticle(250,300,200,10,-0.52,true);

                   defaultGroup.addParticle(rp);

                   var rp2:RectangleParticle = new RectangleParticle(150,200,200,10,0.52,true);

                   defaultGroup.addParticle(rp2);

                   var rp3:RectangleParticle = new RectangleParticle(250,50,200,10,-0.52,true);

                   defaultGroup.addParticle(rp3);

                   var wa: WheelParticle = new WheelParticle(160,20,10,false,2);

                   defaultGroup.addParticle(wa);

                   var wb: WheelParticle = new WheelParticle(200,20,10,false,2)

                   defaultGroup.addParticle(wb);

                   var wc:SpringConstraint = new SpringConstraint(wa, wb, 0.5, true, 3);

                   defaultGroup.addConstraint(wc);

              APEngine.addGroup(defaultGroup);

             }

             private function run(evt:Event):void {

                   APEngine.step();

                   APEngine.paint();

             }

      }

}

一个简单的APE就完成了。



发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(Spamcheck Enabled)