В настоящее время я делаю флеш-пруд с рыбами в нем, и у меня есть возможность добавлять пищевые шарики на пруд, как я должен перемещать своих рыб в кормовой точке x, y?так что все будет гладко, вместо того, чтобы указывать координаты x, y моих рыб по отношению к расположению x, y пищевых гранул.
Также есть хорошее место, чтобы узнать, как заставить моих рыб двигатьсясвоя?похож на http://abowman.com/google-modules/fish/
Рыба класса
package
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.filters.DropShadowFilter;
/**
* ...
* @author Z
* Fish class, makes fishes behaviors, find food.
*/
public class Fish extends MovieClip
{
private var stageReference:Stage;
private var foodArray :Array = new Array();
public function Fish(stageReference:Stage)
{
this.stageReference = stageReference;
x = stageReference.stageWidth / 2;
y = stageReference.stageHeight / 2;
setUpShadow()
//adding listener
addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
}
public function loop(e:Event):void
{
if (y - 15 < foodArray.pop.y && y + 15 > foodArray.pop.y)
moveToFood();
}
public function moveToFood():void
{
}
public function addFoodTarget(foodTarget:Food):void
{
foodArray.push(foodTarget);
}
public function setUpShadow():void
{
//http://blog.0tutor.com/post.aspx?id=103
//First we declare an object, a dropshadow filter and name it my_shadow for further reference.
var my_shadow:DropShadowFilter = new DropShadowFilter();
//Now we apply some properties to our new filters object, this first property is the color, and we set that to black, as most shadows are.
my_shadow.color = 0x000000;
//These next two properties we set, are the position of our dropshadow relative to the object,
//This means 8 px from the object on both the x and y axis.
my_shadow.blurY = 8;
my_shadow.blurX = 8;
//And here we set an angle for the dropshadow, also relative to the object.
my_shadow.angle = 150;
//Setting an alpha for the shadow. This is to set the strength of the shadow, how "black" it should be.
my_shadow.alpha = .5;
//and here we set the distance for our shadow to the object.
my_shadow.distance = 15;
//Now we define an array for our filter with its properties to hold it. This will be the final object we refer to when we need to apply it to something.
var filtersArray:Array = new Array(my_shadow);
//The last step is to take our movie clip that we made at the beginning, so we take our object and apply the filtersArray.
filters = filtersArray;
}
}
}
еда класса
package
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.filters.DropShadowFilter;
import flash.display.MovieClip;
import flash.events.MouseEvent;
/**
* ...
* @author Z
* food class
*/
public class Food extends MovieClip
{
private var stageReference:Stage;
private var foodDisperseSpeed:Number = 0.4;
public function Food(stageReference:Stage,xPos:Number,yPos:Number)
{
x = xPos;
y = yPos;
this.stageReference = stageReference;
addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
}
private function loop(e:Event):void
{
if(Math.random() > 0.5)
x -= foodDisperseSpeed;
else
y -= foodDisperseSpeed;
}
public function removeSelf():void
{
removeEventListener(Event.ENTER_FRAME, loop);
if (stageReference.contains(this))
stageReference.removeChild(this);
}
}
}