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 速度。
我基本上是在创建一个移动物体,该物体向另一个移动物体发射子弹。我可以让子弹正确移动,但无法弄清楚如何计算旋转以使子弹在两者之间直线移动,无论它们各自的旋转如何。
这是我的意思的简短视频: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 速度。