2015-01-21 3 views
1

기본적으로 다른 움직이는 물체에 총알을 발사하는 움직이는 물체를 만듭니다. 총알이 제대로 움직 이도록 할 수는 있지만 총알이 각각의 회전에 관계없이 둘 사이에서 직선으로 이동하도록 회전을 계산하는 방법을 알아낼 수는 없습니다. 여기 http://i.gyazo.com/06c6f4c98391589609f495277bab8b3f.mp4액션 스크립트 3 - 2 포인트 사이를 움직이는 물체의 회전

총알의 생성에 사용되는 코드입니다 : 여기

무슨 뜻인지의 짧은 VID이다.

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

두 지점 사이의 각도를 계산하면됩니다. 이 경우의 두 점은 총알 위치와 마지막 프레임의 위치입니다.

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 속도를 사용할 수 있습니다 : 당신은 같은 것을 할 수 있습니다.