[Tutorial] Unity + Android jogo da nave #4 [Vida + Pontos +Efeito de explosão + Rock Roll's ]


seja bem vindo a continuação do nosso tutorial do jogo de nave, nesse tutorial nos vamos ver muita coisa, quase uma hora de conteúdo '-', nessa aula vamos fazer o sistema básico de vida e pontuação do jogador, faremos também a dinâmica de explosão do meteoro entre outras coisas básicas.

Veja a aula completa aqui:



Bom vamos ao que interessa, primeiro aos links uteis da aula, nessa aula eu citei um lugar muito top para se baixar efeitos de partículas e outras coisas legais para usar no seu projeto e tudo de graça.
http://wiki.unity3d.com/index.php?title=Particle_Library

agora vamos aos scripts.

Primeiro vamos começar pelo script da nave
controle :


#pragma strict

var exp : Transform;
static var vida = 5;
static var pontos = 0;

var vel = 50;

function Start () {

}

function Update () {

  if(transform.position.x<=13){
if(Input.GetKey("left")){
  transform.Translate(vel*Time.deltaTime,0,0);

}
   }
   
   
  if(transform.position.x>=-13){
if(Input.GetKey("right")){
  transform.Translate(vel*Time.deltaTime*-1,0,0);

}
   }
   
   
  if(vida<=0){ 
  Application.LoadLevel("gameover");
  
  }

}


function OnGUI () {
    GUI.Label (Rect (10, 10, 100, 20), "Vida: "+vida);
    GUI.Label (Rect (10, 30, 100, 20), "Pontos: "+pontos);
    
}

function OnTriggerEnter(other:Collider){

 if(other.CompareTag("meteoro")){
       Instantiate (exp,transform.position,transform.rotation);
 }

}



Agora vamos para o script do meteoro.
Meteoro_control.


#pragma strict

var inicio = -43;
var fim = 20;

static var vel = 20;

function Start () {

transform.position.y=-15.76147;
transform.position.z=inicio;

}

function Update () {

   transform.Translate (0,0,vel*Time.deltaTime);

   if(transform.position.z>=fim){
      transform.position.z=inicio;
      transform.position.x=Random.Range(-12,12);
  
   }

}


function OnTriggerEnter(other:Collider){

 if(other.CompareTag("Player")){
      transform.position.z=inicio;
      transform.position.x=Random.Range(-12,12);
      controle.vida-=1;
     
 }

 if(other.CompareTag("Tiro")){
      transform.position.z=inicio;
      transform.position.x=Random.Range(-12,12);
      controle.pontos += 5;
 }


}

O próximo script é  o script responsável pela rotação do meteoro.


#pragma strict

var velx =100;
var vely =100;
var velz =100;

function Start () {

}

function Update () {

  transform.Rotate(velx*Time.deltaTime,vely*Time.deltaTime,velz*Time.deltaTime);

}


 E por ultimo o script do tiro com as atualizações

#pragma strict
var vel = 100;
var exp : Transform;
function Start () {

}

function Update () {

transform.Translate(0,vel*Time.deltaTime,0);

if(transform.position.z <=-61){
 Destroy(gameObject);
}

}

function OnTriggerEnter(other:Collider){

 if(other.CompareTag("meteoro")){
       Instantiate (exp,transform.position,transform.rotation);
 }

}



É isso ai espero que tenham gostado da aula, não deixem de compartilhar o tutorial para que o trabalho continue crescendo cada vez mais, tem alguma sugestão para o jogo, alguma dica do que implementar, alguma funcionalidade, comente ai antes que a serie de tutoriais acabe.

Comentários

  1. Não estou conseguindo fazer os efeitos de explosão aparecerem na tela, mesmo seguindo o tutorial passo a passo. E vendo os comentários do vídeo, um usuário comentou o seguinte:

    "A explosão aparecia no asteróide depois que ele retornava para a posição inicial, porque vc escreveu a linha de codigo de criação da explosão na ordem errada ! Primeiro deveria criar a explosão, e depois reiniciar a posição do asteróide !"

    Isso em linha de código como fica?

    Obrigado pela atenção.

    ResponderExcluir
  2. Parabéns Pelos os Vídeos Muito bom :)

    ResponderExcluir

Postar um comentário