Hi there,
I am working on a 2d tile based system with a 3d camera set at a 45 degree angle to look isometric. I have the following code working which will generate the level.
some Code
var blockPiece:GameObject[]; // fill this
var debugMat:Material;
var pieces: GameObject[ , ];
var width = 20;
var length = 20;
private var levelArray:int[] = [7,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,
0,0,0,0,1,1,1,1,1,1,6,6,1,1,1,1,0,0,0,0,
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,
0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,
0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
function Awake() {
generateTiles();
}
function generateTiles(){
pieces = new GameObject[width, length]; // creates the object array
for(z=0; z<length; z++){
for(x=0; x<width; x++){
var prefab: GameObject;
// Set pefab to be inLibrary prefab based on level array
prefab = blockPiece[levelArray[z*width + x]];
// Add piece to stage
pieces[x,z] = Instantiate (prefab, Vector3(x,1,(z*-1)), Quaternion.Euler(0, 180, 0));
//pieces[x, z].renderer.material = debugMat;
}
}
}
function Start(){
// Do rotateBlocks function
}
Everything works in terms of generating the level, feel free to use the code if you like.
My problem is that I don’t know where to go from here. How do I set certain pieces to be corners?. I also can’t seem to find a good way to access and know a blocks type for running other commands. Any ideas?