Tutorial: Create a Tower Defense Game in AS2 – Part 2
Written By MrSun at 8:02 am - Saturday, April 25th, 2009
Categories: Advanced Tutorials, All Tutorials, AS2, Flash, Game Development
Categories: Advanced Tutorials, All Tutorials, AS2, Flash, Game Development
Table of Contents
Step 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!
What if you have custom movieclips for terrain and turrets instead of circles and squares?
June 1st, 2009 at 1:16 pm
I think you have to put(for the enemies):
_root['t'+this._name].attachMovie(“name_in_the_library”, “new_name”, _root.getNextHighestDepth(), {_x: this._x, _y: this._y});
And for the terrain:
_root['block'+i].attachMovie(“name_in_the_library”, “new_name”, _root.getNextHighestDepth(), {_x: (i-row*22)*25, _y: row*25});
I hope this work
July 9th, 2009 at 6:31 pm
Ouch!
DON’T READ THE SENTECE “for the enemies”!!!
I wanted to put “for the turrets”…
Sorry
July 9th, 2009 at 6:34 pm
thanks yours is a gun mine is a greensquare
September 23rd, 2009 at 10:31 pm