К, я разобрался с решением. Все еще нужно работать над моим обнаружением столкновения, хотя. не самое большое. мой мяч иногда застревает в весле. Я использую тест на попадание объекта Flash. но все равно. это код, который я использовал, чтобы заставить его делать то, что я хочу. Кажется, что он поддерживает направление, в котором он предполагает идти, а иногда - нет.
Это работает, но проблема в том, что я сбиваю свою скорость с отрицательной стороны, поэтому иногда указания не совпадают. поскольку направление движения мяча определяется -1 или 1. если я выбиваю свою скорость в минус. это может привести к тому, что число будет противоположно тому, что предполагается.
Ниже в классе весла
public var cspeed:Number;
private var timer:Timer;
public var vx:Number = 0;
public var vy:Number = 0;
private var prevx:Number = 0;
private var prevy:Number = 0;
public function Paddle():void
{
timer = new Timer(60);
timer.start();
timer.addEventListener(TimerEvent.TIMER,checkSpeed);
}
private function checkSpeed(e:TimerEvent):void
{
if(prevx == 0)
{
prevx = x;
}
else
{
cspeed = x - prevx;
prevx = 0;
}
}
Я проверяю наличие столкновений в своем классе мяча. так как это тот, кто поражает все. ниже код
следующее в моем классе мяча. в классе проверки стен он проверяет, попал ли он в стену или на весло. Я передал ссылку моего весла на урок мяча.
private function checkWalls():void
{
if(y > sRef.stageHeight || y < 0)
{
yDir = yDir * -1;
}
else if ( x > sRef.stageWidth || x < 0)
{
xDir = xDir * -1;
}
//trace(dist);
/*var dx:Number = paddle.x - x;
var dy:Number = paddle.y - y;
var dist:Number = Math.sqrt(dx * dx + dy * dy);*/
if(hitTestObject(paddle))
{
xspeed = (paddle.cspeed/100) + xspeed;
yDir = yDir * -1;
}
//trace(paddle.cspeed);
}
private function moveBall():void
{
x += xspeed * xDir;
y += yspeed * yDir;
}
Мне все еще нужно подмигнуть ALOT. но если я над этим работаю. я думаю, что смогу заставить его делать то, что я хочу.