У меня есть игра, в которой подбрасывается приманка, определяемая переменной измерителя мощности. Когда счетчик полон, он возвращает переменную 1, когда половина 0,5, а когда низко около 0, как я могу использовать это, чтобы определить, насколько далеко моя "приманка будет выброшена" на экран?
я пытался, однако, что значение X не будет соответствовать моему положению удилища, и когда точка будет решена, мне придется переместить свою приманку в эту точку и остановиться.
_destinationY = Math.abs (_maxY - (_maxY * power));
_destinationX = Math.abs (_maxX - (_maxX * power));
package
{
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
import flash.geom.Point;
/**
* ...
* @author ...
*/
public class Bullet extends MovieClip
{
//variables
private var _stageRef:Stage;
private var _maxX:Number = 1024;
private var _maxY:Number = 768;
private var _destinationY:Number;
private var _destinationX:Number;
private var _speedVector:Point = new Point();
private var _moveFactor:Number = 0.9;
public var hit:MovieClip;
private var _fishes:Vector.<HFish> = new Vector.<HFish>;
private var _bulletLengthVector:Point = new Point();
private var awpSnd:awpSound
private var _power:Number = 1;
public function Bullet(stageRef:Stage,x:Number,y:Number,targetPoint:Point,power:Number)
{
this.x = x;
this.y = y;
_stageRef = stageRef;
_maxX = _stageRef.stageWidth;
_maxY = _stageRef.stageHeight;
//movement
_destinationY = Math.abs(_maxY - (_maxY * power));
_destinationX = Math.abs(_maxX - (_maxX * power));
trace ("landing at Y " + _destinationY);
trace ("landing at X " + _destinationX);
if (_destinationY > _maxY)
_destinationY = _maxY;
if (_destinationX > _maxX)
_destinationX = _maxX;
addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
//determine bullet moving speed
}
private function loop(e:Event) : void
{
//move bullet
this.x += _speedVector.x;
this.y += _speedVector.y;
//remove bullet bound check
if (this.x > _maxX || this.x < 0)
removeSelf();
else if (this.y > _maxY || this.y < 0)
removeSelf();
}
private function removeSelf() : void
{
removeEventListener(Event.ENTER_FRAME, loop);
if (stage.contains(this))
stage.removeChild(this);
}
}
}
скриншот игры.