2013-04-14 64 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是敵人的尺寸(直徑),d是敵人的最短距離。這裏a是總可見角度(兩條紅線之間)。

+0

@ sashkello感謝您的回覆,但我似乎無法使用我的編碼。你介意告訴我如何在代碼中做到這一點,以適應我的遊戲。 – user218130

+0

我不知道你實際上想要達到什麼目的。你的問題是關於計算角度的問題,這是你如何做到的。對不起,不能再有任何幫助 – sashkello

+0

@ Sashkello:這很好,現在我確切地知道我在找什麼。我一直在尋找球員的視線,但我已經看到了許多基於視線的教程,所以我只需要檢查它們,謝謝。 – user218130