コード例 #1
0
        public Player(int newPlayerNum)
        {
            //just initialziing the shiled here because;
            sheild_currentsprite = 0;
            sheild_totalsprite = 3;
            sheildSprite = GameState.content.Load<Texture2D>(@"Textures\Player\sheildBubble");

            //Base initialization
            line = new Line2D(new Vector2(150, 80), new Vector2(150, 180), Color.White);
            playerNum = newPlayerNum;
            myRect.Width = (int)posOffSet.X * 2;
            myRect.Height = (int)posOffSet.Y * 2;
            foundPickup = new Pickup(0, 'e', new Vector2(0, 0));
            energyBarBGPosition = new Rectangle[10];
            energyBarPosition = new Rectangle[10];

            //Speed and movement initialization
            speed = 1;
            baseAccel = 0.15f;
            maxSpeed = 2.0f;
            velocity = new Vector2(0, 0);
            speedChanged = false;

            onVictoryTile = false;

            //Invincibility initializations
            invTime = 0;
            isInvincible = false;
            blinkTimer = 0;
            isBlinking = false;
            blinkTimeLength = 20;

            //Sprites counts
            currentSprite = 0;
            totalSprites = 27;
            spritecolumn = 0;

            //Energy initializations
            baseMaxEnergy = 100;
            maxEnergy = 100;
            currentEnergy = maxEnergy;
            energyDrainSpeed = 16;
            energyRechargeSpeed = 0.5f;

            //Speed Zones
            speedModifier = 0;

            //Distance declarations
            minDistance = 65;
            strongDistance = 130;
            mediumDistance = 200;
            maxDistance = 320;

            data_deathsPerLevel = new int[16];
            for (int i = 0; i < 16; i++)
            {
                data_deathsPerLevel[i] = 0;
            }

            //Player Specific positions and textures.
            if (newPlayerNum == 0)
            {
                myPos = line.StartPosition;
                droneTexture = GameState.content.Load<Texture2D>(@"Textures\Player\spider_blue_trimmed_shrinked");
                energyTexture = GameState.content.Load<Texture2D>(@"Textures\Player\energyBar_sprite_small");
                energyBGTexture = GameState.content.Load<Texture2D>(@"Textures\Player\battery");
                energyBarPosition[0] = new Rectangle(44, GameState.SCREEN_HEIGHT - 120, 12, 80);
                energyBarBGPosition[0] = new Rectangle(40, GameState.SCREEN_HEIGHT - 130, 20, 100);
                for (int i = 0; i < 10; i++)
                {
                    energyBarPosition[i] = energyBarPosition[0];
                    energyBarBGPosition[i] = energyBarBGPosition[0];
                    energyBarPosition[i].X += 26 * i;
                    energyBarBGPosition[i].X += 26 * i;
                }
            }
            else
            {
                myPos = line.EndPosition;
                droneTexture = GameState.content.Load<Texture2D>(@"Textures\Player\spider_orange_trimmed_shrinked");
                energyTexture = GameState.content.Load<Texture2D>(@"Textures\Player\energybar_sprite_small2");
                energyBGTexture = GameState.content.Load<Texture2D>(@"Textures\Player\battery2");
                energyBarPosition[0] = new Rectangle(GameState.SCREEN_WIDTH - 52, GameState.SCREEN_HEIGHT - 120, 12, 80);
                energyBarBGPosition[0] = new Rectangle(GameState.SCREEN_WIDTH - 56, GameState.SCREEN_HEIGHT - 130, 20, 100);
                for (int i = 0; i < 10; i++)
                {
                    energyBarPosition[i] = energyBarPosition[0];
                    energyBarBGPosition[i] = energyBarBGPosition[0];
                    energyBarPosition[i].X -= 26 * i;
                    energyBarBGPosition[i].X -= 26 * i;
                }
            }

            Set_Rectangle();

            //Fun statistics initializations
            data_distanceTraveled = 0.0f;
            data_timeSpentInFront = 0.0f;
            data_timeSpentIdle = 0.0f;
            data_timeWalkingIntoWalls = 0.0f;
            data_energyDrained = 0.0f;
            data_pickupsGrabbed = 0;
            data_crushDeaths = 0;
            data_batteryDeaths = 0;
            data_damageDeaths = 0;

            //These are the level up bonuses
            playerCash = 0;
            cashForPartner = 0;
            playerCashPickedUp = 0;
            maxEnergyBonus = 0;
            maxEnergyLevel = 0;
            energyDrainBonus = 0;
            energyDrainLevel = 0;
            energyRechargeBonus = 0;
            energyRechargeLevel = 0;
            damageLevel = 0;
            accelBonus = 0;
            accelLevel = 0;
            speedBonus = 0;
            speedLevel = 0;
            invTimeLevel = 0;
            invTimeBonus = 0;
            healthPickupLevel = 0;
            healthPickupBonus = 0;
        }
コード例 #2
0
 private void Check_Pickups()
 {
     if (GameState.objectManager.pickupManager.Check_Collisions(myRect))
     {
         foundPickup = GameState.objectManager.pickupManager.Collided_Pickup(myRect);
         if(foundPickup.effect == 'm')
         {
             GameState.soundBank.PlayCue("Coin");
             GameState.objectManager.AddExplosion(new Explosion("coin", new Vector2(myPos.X , myPos.Y)));
             playerCashPickedUp += (int)((double)foundPickup.amount * 0.6);
             data_totalCashEarned += (int)((double)foundPickup.amount * 0.6);
             cashForPartner += (int)((double)foundPickup.amount * 0.4);
             data_pickupsGrabbedTotal++;
         }
         else if(foundPickup.effect == 'e')
         {
             GameState.soundBank.PlayCue("Heal");
             GameState.objectManager.AddExplosion(new Explosion("health", new Vector2(myPos.X, myPos.Y)));
             maxEnergy += 20 + healthPickupBonus;
             currentEnergy += (float)(20 + healthPickupBonus) * 0.5f;
             if (maxEnergy > baseMaxEnergy + maxEnergyBonus)
                 maxEnergy = baseMaxEnergy + maxEnergyBonus;
             data_pickupsGrabbedTotal++;
             if(currentEnergy > maxEnergy)
             {
                 currentEnergy = maxEnergy;
             }
         }
         else if(foundPickup.effect == 'i')
         {
             GameState.soundBank.PlayCue("Invincibility");
             GameState.objectManager.AddExplosion(new Explosion("invuln", new Vector2(myPos.X, myPos.Y)));
             isInvincible = true;
             invFromDamage = false;
             blinkTimer = blinkTimeLength;
             invTime = foundPickup.amount + invTimeBonus;
             data_pickupsGrabbedTotal++;
         }
         else if(foundPickup.effect == 'f')
         {
             GameState.soundBank.PlayCue("TimeStop");
             GameState.objectManager.AddExplosion(new Explosion("freeze", new Vector2(myPos.X, myPos.Y)));
             if(GameState.freezeTime <= 0)
                 GameState.prevGameSpeed = GameState.GameSpeed;
             GameState.freezeTime = foundPickup.amount;
             GameState.GameSpeed = 0;
             data_pickupsGrabbedTotal++;
         }
     }
 }