OK,
so i have a class called “turret” in a tower defense game and another class called
“turret2” what i want is so that when you press the “1” key and click on the stage a turret is placed and when you click the “2” key turret 2 is placed can someone help me with this ?( or maybe point me towards another tutorial for a tower defense game)
this is another class called “Emptyblock” (Place that i put the turrets) the system didnt find any errors so…
package {
//importing required classes for this to work
import flash.display.MovieClip;
import flash.events.*;
public class EmptyBlock extends MovieClip {//defining the class as EmptyBlock
private var _root:MovieClip;//creating a _root variable to access root easily
private var turretone:uint=49;
public function EmptyBlock() {//this function will always run once EmptyBlock is called
this.addEventListener(Event.ADDED, beginClass);//create a function that will run once
this.addEventListener(Event.ENTER_FRAME, eFrameEvents);//create a enterFrame function
}
private function beginClass(e:Event):void {
_root=MovieClip(root);//setting the _root as the root level
this.buttonMode=true;//make this act like a button
this.addEventListener(MouseEvent.MOUSE_OVER, thisMouseOver);//adding function for mouseOver
this.addEventListener(MouseEvent.MOUSE_OUT, thisMouseOut);//adding function for mouseOut
this.removeEventListener(KeyboardEvent.KEY_DOWN, turret1);
}
private function eFrameEvents(e:Event):void {
if (_root.gameOver) {//remove this and listeners if game is over
this.removeEventListener(Event.ENTER_FRAME, eFrameEvents);
this.removeEventListener(MouseEvent.MOUSE_OVER, thisMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, thisMouseOut);
this.removeEventListener(KeyboardEvent.KEY_DOWN, turret1);
MovieClip(this.parent).removeChild(this);
}
}
private function thisMouseOver(e:MouseEvent):void {
//changing the background so the user know's it's clickable
this.graphics.beginFill(0x009900);
this.graphics.drawRect(0,0,25,25);
this.graphics.endFill();
}
private function thisMouseOut(e:MouseEvent):void {
//changing the background back
this.graphics.beginFill(0x333333);
this.graphics.drawRect(0,0,25,25);
this.graphics.endFill();
}
function turret1(e:KeyboardEvent) {
if (e.keyCode==turretone) {
_root.makeTurret(this.x,this.y);//make the turret
//remove all the listeners so it can't be clicked on again
this.buttonMode=false;
this.graphics.beginFill(0x333333);
this.graphics.drawRect(0,0,25,25);
this.graphics.endFill();
this.removeEventListener(MouseEvent.MOUSE_OVER, thisMouseOver);
this.removeEventListener(MouseEvent.MOUSE_OUT, thisMouseOut);
this.removeEventListener(KeyboardEvent.KEY_DOWN, turret1);
}
}
}
}
Make a class that manages your keyboard input and holds the current items you can use. Once you press a key the class switches to the item that is linked to that key. You should really consider splitting up your code into smaller manageable blocks.