サイトのコードサンプルは、ActionScriptではなくHaxeで、 'package'を追加したときのエラーについて説明しています。
package{
import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.StageQuality;
import nape.space.Space;
import nape.space.UniformSleepSpace;
import nape.util.Tools;
import nape.geom.Vec2;
import nape.geom.GeomPoly;
import nape.phys.PhysObj;
import nape.phys.Material;
import nape.geom.AABB;
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public class Main extends Sprite
{
private var space:Space;
private var g:Graphics;
private var vl:Array;
private var px:Number; private var py:Number;
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
private function mouseDown(ev:MouseEvent):void {
var x = stage.mouseX;
var y = stage.mouseY;
g.lineStyle(1, 0, 0.5);
vl.push(new Vec2(x, y));
g.moveTo(x, y);
px = x; py = y;
}
private function mouseUp(ev:MouseEvent):void {
if (vl.length >= 3) {
var poly = new GeomPoly(vl);
poly.simplify(50, 4);
if (!poly.selfIntersecting()) {
if (!poly.cw()) poly.points.reverse();
var p = Tools.createConcave(poly, 0, 0, 0, false, Material.Wood);
space.addObject(p);
addChild(p.graphic);
}
}
g.clear();
vl = new Array();
px = -100;
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public function init(ev:Event = null)
{
var s = new Sprite();
g = s.graphics;
addChild(s);
s.cacheAsBitmap = true;
vl = new Array();
px = -100;
space = new UniformSleepSpace(new AABB(0,0, 800,600), 30, new Vec2(0, 250));
var p:PhysObj;
space.addObject(p = Tools.createBox(-20, 300, 50, 600, 0, 0, 0, true, Material.Wood));
addChild(p.graphic);
space.addObject(p = Tools.createBox(820, 300, 50, 600, 0, 0, 0, true, Material.Wood));
addChild(p.graphic);
space.addObject(p = Tools.createBox(400, -20, 800, 50, 0, 0, 0, true, Material.Wood));
addChild(p.graphic);
space.addObject(p = Tools.createBox(400, 620, 800, 50, 0, 0, 0, true, Material.Wood));
addChild(p.graphic);
stage.quality = StageQuality.MEDIUM;
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUp);
stage.addEventListener(Event.ENTER_FRAME, enterFrame);
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
private function enterFrame(ev:Event) {
graphics.clear();
graphics.lineStyle(1, 0, 1);
if (px != -100) {
var x = stage.mouseX;
var y = stage.mouseY;
var dx = x - px; var dy = y - py;
if (dx * dx + dy * dy > 5) {
vl.push(new Vec2(x, y));
px = x; py = y;
g.lineTo(x, y);
}else {
graphics.moveTo(px, py);
graphics.lineTo(x, y);
}
}
space.step(1/60, 6, 6);
}
}
}
をそしてここでタイムラインコードです:
は、ここでのActionScriptのクラスの修正バージョンです
import flash.Boot;
new Boot();
var m:Main = new Main();
m.addEventListener(Event.ADDED_TO_STAGE, m.init);
addChild(m)
をFLAは、このセットアップのための60のフレームレートで800×600でなければなりません。 また、コンストラクタをinitメソッドに変更したことに注目してください。つまり、 ステージがそこにアクセスされ、Mainのインスタンスがステージに追加されるまで、 ステージへの参照はnullになります。
AS3とHaxeを混在させることは、プログラミングを初めて行う人にとっては簡単ではありません。あなたがHaxeに興味があれば、それを求めてください。そうでなければ、より簡単な2D物理学のために、Box2D World Construction Kitをお勧めします。コンポーネント定義を使用してIDEで世界のプロトタイプを簡単に作成できるため、Alchemyを使用しているため直接AS3ポートよりも少し速いはずです。
また、あなたが始めるためにgotoAndLearn上で無料入門ビデオチュートリアルがあります。
Goodluck!
NapeはHaxeを使ってビルドされているので、あなたはhaxeのメーリングリストを試すことができるようです。 – goliatone