Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import flash.display.ActionScriptVersion;
- import flash.display.Loader;
- import fl.motion.Color;
- import flash.display.Stage;
- import flash.display.MovieClip;
- import flash.events.Event;
- var mousePressed:Boolean = false; //keeps track of whether the mouse is currently pressed down
- var delayCounter:int = 0; //we use this to add delay between the shots
- var delayMax:int = 8; //try changing this number to shoot more or less rapidl
- var playerScore:int = 0;
- //how much time before allowed to shoot again
- var cTime:int = 0;
- //the time it has to reach in order to be allowed to shoot (in frames)
- var cLimit:int = 12;
- var enemyTime:int = 0;
- var enemyLimit:int = 16;
- //whether or not the user is allowed to shoot
- var shootAllow:Boolean = true;
- var bulletList:Array = [];
- var enemies: Array = new Array();
- var cores: Array = new Array("0xf2ed64", "0x2c3d07", "0x7cb2c3", "0xe4452f");
- //muusic
- var req:URLRequest = new URLRequest("musica.mp3");
- var s:Sound = new Sound(req);
- s.play();
- //planeta e canhao !!
- var mcMain: Loader = new Loader();
- mcMain.load(new URLRequest("novo_potato.png"));
- var i:Number = 95;
- addChild(mcMain);
- trace(stage.width);
- trace(stage.height);
- mcMain.x = 200,5;
- mcMain.y = 120,5;
- //these booleans will check which keys are down
- var leftDown:Boolean = false;
- var upDown:Boolean = false;
- var rightDown:Boolean = false;
- var downDown:Boolean = false;
- //how fast the character will be able to go
- var mainSpeed:int = 5;
- //adding a listener to mcMain that will move the character
- mcMain.addEventListener(Event.ENTER_FRAME, moveChar);
- function RandomWithinRange(min:Number, max:Number):Number
- {
- return Math.random() * (max - min) + min;
- }
- function moveChar(event:Event):void{
- //checking if the key booleans are true then moving
- //the character based on the keys
- if(leftDown){
- rotateAroundCenter(mcMain, -(i/10));
- i : i++;
- if(i>100){
- i = 100;
- }
- }
- if(rightDown){
- rotateAroundCenter(mcMain,(i/10));
- i : i++;
- if(i>100){
- i = 100;
- }
- }
- }
- stage.addEventListener(Event.ENTER_FRAME, shootTime);
- function shootTime(e: Event): void{
- //checking if cTime has reached the limit yet
- if(cTime < cLimit){
- cTime ++;
- } else {
- //if it has, then allow the user to shoot
- shootAllow = true;
- //and reset cTime
- cTime = 0;
- }
- }
- stage.addEventListener(Event.ENTER_FRAME, addEnemy);
- function addEnemy(e:Event):void{
- //adding enemies to stage
- if(enemyTime < enemyLimit){
- //if time hasn't reached the limit, then just increment
- enemyTime ++;
- } else {
- var n: uint = RandomWithinRange(0,4);
- var nCor: uint = RandomWithinRange(0,4);
- //defining a variable which will hold the new enemy
- var newEnemy = new Enemy();
- // create a Color object
- var c:Color = new Color();
- // set the color of the tint and set the multiplier/alpha
- if(nCor == 0){
- c.setTint(cores[0], 0.3);
- } else if(nCor == 1){
- c.setTint(cores[1], 0.3);
- } else if(nCor == 2){
- c.setTint(cores[2], 0.3);
- } else if(nCor == 3){
- c.setTint(cores[3], 0.3);
- }
- // apply the tint to the colorTransform property of the
- // desired MovieClip/DisplayObject
- newEnemy.transform.colorTransform = c;
- trace("//");
- trace(n);
- //making the enemy offstage when it is created
- //making the enemy's x coordinates random
- //the "int" function will act the same as Math.floor but a bit faster
- if(n == 0){
- newEnemy.x = int(Math.random()*(stage.width - (newEnemy.width/2)));
- newEnemy.y = -1 * newEnemy.height;
- } else if(n == 1){
- newEnemy.y = int(Math.random()*(stage.height - (newEnemy.height/2)));
- newEnemy.x = -1 * newEnemy.width;
- } else if(n == 2){
- newEnemy.x = int(Math.random()*(stage.width - (newEnemy.width/2)));
- newEnemy.y = stage.height + newEnemy.height;
- } else if(n == 3){
- newEnemy.y = int(Math.random()*(stage.height - (newEnemy.height/2)));
- newEnemy.x = stage.width + newEnemy.width;
- }
- trace(newEnemy.x);
- trace(newEnemy.y);
- enemies.push(newEnemy);
- addChildAt(newEnemy,2);
- //and reset the enemyTime
- enemyTime = 0;
- }
- }
- //this listener will listen for down keystrokes
- stage.addEventListener(KeyboardEvent.KEY_DOWN, checkKeysDown);
- function checkKeysDown(event:KeyboardEvent):void{
- //making the booleans true based on the keycode
- //WASD Keys or arrow keys
- if(event.keyCode == 37 || event.keyCode == 65){
- leftDown = true;
- }
- if(event.keyCode == 39 || event.keyCode == 68){
- rightDown = true;
- }
- //checking if the space bar is pressed and shooting is allowed
- if(event.keyCode == 32 && shootAllow){
- //making it so the user can't shoot for a bit
- shootAllow = false;
- //declaring a variable to be a new Bullet
- var newBullet:Bullet = new Bullet(stage,stage.width/2,stage.height/2,mcMain.rotation);
- //changing the bullet's coordinates
- shootBullet();
- var bullet_sound:URLRequest = new URLRequest("shot.mp3");
- var s:Sound = new Sound(bullet_sound);
- s.play();
- //then we add the bullet to stage
- //addChild(newBullet);
- }
- }
- function shootBullet():void //delete the "e:MouseEvent" parameter
- {
- var bullet:Bullet = new Bullet(stage, stage.width/2, stage.height/2, mcMain.rotation);
- bullet.addEventListener(Event.REMOVED_FROM_STAGE, bulletRemoved, false, 0, true);
- bulletList.push(bullet);
- addChildAt(bullet,1);
- }
- function bulletRemoved(e:Event):void
- {
- e.currentTarget.removeEventListener(Event.REMOVED_FROM_STAGE, bulletRemoved);
- bulletList.splice(bulletList.indexOf(e.currentTarget),1);
- }
- stage.addEventListener(Event.ENTER_FRAME,CheckForCollision);
- stage.addEventListener(Event.ENTER_FRAME,CheckForCollisionPlanet);
- function CheckForCollision(e:Event){
- for(var i:int=0; i < enemies.length; i++){
- for(var j:int =0; j < bulletList.length; j++){
- if( enemies[i].hitTestObject(bulletList[j]) ){
- //explosao
- //var req:URLRequest = new URLRequest("explosion.mp3");
- //var s:Sound = new Sound(req);
- //s.play();
- playerScore += 5;
- updateTextFields();
- removeChild(enemies[i]);
- enemies[i] = null;
- enemies.splice(i, 1);
- removeChild(bulletList[j]);
- bulletList[j] = null;
- bulletList.splice(j, 1);
- }
- }
- }
- }
- function CheckForCollisionPlanet(e:Event){
- for(var j:Number =0; j < enemies.length; j++){
- var minDist:Number = 92;
- var distance:Number = Pythagoras(200+70, 120+70, enemies[j].x, enemies[j].y);
- trace("Valor "+ mcMain.x);
- trace("Valor" + mcMain.y);
- if (distance <= minDist){
- //explosao
- //var req:URLRequest = new URLRequest("explosion.mp3");
- //var s:Sound = new Sound(req);
- //s.play();
- removeChild(enemies[j]);
- enemies[j] = null;
- enemies.splice(j, 1);
- }
- }
- }
- //this listener will listen for keys being released
- stage.addEventListener(KeyboardEvent.KEY_UP, checkKeysUp);
- function checkKeysUp(event:KeyboardEvent):void{
- //making the booleans false based on the keycode
- if(event.keyCode == 37 || event.keyCode == 65){
- leftDown = false;
- }
- if(event.keyCode == 39 || event.keyCode == 68){
- rightDown = false;
- }
- }
- function rotateAroundCenter(object: DisplayObject, angleDegrees: Number): void {
- if (object.rotation == angleDegrees) {
- return;
- }
- var matrix: Matrix = object.transform.matrix;
- var rect: Rectangle = object.getBounds(object.parent);
- matrix.translate(-(rect.left + (rect.width / 2)), -(rect.top + (rect.height / 2)));
- matrix.rotate((angleDegrees / 180) * Math.PI);
- matrix.translate(rect.left + (rect.width / 2), rect.top + (rect.height / 2));
- object.transform.matrix = matrix;
- object.rotation = Math.round(object.rotation);
- }
- //stage.addEventListener(MouseEvent.CLICK, shootBullet, false, 0, true); //remove this
- stage.addEventListener(KeyboardEvent.KEY_DOWN, mouseDownHandler, false, 0, true);
- stage.addEventListener(KeyboardEvent.KEY_DOWN, mouseUpHandler, false, 0, true);
- stage.addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
- function loop(e:Event):void
- {
- if(mousePressed) // as long as the mouse is pressed...
- {
- delayCounter++; //increase the delayCounter by 1
- if(delayCounter == delayMax) //if it reaches the max...
- {
- shootBullet(); //shoot a bullet
- delayCounter = 0; //reset the delay counter so there is a pause between bullets
- }
- }
- if(bulletList.length > 0)
- {
- for(var i:int = bulletList.length-1; i >= 0; i--)
- {
- bulletList[i].loop();
- }
- }
- }
- function mouseDownHandler(e:KeyboardEvent):void //add this function
- {
- mousePressed = true; //set mousePressed to true
- }
- function mouseUpHandler(e:KeyboardEvent):void //add this function
- {
- mousePressed = false; //reset this to false
- }
- function updateTextFields():void
- {
- playerScoreText.text = (""+playerScore);
- }
- function Pythagoras(x1:Number, y1:Number, x2:Number, y2:Number):Number
- {
- var xdist:Number = x1-x2;
- var ydist:Number = y1-y2;
- return Math.sqrt(xdist*xdist+ydist*ydist);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement