package { import flash.display.Sprite; import flash.events.Event; import flash.text.TextField; import jp.dip.hael.gameai.boids.mover.Mover; [SWF(width="1024", height="768")] public class BoidsTest extends Sprite { private var m1:Mover, m2:Mover; private var s1:Sprite; private var t:TextField; public function BoidsTest() { m1 = new Mover(stage.stageWidth/2, stage.stageHeight/2, 5); m2 = new Mover(0, 0, 0); s1 = new Sprite(); s1.graphics.lineStyle(1, 0xFFFF0000); s1.graphics.moveTo( 10, 0); s1.graphics.lineTo(-10, 10); s1.graphics.lineTo(-10, -10); s1.graphics.lineTo( 10, 0); addChild(s1); graphics.lineStyle(1); graphics.moveTo(m1.x, m1.y); t = new TextField(); t.x = 0; t.y = 20; addChild(t); addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(e:Event):void { t.text = stage.frameRate.toString(); m2.x = mouseX; m2.y = mouseY; m1.clearForce(); m1.wander(graphics); m1.update(); if(m1.x < 0) m1.x = stage.stageWidth, graphics.moveTo(m1.x, m1.y); else if(m1.x > stage.stageWidth) m1.x = 0, graphics.moveTo(m1.x, m1.y); if(m1.y < 0) m1.y = stage.stageHeight, graphics.moveTo(m1.x, m1.y); else if(m1.y > stage.stageHeight) m1.y = 0, graphics.moveTo(m1.x, m1.y); s1.x = m1.x; s1.y = m1.y; s1.rotation = m1.rotation; graphics.lineTo(m1.x, m1.y); } } }