Advertisement
Guest User

teste_jogo

a guest
Jul 26th, 2014
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class Zumbi : MonoBehaviour {
  5. //Personagem
  6. public string direcao;
  7. private float velocidade;
  8.  
  9. //Audio
  10. public AudioClip[] grunidos;
  11. public float grunidoProbabilidade = 50f; // Chance que o personagem tem para emitir um grunido
  12. public float grunidoDelay = 1f; // Espaço de tempo entre cada grunido depois de finalizado o anterior
  13. private int grunidoIndex; // Variavel que irá guardar o grunido atual
  14.  
  15. // Use this for initialization
  16. void Start () {
  17.  
  18.  
  19. }
  20.  
  21. // Update is called once per frame
  22. void Update () {
  23.  
  24. if (direcao == "direita") {
  25. velocidade = 1f;
  26. transform.Translate (Vector2.right * velocidade * Time.deltaTime);
  27. } else if (direcao == "esquerda") {
  28. velocidade = -1f;
  29. transform.Translate (Vector2.right * (- velocidade) * Time.deltaTime);
  30. }
  31. }
  32.  
  33. void OnCollisionEnter2D(Collision2D colisor) {
  34. //Para morrer o personagem caso o zumbi acerte ele.
  35. if (colisor.gameObject.tag == "Player") {
  36. Destroy(colisor.gameObject);
  37. }
  38. }
  39.  
  40. public IEnumerator Grunir()
  41. {
  42. // Checa a probabilidade de emitir um grunido
  43. float grunidoChance = Random.Range(0f, grunidoProbabilidade * 2);
  44.  
  45. if(grunidoChance > grunidoProbabilidade){
  46. // Espera por grunidoDelay.
  47. yield return new WaitForSeconds(grunidoDelay);
  48.  
  49. // Verifica se pode emitir um novo grunido
  50. if(!audio.isPlaying){
  51. // Escolhe um grunido, porem diferente do anterior
  52. grunidoIndex = GrunirRandom();
  53.  
  54. // Inicia um novo grunido
  55. audio.clip = grunidos[grunidoIndex];
  56. audio.Play();
  57. }
  58. }
  59. }
  60.  
  61. public int GrunirRandom()
  62. {
  63. // Escolhe uma posição aleatória na array de grunidos
  64. int auxIndex = Random.Range(0, grunidos.Length);
  65.  
  66. // Verifica se é o mesmo grunido emitido anteriormente
  67. if(auxIndex == grunidoIndex){
  68. return GrunirRandom();
  69. }else{
  70. return auxIndex;
  71. }
  72. }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement