Advertisement
draxdeveloper

Untitled

Apr 3rd, 2014
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.40 KB | None | 0 0
  1. /* Copyright 2014 Dive Sistemas
  2.  *  
  3.     Este arquivo é parte do programa Lunatico
  4.  
  5.  
  6.  
  7.     Lunatico é um software livre; você pode redistribuí-lo e/ou
  8.  
  9.     modificá-lo dentro dos termos da Licença Pública Geral GNU como
  10.  
  11.     publicada pela Fundação do Software Livre (FSF); na versão 3 da
  12.  
  13.     Licença, ou (na sua opinião) qualquer versão.
  14.  
  15.  
  16.  
  17.     Este programa é distribuído na esperança de que possa ser  útil,
  18.  
  19.     mas SEM NENHUMA GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer
  20.  
  21.     MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
  22.  
  23.     Licença Pública Geral GNU para maiores detalhes.
  24.  
  25.  
  26.  
  27.     Você deve ter recebido uma cópia da Licença Pública Geral GNU
  28.  
  29.     junto com este programa, se não, escreva para a Fundação do Software
  30.  
  31.     Livre(FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
  32.  
  33. using UnityEngine;
  34. using System.Collections;
  35.  
  36. public class SlideSkill : BaseSkill {
  37.    
  38.     public float velocidadeSlide; // velocidade do slide
  39.     private bool pisandoChao; // indica se o objeto esta no chao
  40.     public Sprite spriteSlide; // sprite do slide
  41.     public Vector2 tamanhoSlideCollider; // tamanho padrao do collider
  42.     private Vector2 tamanhoOriginalCollider; // tamanho do collider enquanto executa o slide
  43.    
  44.     void Start () {
  45.         this.tamanhoOriginalCollider = GetComponent<BoxCollider2D>().size;
  46.     }
  47.    
  48.     protected override void Execute()
  49.     {
  50.         Slide();
  51.     }
  52.    
  53.     protected override bool ValidateStopExecution()
  54.     {
  55.         return IsStatic();
  56.     }
  57.    
  58.     protected override bool ValidateExecution()
  59.     {
  60.         return base.ValidateExecution() && pisandoChao && !IsStatic();
  61.     }
  62.    
  63.     private void Slide()
  64.     {
  65.         float direcao = Input.GetAxis ("Horizontal");
  66.         rigidbody2D.AddForce(Vector2.right * velocidadeSlide * direcao);
  67.        
  68.         this.GetComponent<SpriteRenderer>().sprite = spriteSlide;
  69.         GetComponent<BoxCollider2D>().size = tamanhoSlideCollider; 
  70.     }
  71.    
  72.     protected override void PosExecute()
  73.     {
  74.         base.PosExecute();
  75.         GetComponent<BoxCollider2D>().size = tamanhoOriginalCollider;
  76.     }
  77.    
  78.     private bool IsStatic()
  79.     {
  80.         return rigidbody2D.velocity == Vector2.zero;
  81.     }
  82.    
  83.     void OnCollisionEnter2D (Collision2D other)
  84.     {
  85.         if(other.collider.name == "SuperficieSuperior")
  86.         {
  87.             pisandoChao = true;
  88.         }
  89.     }
  90.    
  91.     void OnCollisionExit2D (Collision2D other)
  92.     {
  93.         if(other.collider.name == "SuperficieSuperior")
  94.         {
  95.             pisandoChao = false;
  96.         }
  97.     }
  98.    
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement