95Roadkill icon

College work Game (Done)

95Roadkill | PRO | 10/27/14 05:23:21 PM UTC | 0 ⭐ | 11172 👁️ | Never ⏰ | []
ActionScript |

11.06 KB

|

None

|

0 👍

/

0 👎

//----------------------------\
//Main Variables              |
//----------------------------/
var bulletID:Number = 0;
var maxSpeed:Number = 5;
var speed:Number = 0;
var accel:Number = 0.15;
var decel:Number = 0.95;
var backSpeed:Number = 0;
var maxBackSpeed:Number = -5;
var healthPoints:Number = 100;
var cheatsOn:Boolean = false;
var isMouseDown:Boolean = false;
var numBullets:Number = 0;
var ammo:Number = 10;
var reloadTime:Number = 0;
var numBullets:Number = 0;
var numEnemies:Number = 0;
var bulletList:Array = new Array ();
var enemyList:Array = new Array ();
var bulletSpeed:Number = 10;
var canFire:Boolean = true;
var radians:Number = Math.PI/180;
var enemySpeed:Number = 2;
var turnRate:Number = 0.1;
var canSpawn:Boolean = true;
var spDelay:Number = 0;
var score:Number = 0;
 
//zombies 
var moveX:Number = 0;
var moveY:Number = 0;
 
// Timers
var fireTime:Number = 0;
var reloadTime:Number = 0;
 
 
//boundry variables
var tankW = Tank._width /2;
var tankH = Tank._height /2;
var stageW = Stage.width;
var stageH = Stage.height;
var boundT = 0 + tankH;
var boundR = stageW - tankW
var boundL = 0 + tankW;
var boundB = stageH - 100 - tankH;
 
//sound variables
fire = new Sound ();
fire.attachSound("Fire")
 
//---------------------------------------------------------
 
//---------------------------------\
// Find out if the mouse is down   |
//---------------------------------/
 
this.onMouseDown = function() //if Mouse mosue is down, set isMouseDown to true
{
    isMouseDown = true;
    trace("Down")
}
this.onMouseUp = function() //if Mouse mosue is up, set isMouseDown to false
    {
    isMouseDown = false;
    trace("Up")
}
//---------------------------------------------------------
 
//----------------\
// Define Angle   |
//----------------/
 
Mouse.hide();
 
