How to Create a Tower Defense Game in AS2 – Part 2
Part 2: Adding Turrets
Okay, so in this part of the tutorial, we are going to make it so when the user clicks on any of the empty blocks, a turret is created. Let’s begin, shall we?
Open up your main flash file and find the code where we set the empty block’s onRollOver() and onRollOut functions. Well, now we’re going to create a onRelease() function, which just means clicking. Add this code to around Line 65, or after you set the onRollOver and onRollOut functions:
_root['block'+i].onRelease = function(){
//this function will run when the empty block is clicked on
//change this guy's color back
var newColor = new Color(this);
newColor.setRGB(0x333333);
//set all other mouse functions to null in order to keep it from being clicked again
this.onRollOver = null;
this.onRollOut = null;
this.onRelease = null;
//create an empty turret movieclip that will be on the top root layer
_root.createEmptyMovieClip('t'+this._name,_root.getNextHighestDepth());
//drawing the turret, it will have a gray, circular, base with a white gun
_root['t'+this._name].beginFill(0x999999);//coloring the base light gray
_root['t'+this._name].moveTo(0, 12.5);//move the entire shape a certain way
//create 4 curves so that it'll look like a circle
_root['t'+this._name].curveTo(0,25,12.5,25);
_root['t'+this._name].curveTo(25,25,25,12.5);
_root['t'+this._name].curveTo(25,0,12.5,0);
_root['t'+this._name].curveTo(0,0,0,12.5);
_root['t'+this._name].endFill();//end the fill so we can make a new one
//creating the gun
_root['t'+this._name].createEmptyMovieClip('gun',_root['t'+this._name].getNextHighestDepth());
_root['t'+this._name].gun.beginFill(0xFFFFFF);
_root['t'+this._name].gun.lineTo(-2,-2);
_root['t'+this._name].gun.lineTo(2,-2);
_root['t'+this._name].gun.lineTo(2,15);
_root['t'+this._name].gun.lineTo(-2,15);
_root['t'+this._name].gun.lineTo(-2,-2);
_root['t'+this._name].gun.endFill();
//setting the gun to be on the center of the turret
_root['t'+this._name].gun._x = 12.5;
_root['t'+this._name].gun._y = 12.5;
//set the turrets coordinates to be the blocks coordinates
_root['t'+this._name]._x = this._x;
_root['t'+this._name]._y = this._y;
}
Well, it’s a lot of code, but it gets the job done.
That’s it for this part of the tutorial. Next time, we’ll create and program some enemies!