Isometric Terrain
Isometric terrain thing; no need to cut the triangles or sort them so its easy to do (adding sprites on top of this is another story)
ActionScript3 source code
/**
* Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/sFqS
*/
package {
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
var i:int;
var num:int;
mwidth = 16;
mheight =16;
num = mwidth * mheight;
vecGrid = new Vector.<Number>(num, false);
for (i = 0; i < num; i++)
{
vecGrid[i] = 0;
vecGrid[i] = (Math.random()-0.5)*64;
}//nexti
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
// public var vecIndex:Vector.<int>;
public var vecGrid:Vector.<Number>;
public var mwidth:int = 0;
public var mheight:int = 0;
public var cw:Number = 24;
public var ch:Number = 24;
public var ang:Number = 0;
public function onEnter(e:Event):void
{
var k:int;
var i:int;
var yt:int;
var t:Number;
var rx:Number;
var ry:Number;
var rz:Number;
var sx:Number;
var sy:Number;
var num:int;
graphics.clear();
graphics.lineStyle(1, 0);
var m:Number;
ang += 0.1;
for (i = 0; i < mheight; i++)
{
yt = i * mwidth;
for (k = 0; k < mwidth; k++)
{
// t = vecGrid[yt+k];
m = (Math.cos(ang+i) * Math.sin(ang+k))*32;
vecGrid[yt+k] = m;
}//nextk
}//nexti
var ei:int;
var ek:int;
ek = mwidth - 1;
ei = mheight - 1;
var sx0:Number; var sy0:Number;
var sx1:Number; var sy1:Number;
var sx2:Number; var sy2:Number;
for (i = 0; i < ei; i++)
{
yt = i *mwidth;
for (k = 0; k < ek; k++)
{
t = vecGrid[0+k+yt];
rx = k * cw; ry = i * ch; rz = t;
sx0 = rx - ry; sy0 = (rx*0.5)+(ry*0.5) - rz;
sx0 += 200;
t = vecGrid[1+k+yt];
rx = k * cw+cw; ry = i * ch; rz = t;
sx1 = rx - ry; sy1 = (rx*0.5)+(ry*0.5) - rz;
sx1 += 200;
t = vecGrid[0+k+mwidth+yt];
rx = k * cw; ry = i * ch+ch; rz = t;
sx2 = rx - ry; sy2 = (rx*0.5)+(ry*0.5) - rz;
sx2 += 200;
graphics.beginFill(0x008000,1);
graphics.moveTo(sx0, sy0);
graphics.lineTo(sx1, sy1);
graphics.lineTo(sx2, sy2);
graphics.lineTo(sx0, sy0);
graphics.endFill();
// graphics.drawCircle(sx2, sy2, 8);
t = vecGrid[1+k+yt];
rx = k * cw+cw; ry = i * ch; rz = t;
sx0 = rx - ry; sy0 = (rx*0.5)+(ry*0.5) - rz;
sx0 += 200;
t = vecGrid[0+k+mwidth+yt];
rx = k * cw; ry = i * ch+ch; rz = t;
sx1 = rx - ry; sy1 = (rx*0.5)+(ry*0.5) - rz;
sx1 += 200;
t = vecGrid[1+k+mwidth+yt];
rx = k * cw+cw; ry = i * ch+ch; rz = t;
sx2 = rx - ry; sy2 = (rx*0.5)+(ry*0.5) - rz;
sx2 += 200;
graphics.beginFill(0x007000,1);
graphics.moveTo(sx0, sy0);
graphics.lineTo(sx1, sy1);
graphics.lineTo(sx2, sy2);
graphics.lineTo(sx0, sy0);
graphics.endFill();
/*
vecIndex.push(0+k+yt);
vecIndex.push(1+k+yt);
vecIndex.push(0+k+mwidth+yt);
vecIndex.push(1+k+yt);
vecIndex.push(0+k+mwidth+yt);
vecIndex.push(1+k+mwidth+yt);
*/
}//nextk
}//nexti
/*
num = vecIndex.length;
for (i = 0; i < num; i+=3)
{
t = vecGrid[vecIndex[i]];
}//nexti
*/
/*
for (i = 0; i < mheight; i++)
{
yt = i * mwidth;
for (k = 0; k < mwidth; k++)
{
t = vecGrid[yt+k];
rx = k * cw;
ry = i * ch;
rz = t;
sx = rx - ry;
sy = (rx*0.5)+(ry*0.5) - rz;
sx += 200;
graphics.drawCircle(sx, sy, 8);
}//nextk
}//nexti
*/
}//onenter
}//classend
}