Я уже давно борюсь с методом ответа на столкновение, я пишу в actionscript 3 уже давно, и я надеюсь, что кто-то может объяснить, что означает этот код, потому что я только изменил его.Я не писал это с нуля.также я использую Collision Detection Toolkit, чтобы определить, где происходят столкновения.
Я пытаюсь сделать так, чтобы мяч (то есть объект, который вы перемещаете по экрану с помощью клавиатуры) ударялся о стену или объект.оно не пройдет сквозь стену или объект.
Насколько я понимаю, вы находите угол, под которым происходит столкновение, а затем вам нужно найти соседний угол, который является новым вектором, и отталкивать объект назад, насколько бы он не перекрывался,но я не понимаю, как эта функция работает, например, что
vx0:Number = ball.vx * cos + ball.vy * sin;
находка ?.кроме того, я не хочу, чтобы шар ускорялся, я хочу, чтобы его скорость была постоянной, пока он не коснется объекта.также было бы быстрее искать через этот массив в обратном направлении?
- Я ценю любого, кто находит время, чтобы попытаться помочь мне с этим, и я извиняюсь, если у меня есть некоторые опечатки.
for(i = 0; i < collisions.length; i++)
{
var collision:Object = collisions[i];
var angle:Number = collision.angle;
var overlap:int = collision.overlapping.length;
var ball:Ball = collision.object1;
var sin:Number = Math.sin(angle);
var cos:Number = Math.cos(angle);
var vx0:Number = ball.vx * cos + ball.vy * sin;
var vy0:Number = ball.vy * cos - ball.vx * sin;
vx0 = .4;
ball.vx = vx0 * cos - vy0 * sin;
ball.vy = vy0 * cos + vx0 * sin;
ball.vx -= cos * overlap / ball.radius;
ball.vy -= sin * overlap / ball.radius;
}