2013-04-14 4 views
0

저는 적을 특정 범위에두고 플레이어 앞에서 플레이어가 적을 공격 할 수있는 게임을 만들고 있습니다. 반경 거리를 계산하여 플레이어가 어떤 방향으로 향하고 있는지에 따라 앞으로 향하게 만들었지 만 각도를 만들어 플레이어의 원뿔 모양처럼 만들 수는 있습니다. 나는 이미지가있다. 얇은 초록색 선은 반경입니다. 그러나 어떻게 붉은 원뿔을 계산할 수 있습니까? 여기 어떻게 각도를 계산할 수 있습니까?

이 내가 지금까지 무슨 짓을 더 잘 이해

http://tinypic.com/view.php?pic=28v63h0&s=6

의 이미지입니다

당신은 접선의 정의를 사용할 수 있습니다

{ 
    import flash.display.MovieClip; 
    import flash.events.Event; 
    import flash.events.KeyboardEvent; 
    import flash.events.MouseEvent; 
    import flash.ui.Keyboard; 

    public class Player extends MovieClip 
    { 

     var radius:Number = 60; 

     public function Player() 
     { 
      addEventListener(Event.ENTER_FRAME, Update); 
     } 

     function Update(event:Event) 
     {  
      var radiusx:Number = x+radius*Math.cos(rotation/180*Math.PI); 
      var radiusy:Number = y+radius*Math.sin(rotation/180*Math.PI); 

      // Rotate to mouse; 
      var dx = parent.mouseX - x; 
      var dy = parent.mouseY - y; 
      var angle = Math.atan2(dy,dx)/Math.PI * 180; 
      rotation = angle; 

     } 
    } 
} 

답변

0

패키지 :

tan(a/2) = s/(2d) 

여기서 s은 적의 크기 (diamerer)이고 d은 적과의 최단 거리입니다. 여기 a은 총 가시 각도 (두 개의 빨간색 선 사이)입니다.

+0

@ sashkello 답장을 보내 주셔서 감사합니다.하지만 코딩에 맞지 않는 것 같습니다. 내 게임에 맞게 코드에서 어떻게 할 수 있는지 보여 주시겠습니까? – user218130

+0

나는 당신이 실제로 무엇을 성취하려고하는지 전혀 모른다. 귀하의 질문에 대한 각도를 계산하고 이것이 당신이 그것을 할 수있는 방법입니다. 죄송합니다, 더 이상 도움이 될 수는 없습니다. – sashkello

+0

@ Sashkello : 지금은 정확히 내가 무엇을 찾고 있는지 알고 있습니다. 나는 플레이어의 시야를 찾고 있었지만 시력의 선을 기반으로하는 많은 튜토리얼을 보았으므로 어쨌든 그들을 체크 아웃 할 필요가있다. – user218130

관련 문제