Tank.onEnterFrame = function()
{
    if(canSpawn == true){ // if canSpawn is equal to true, run the code.
        spawnEnemy() //Run function "spawnEnemy"
        canSpawn = false // set canSpawn to false so the spawn delay can be triggered
     }
     for (i = 0; i <= numEnemies; i++){
          if (Tank.hitTest(enemyList[i]) && speed <= -2){ //if player drives over zombies past a set speed, then kill the zombies.
            enemyList[i].removeMovieClip();
            enemyList.splice(i,1);
            numEnemies--;
            score+=5  // increase score by 5
             }
         if (Tank.hitTest(enemyList[i]) && speed >= 2){//if player reverses over zombies past a set speed, then kill the zombies.
            enemyList[i].removeMovieClip();
            enemyList.splice(i,1);
            numEnemies--;
            score+=5 // increase score by 5
         }
            
     }
     if(healthPoints <= 0){
         gotoAndStop(2)
     }
    mouseCursor.gotoAndPlay(reloadTime)
    ammoLeft = "Current ammo: " + ammo / 2 // make the text tell us the current ammo
    sped = "Speed: " + Math.round(speed) // make the text tell us the current speed
    turRot = "Turret Rotation: "+ Math.round(Tank.turret._rotation); // make the text tell us the current turret rotation
    tankRot = "Tank Rotation: " + Math.round(Tank._rotation); // make the text tell us the current tank rotation
    hP = "Health Points: " + Math.round(healthPoints) // make the text tell us the current HP
    scoreTxt = "Score : " + score // make the text tell us the current score
    //----------------------------------------------------------
    
    //----------------\
    // Define Angle   |
    //----------------/
    
    var __x = _xmouse - Tank._x; 
    var __y = _ymouse - Tank._y;
    var angle = Math.atan2(__y, __x) * 180 / Math.PI; //make a variable to difine angle so it can be used to rotate the turret
    //----------------------------------------------------------
 
    mouseCursor._x = _xmouse; //make the crosshair follow the mouse
    mouseCursor._y = _ymouse;
    
    
    if(Tank._x > boundR){ //if tank xPos is more than the right boundry, tank xPos = boundL
        Tank._x = boundR;
        trace("At Right Boundry")
    }
    if(Tank._x < boundL){//if tank xPos is less than the left boundry, tank xPos = boundL
        Tank._x = boundL;
        trace("At Left Boundry")
    }
    if(Tank._y < boundT){ //if tank xPos is less than the left boundry, tank xPos = boundL
        Tank._y = boundT;
        trace ("At Top  Boundry")
    }
    if(Tank._y > boundB){
        Tank._y = boundB;
        trace("At Bottom Boundry")
}
    
    
    
    //-------------------------\
    //Character movement code  |
    //-------------------------/
        if (Key.isDown(Key.UP))// if the up key has been pressed increase speed by acceleration until it is equal to maxSpeed
    {
        trace("Up key is pressed");
        if (speed <= maxSpeed){
            speed += accel;
        }
    }else //else times the speed by decel
    {
        speed *= decel;
    }
    if(Key.isDown(Key.DOWN)){ //if the down key has been pressed decrease speed by acceleration
        if(Math.abs(speed) <= maxSpeed){ // Math.abs so the speed can go into negative
            speed -= accel;
        }
    }
    else{ //else times the speed by decel
        speed *= decel;
    }
    if (Key.isDown(Key.RIGHT))// if the right key is pressed,rotate the tank right.
    {
        trace("Right Rotation");
        this._rotation += 2;
    }
    if (Key.isDown(Key.LEFT))// if the left key is pressed,rotate the tank left.
    {
    
        trace("Left Rotation");
        this._rotation -= 2;
    }
    
    //----------------------------------------------------------    
    //---------------\
    // Trigonometry  |
    //---------------/
    this._y += Math.sin(Tank._rotation / 180 * Math.PI) * speed;// allows the tank to move forward in the direction it is facing
    this._x += Math.cos(Tank._rotation / 180 * Math.PI) * speed;
    //----------------------------------------------------------
 
    //------------------\
    //Turret Rotation   |
    //------------------/
    Tank.turret._rotation = angle - Tank._rotation; // makes the turret follow the mouse.
    
    //----------------------------------------------------------
    //--------------------\
    // Bullets & reloading|
    //--------------------/
    if (ammo <= 0){ // if ammo is less than or equal to 0, run the "reload" function with the number 100
         reload(100); // givees it a reload time so you can't spam shoot.
    }
    if(isMouseDown == true){ //if mouse is down,ammo >= 1 and canFire = true, run the "shoot" function,decrease the ammo by 1 and set canFire to false.
        if (ammo >= 1){// this will place a delay between each fire to make it feel more realisitc
            if (canFire == true){
                shoot()
                ammo -=1
                canFire = false
        }
    }
}
    //------------------------------------------------------------------
    //----------------\
    // Function calls |
    //----------------/
    rotateBullets()
    fireDelay(40)
    spawnDelay(60)
    moveEnemy()
    deathBox()
    //------------------------------------------------------------------
        
 
 
};  // onEnterFrame end
 
function deathBox(){ // function to kill bullets when it collides with the black boxes around the map.
    for(i = 1; i <= numBullets; i++){
        if(bulletList[i].hitTest(box1)){
        bulletList[i].removeMovieClip();
        }
    if(bulletList[i].hitTest(box2)){
      
     bulletList[i].removeMovieClip();
       }
    if(bulletList[i].hitTest(box3)){
      bulletList[i].removeMovieClip();
       }
       if(bulletList[i].hitTest(box4)){
     bulletList[i].removeMovieClip();
     }
    }
}
function spawnEnemy() {
    numEnemies++; //increase the numEnemies variable by 1 everytime an enemy is spawned.
    trace("Number of Enemies: " + numEnemies); //tells us how many enemys there are.
    enemyList[numEnemies] = this.attachMovie("Enemy", "EnemyName" + numEnemies, this.getNextHighestDepth(), { _x:-50 , _y:100}); // spawn enemies at the x cord of -50 so its slightly off the screen. 
}
function moveEnemy(){
    if (numEnemies > 0){ //if there are moire than one enemy on the screen.
    for(num = 1; num <= numEnemies; num++) {
    doFollow(enemyList[num],Tank,1) //make the enemys walk towards to tank
    if(Tank.hitTest(enemyList[num])){ //if the enemys hit the tank,decrease health by 0.03 every frame
       healthPoints-=0.03
       }
        for(i = 1; i <= numBullets; i++) {
        if(enemyList[num].hitTest(bulletList[i])){ //if bullet hits an enemy remove the bullet
        enemyList[num].removeMovieClip();
        enemyList.splice(num,1);
        numEnemies--;
        bulletList[i].removeMovieClip();
        score+=10//increase score when an enemy is killed
        }
        }
    }
}
}
function shoot() {
    numBullets++;//increase the numBullets variable by 1 everytime a bullet is spawned.
    bulletList[numBullets] = this.attachMovie("Bullet", "bulletName" + numBullets, this.getNextHighestDepth(), { _x:Tank._x , _y:Tank._y}); 
    ammo--; //decrease ammo by one
    bulletList[numBullets]._rotation = Tank.turret._rotation + Tank._rotation //make the bullet face the direction the turret it rotated to
    fire.start();//play the souund "fire" when you shoot.
}
 
