1. Открываем терминал и пишем:
|
Cоздаем файл Main.hx
| geany Main.hx |
со следующим содержанием:
| package; import nape.Space; import nape.PhysObj; import nape.Tools; //import nape.Geom; import nape.PhysObj; import nape.Properties; import nape.UniformSleepSpace; import nape.Body; import nape.Material; import flash.events.Event; import flash.events.MouseEvent; import flash.Lib; import flash.display.StageQuality; import flash.display.BitmapData; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; class Main { static var space:Space; static var prop:Properties; static function main() { space = new UniformSleepSpace(0,0,800,600,15); //create NAPE text representation var tf = new TextFormat(); tf.bold = true; tf.font = "Verdana"; tf.size = 35; var text = new TextField(); text.text = "OPPX"; text.setTextFormat(tf); text.autoSize = TextFieldAutoSize.LEFT; var bit = new BitmapData(Std.int(text.width), Std.int(text.height), false, 0xffffff); bit.draw(text); //MASSIVE air resistance prop = new Properties(0.005, 0.005); var b:Body; for (x in 0...bit.width) { for (y in 0...bit.height) { if (bit.getPixel(x, y) & 0xff < 0x80) { space.addObject(b = Tools.createBox(20 + x * 7, 120 + y * 7, 7, 7, 0, 0, 0, false, Material.Tire, 1, 0, prop)); Lib.current.addChild(b.graphic); } } } //set graphical quality to medium Lib.current.stage.quality = StageQuality.MEDIUM; //set up events Lib.current.addEventListener(Event.ENTER Lib.current.stage.addEventListener(Mouse } static function mdown(ev) { var b:Body; var mx = ev.stageX; var my = ev.stageY; var vx = 400 - mx; var vy = 300 - my; if (vx * vx < 250*250) vx = 0; else vx -= if (vx < 0) -250 else 250; space.addObject(b = Tools.createCircle(mx,my, 8, vx*6,vy*6, 0, false, true, Material.Steel, 1, 0, prop)); Lib.current.addChild(b.graphic); } static function enterFrame(ev) { //step 1/60th of a second through time in space. //since there's no gravity, no need for many iterations space.step(1/60, 1,1); } } |
И файл Hello.hxml
| geany Main.hxml |
со следующим содержанием:
| -swf Hello.swf -swf-header 800:600:60 -main Main -swf-lib library.swf -swf-version 10 |
И если сейчас попробовать собрать наш swf файл он будет ругаться на некий IntHash. Достаем напильник и пишем в терминале:
| cd nape sed -i 's/: IntHash;/: IntHash<String>;/g' Space.hx cd .. |
Т.е. заменяем ": IntHash" на ": IntHash<String>" в файле Space.hx
Теперь собираем:
| haxe Main.hxml |
И видим это: Hello.swf
Получилось здорово. Как раз то, что нужно для геймдевелопинга, а может и исче для чего-нибудь. А свою самую первую и самую простенькую игру я все-таки доделаю во flash cs3. Скоро уже напишу о ней здесь.