2014-11-01 70 views
1

我有一個2D,自上而下的遊戲正在進行中。對敵人造成傷害

我希望能夠在按下空格鍵時敵人受到傷害,並且敵人在玩家的一定距離內。

此時該代碼會將敵人緩慢移向玩家,並在玩家碰撞後對其施加傷害。當我擊中空格鍵時,敵人被摧毀,但我希望只有當敵人靠近玩家時纔會施加傷害。

這是目前我的敵人的代碼,與衛生系統設置:

var Player : Transform; 
var MoveSpeed = 4; 
var MinDist = 5; 
var Health = 100; 
var anyValue = 100; 

function Update() 
{ 
    transform.LookAt(Player); 

    if(Vector2.Distance(transform.position,Player.position) >= MinDist) 
    { 
     transform.position += transform.forward*MoveSpeed*Time.deltaTime; 
    } 
{ 
    if(Health <= 0) 
    { 
     Dead(); 
    } 

} 
if (Vector3.Distance(transform.position, Player.position) < someValue && Input.GetKeyDown(KeyCode.Space)) 
{ 
    ApplyDamage(someValue); 
} 
} 

function ApplyDamage (TheDamage : int) 
{ 
    Health -= TheDamage; 
} 

function Dead() 
{ 
    Destroy (gameObject); 
} 
+0

值得指出明確什麼是不是在你的代碼工作。 – dumbledad 2014-11-01 14:42:37

+0

沒有不工作。我只想學習如何在一定距離內按下按鈕時對敵人造成傷害。 – 2014-11-01 14:44:37

+0

嘗試研究一下,這個問題對於Stackoverflow來說太含糊。 – EvilZebra 2014-11-01 14:57:26

回答

1

我找到了解決辦法。

到一定距離時,我需要這個內申請損害:

if (Vector3.Distance(transform.position, Player.position) < 1.25 
    && Input.GetKeyDown(KeyCode.Space)) 
{ 
    ApplyDamage(5); 
}