E ae Galera!!

Esse é o Blog do Canal Games Indie e eu sou o Bruno, aqui tentarei trazer notícias, vídeos, analises, tutoriais e mais um montão de coisas que no canal do youtube não tem como eu trazer! Ou seja mais conteúdo pra quem gosta do Canal!!

Tutorial Unity 3D - Jogo de Tabuleiro: Buracos e Elevações no Tabuleiro - Script Gera Tabuleiro



Script Gera Tabuleiro: link pra baixar o .js:

#pragma strict
var Bloco: GameObject;
var BlocoAux: GameObject;
var MatrizTabuleiro: int[,];
var X:int;
var Y:int;
function Start () {

X = Mathf.FloorToInt(Random.Range(20,40));
Y = Mathf.FloorToInt(Random.Range(20,40));
print(X+"::"+Y);
MatrizTabuleiro = new int [X,Y];
InicializaValores(MatrizTabuleiro);

GeraElevacao(MatrizTabuleiro);
GeraBuracos(MatrizTabuleiro);



InstanciaTabuleiro(MatrizTabuleiro);
}

function Update () {

}

function InstanciaTabuleiro(Tabuleiro:int[,]){
var xx: int;
var zz: int;
var Posicao: Vector3;
 
for (xx=0;xx<Tabuleiro.GetLength(0);xx++)
{
  for (zz=0;zz<Tabuleiro.GetLength(1);zz++)
  {
  Posicao = transform.position-
        Bloco.transform.lossyScale.x*Tabuleiro.GetLength(0)/2*transform.right+
        Bloco.transform.lossyScale.z*Tabuleiro.GetLength(1)/10*transform.forward-
        Bloco.transform.lossyScale.y*3*transform.up+
        Bloco.transform.lossyScale.x*xx*Bloco.transform.right+
        Bloco.transform.lossyScale.z*zz*Bloco.transform.forward;
  if (Tabuleiro[xx,zz] == 1) 
  {
     BlocoAux = Instantiate(Bloco,Posicao , transform.rotation);
   
     BlocoAux.name = (xx+zz)+"S "+"X "+xx+"Z "+zz;  
     if ((xx+zz)%2 == 0)
     {
      BlocoAux.renderer.material.color = Color.black;
     }
    }
  
  
  if (Tabuleiro[xx,zz] == 2) 
  {
     Posicao += Bloco.transform.lossyScale.y*1*Bloco.transform.up; 
     BlocoAux = Instantiate(Bloco,Posicao , transform.rotation);
     BlocoAux.name = (xx+zz)+"S "+"X "+xx+"Z "+zz;  
     BlocoAux.renderer.material.color = Color.red;
     if ((xx+zz)%2 == 0)
     {
      BlocoAux.renderer.material.color = Color.blue;
     }
    }
  }
}
transform.eulerAngles.x = 22;

}


function InicializaValores(Tabuleiro:int[,])
{
var xx: int;
var zz: int;

for (xx=0;xx<Tabuleiro.GetLength(0);xx++)
{
  for (zz=0;zz<Tabuleiro.GetLength(1);zz++)
  {
    Tabuleiro[xx,zz] = 1;
  }
}

}


function GeraBuracos(Tabuleiro:int[,]){
var Area: int;
var Margem: int;
var deltaX : float;
var deltaZ: float;
var xx: int;
var zz: int;

var x: int;
var z: int;
Margem = Mathf.FloorToInt(Random.Range(4,6));



for (xx=Margem;xx<Tabuleiro.GetLength(0)-(Margem);xx++)
{
  for (zz=Margem;zz<Tabuleiro.GetLength(1)-(Margem);zz++)
  {
     if (Random.value>0.98)
     {
       Area   = Mathf.FloorToInt(Random.Range(1,3));
       for (x=xx-(Area*2);x<xx+(Area*2);x++)
        {
         for (z=zz-(Area*2);z<zz+(Area*2);z++)
          { 
            deltaX =(xx-x)*(xx-x);
            deltaZ =(zz-z)*(zz-z);
            if (deltaX+deltaZ<=Area*Area)
            {
              if (x>0 && x <Tabuleiro.GetLength(0) && z>0 && z <Tabuleiro.GetLength(1))
              {
                Tabuleiro[x,z] = 0;
              }
            }
          }
        }
     
     }
     
   }
 }
}

function GeraElevacao(Tabuleiro:int[,]){
var Area: int;
var Margem: int;
var deltaX : float;
var deltaZ: float;
var xx: int;
var zz: int;

var x: int;
var z: int;
Margem = Mathf.FloorToInt(Random.Range(4,6));



for (xx=Margem;xx<Tabuleiro.GetLength(0)-(Margem);xx++)
{
  for (zz=Margem;zz<Tabuleiro.GetLength(1)-(Margem);zz++)
  {
     if (Random.value>0.98)
     {
       Area   = Mathf.FloorToInt(Random.Range(1,3));
       for (x=xx-(Area*2);x<xx+(Area*2);x++)
        {
         for (z=zz-(Area*2);z<zz+(Area*2);z++)
          { 
            deltaX =(xx-x)*(xx-x);
            deltaZ =(zz-z)*(zz-z);
            if (deltaX+deltaZ<=Area*Area)
            {
              if (x>0 && x <Tabuleiro.GetLength(0) && z>0 && z <Tabuleiro.GetLength(1))
              {
                Tabuleiro[x,z] = 2;
              }
            }
          }
        }
     
     }
     
   }
 }
}

Um comentário:

  1. O canal realmente ta bom legal, mais até hoje eu espero você se inscrever no meu canal é acho que vou cancelar minha inscrição no seu canal você é do tipo que venha a minha ou vosso reino nada é isso eu estou enganado espero você lá Ok. Há parabéns pelo canal ta massa.

    ResponderExcluir