动作脚本3 - 在2点之间移动的物体的旋转

时间:2015-01-21 19:01:04

标签: actionscript-3 rotation

我基本上创造了一个在另一个移动物体上射击子弹的移动物体。我可以让子弹正确移动但无法弄清楚如何计算旋转以使子弹在两者之间成直线,而不管它们各自的旋转。

以下是我的意思的简短视频: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);
        }

感谢。

1 个答案:

答案 0 :(得分:1)

你需要做的就是找出两点之间的角度。在这种情况下,两点是子弹位置和最后一帧的位置。你可以这样做:

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速度。