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;
}
}
}
}
}
}
}
}
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