package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; public class SeekFleeTest2 extends Sprite { private var _vehicleA:SteeredVehicle; private var _vehicleB:SteeredVehicle; private var _vehicleC:SteeredVehicle; public function SeekFleeTest2() { stage.align=StageAlign.TOP_LEFT; stage.scaleMode=StageScaleMode.NO_SCALE; _vehicleA=new SteeredVehicle(0xff0000) ; _vehicleA.position=new Vector2D(stage.stageWidth*Math.random(),stage.stageHeight*Math.random()); _vehicleA.edgeBehavior=Vehicle.BOUNCE; addChild(_vehicleA); _vehicleB=new SteeredVehicle(0x0000ff) ; _vehicleB.position=new Vector2D(stage.stageWidth*Math.random(),stage.stageHeight*Math.random()); _vehicleB.edgeBehavior=Vehicle.BOUNCE; addChild(_vehicleB); _vehicleC=new SteeredVehicle(0x00ff00) ; _vehicleC.position=new Vector2D(stage.stageWidth*Math.random(),stage.stageHeight*Math.random()); _vehicleC.edgeBehavior=Vehicle.BOUNCE; addChild(_vehicleC); addEventListener(Event.ENTER_FRAME,onEnterFrame); } private function onEnterFrame(event:Event):void { //A追求B,躲避C _vehicleA.seek(_vehicleB.position); _vehicleA.flee(_vehicleC.position); //B追求C,躲避A _vehicleB.seek(_vehicleC.position); _vehicleB.flee(_vehicleA.position); //C追求A,躲避B _vehicleC.seek(_vehicleA.position); _vehicleC.flee(_vehicleB.position); _vehicleA.update(); _vehicleB.update(); _vehicleC.update(); } } }