dass du dir ein wenig besser vorstellen kannst was ich meine, hab ich nochmal schnell was gebastelt.
PHP-Code:
package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.geom.Point;
public class Schuss extends MovieClip{
private var _waffe:Waffe;
private var _ziel:Gegner;
private var _lebensZeit:int = 20;
private const GESCHWINDIGKEIT:Number = 3.5;
private var _speedX:Number;
private var _speedY:Number;
public function Schuss(waffe:Waffe, ziel:Gegner) {
_waffe = waffe;
_ziel = ziel;
x = waffe.x;
y = waffe.y;
var winkel = Math.atan2(ziel.y-waffe.y, ziel.x-waffe.x);
var pt:Point = Point.polar(GESCHWINDIGKEIT, winkel);
_speedX = pt.x;
_speedY = pt.y;
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function enterFrameHandler(e:Event):void{
//if(Spiel.pause==false){//prüfen, ob das spiel läuft (bspw. statische variable in deiner hauptklasse)
x += _speedX;
y += _speedY;
//Spiel.treffer(this);//wurde ein gegner getroffen? ...
lebensZeit--;
trace(x, y, lebensZeit);
//}
}
public function get lebensZeit():int{
return _lebensZeit;
}
public function set lebensZeit(val:int):void{
_lebensZeit = val;
if(_lebensZeit<=0){
kill();
}
}
public function kill():void{
trace("kill")
removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
if(parent!=null){
parent.removeChild(this);
}
//_waffe.freigegeben = true;//???
}
}
}
mfg
sx