Actionscript 3 - 在 2 点之间移动的对象的旋转

Actionscript 3 - Rotation of an object moving between 2 points

我基本上是在创建一个移动物体,该物体向另一个移动物体发射子弹。我可以让子弹正确移动,但无法弄清楚如何计算旋转以使子弹在两者之间直线移动,无论它们各自的旋转如何。

这是我的意思的简短视频:http://i.gyazo.com/06c6f4c98391589609f495277bab8b3f.mp4

这是用于创建项目符号的代码。

private function createBullet(): void {

            _startX = this.x  
            _startY = this.y 
            _endX = (Init._player.x); 
            _endY = (Init._player.y); 
            var tempBullet: MovieClip = new Bullet();
            tempBullet.vx = (_endX - _startX) / _bulletSpeed;
            tempBullet.vy = (_endY - _startY) / _bulletSpeed;
            tempBullet.x = _startX;
            tempBullet.y = _startY;
            tempBullet.rotation = ???
            tempBullet.startX = _startX;
            tempBullet.startY = _startY;
            tempBullet.maxDistance = _maxDistance;
            _bullets.push(tempBullet);
            stage.addChild(tempBullet);
        }

谢谢。

您需要做的就是算出两点之间的角度。本例中的两点是子弹位置和最后一帧的位置。你可以这样做:

var dx:Number = oldBullet.x - bullet.x;
var dy:Number = oldBullet.y - bullet.y;
var angle:Number = Math.atan2(dy, dx) * (180 / Math.PI);

dx 和 dy 只是 x 和 y 的增量,因此您也可以使用子弹的 x 和 y 速度。