Code:
//Basic shapes and positions
a = [[-20, 5, 20, 5, 0, -5, 160, 220], [0, 10, 0, 0, 1, -25], [-8, -8, 8, -8, 0, 0, 310, -20], [-5, -5, 5, -5, 5, 5, -5, 5, 40, 180]];
c = _root;
//Enemy x position
x = 1;
//s=Score
//k=Init count
//n=Timer
//y=Enemy y Position
//d=Timer Starting Value
s = k=n=y=d=0;
createTextField("st", -1, 200, 220, 120, 20);
//Enemy Speed
e = 5;
_root.lineTo(320, 0);
_root.onEnterFrame = function() {
//New Level
if (k<78) {
//Draw Prototypes
//for (k=0; k<78; k++) {
if (k<4) {
//b = a[j].split(",");
b = a[k];
t = c.createEmptyMovieClip("h"+k, k);
t.lineStyle(0, 0x000);
l = b.length-2;
t.moveTo(b[l-2], b[l-1]);
for (i=0; i<l; i += 2) {
t.lineTo(b[i], b[i+1]);
}
t._x = b[l];
t._y = b[l+1];
} else if (k<27) {
//Walls
//for (k=4; k<27; k++) {
t = h3.duplicateMovieClip("h"+k, k);
t._x = (k+1)*10;
if ((k-1)%5 == 0) {
k++;
}
//}
} else {
//Enemies
//for (k=27, m=1; k<77; k++, m++) {
t = h2.duplicateMovieClip("h"+k, k);
t._x = x*25+25;
t._y = 20+y*15;
//ens[m-2][m] = t;
if (x>=10) {
y++;
//ens[j] = new Array();
x = 0;
}
x++;
}
//}
k++;
return;
}
//Move Hero
h0._x -= 5*(Key.isDown(37)-Key.isDown(39))*(h0._x-Key.isDown(37)*5>25 && h0._x+Key.isDown(39)*5<295);
//Fire
if (Key.isDown(32)) {
if (h1._y<-20) {
h1._x = h0._x;
h1._y = 200;
}
}
//Bullet Check
e *= z ? -1 : 1;
if (h1._y>-25) {
h1._y -= 5;
}
for (i=3; i<78; i++) {
t = c["h"+i];
if (i>27) {
if (z) {
t._x += n>30 ? e : 0;
t._y += 5;
}
if (t._y>200) {
_root.onEnterFrame = null;
_root.st = "Game Over";
}
}
if (t.hitTest(h1)) {
if (i>27) {
//Hit enemy
t.removeMovieClip();
s++;
} else {
//Hit Wall
t._xscale = t._yscale -= 25;
if (t._xscale == 0) {
t.removeMovieClip();
}
}
h1._y = -25;
}
}
//End level
if (s%50 == 0) {
if (s>0) {
s += 50;
d += 4;
k = 0;
}
}
z = false;
if (n>30) {
//Change direction
z = _root._width>321;
d += 2*z;
n = d;
}
n++;
st.text = "Score: "+s;
};