function rotateBullets(){
    for(num = 1; num <= numBullets; num++) {
        bulletList[num]._y += Math.sin(bulletList[num]._rotation / 180 * Math.PI) * bulletSpeed; //makes the bullets travel towards the direction it is facing.
        bulletList[num]._x += Math.cos(bulletList[num]._rotation / 180 * Math.PI) * bulletSpeed;
    }
}
function reload (time:Number){ //1 second = 24,5 seconds = 120.
    if (reloadTime < time){//if reload is less than time, increase roloadTime every frame and set canFire to false
        reloadTime ++
        canFire = false
    }
    if (reloadTime >= time){//if reload is more than or eqial to time, set ammo to 10,set relaodTime to 0 and canFire to true.
        ammo = 10
        reloadTime = 0
        canFire = true
    }
}
function doFollow(follower:MovieClip, target:MovieClip, enemySpeed:Number)
{
    var originalSpeed:Number = enemySpeed
 
 
    var distanceX:Number = target._x - follower._x;//calculate distance between follower and target
    var distanceY:Number = target._y - follower._y;
 
    
    distanceTotal = Math.sqrt(distanceX * distanceX + distanceY * distanceY);//get total distance as one number
    
    if (target.hitTest(follower)){
        enemySpeed = 0;
    }else{
        enemySpeed = originalSpeed;
    }
 
 
        
        var moveDistanceX:Number = turnRate * distanceX / distanceTotal;//calculate how much to move
        var moveDistanceY:Number = turnRate * distanceY / distanceTotal;
 
        
        moveX += moveDistanceX;//increase current speed
        moveY += moveDistanceY;
 
        
        var totalmove = Math.sqrt(moveX * moveX + moveY * moveY);//get total move distance
 
        
        moveX = enemySpeed * moveX / totalmove;//apply easing
        moveY = enemySpeed * moveY / totalmove;
 
        
        follower._x += moveX;//move follower
        follower._y += moveY;
 
        
        follower._rotation = 180 * Math.atan2(moveY, moveX) / Math.PI;//rotate follower toward target
 
 
}
 
function fireDelay(i:Number){
    if (canFire == false){//the function for the fireDelay with chnagable delay times.
    if (fireTime < i){
     fireTime ++
 }
    if (fireTime >= i){//if fireTime is more than or equal to i then fireTime will be reset and canFire will be set to true
        fireTime = 0
        canFire = true
    }
}
}
function spawnDelay (i:Number){//a fumction to prevent a flood of zombies spawning at once, Changable times to increase or descrease the delay.
    if (canSpawn == false){
        if (spDelay < i){
            spDelay++
    }
}
        if (spDelay>= i){//if spDelay is more than or equal to i then spDelay will be reset and ccanSpawn will be set to true
            spDelay = 0
            canSpawn = true
        }
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  • Cuiznxcn icon
    05/18/26 04:34:25 AM UTC
    text |

    0 B

    |

    0 👍

    /

    0 👎

    Best t33n active cpx link daily updates!
     Copy and paste the link in a new browser tab and then hit enter!
     https://crazyporn.xxx/members/157354/?asgtbndr=1&play=true&spon=adworld&zone=400