コード例 #1
0
        public void Update(GameTime gt)
        {
            if (!Timer.GetActive)
            {
                Timer.ActivateTimer();
            }

            if (Timer.GetActive)
            {
                Timer.TimerUpdate(gt);
            }

            if (Timer.TimeReached())
            {
                active = false;
            }

            if (spriteSheet)
            {
                EffectManager.spriteSheetUpdate(ref frame, ref elasped, totalTime, totalframes, gt);
            }

            if (EffectE == EffectManager.EffectEnums.Blood)
            {
                alphaVal -= 0.01f;
            }
        }
コード例 #2
0
ファイル: Enemy.cs プロジェクト: GameDotRun/DefendTheBase
        public void Update(Grid.gridFlags endPoint, GameTime gameTime)
        {
            time = (float)gameTime.ElapsedGameTime.TotalSeconds;

            //check for out of bounds, only really occurs when they are spawned from a destroyed vehicle as the vehicle is turning
            if (enemyVect.X >= 20)
            {
                enemyVect.X = 19;
            }
            if (enemyVect.Y >= 15)
            {
                enemyVect.Y = 14;
            }
            if (enemyVect.X < 0)
            {
                enemyVect.X = 0;
            }
            if (enemyVect.Y < 0)
            {
                enemyVect.Y = 0;
            }

            currentCoord = new Coordinates((int)enemyVect.X, (int)enemyVect.Y);

            if (enemyVect != null)
            {
                moving = PathMove(GameManager.grid.gridSquares, GameManager.HEIGHT, GameManager.WIDTH, ref enemyVect, ref ScreenPos, speed, time, Direction, EnemyType);
            }

            if (GameManager.ENDPOINT != null)
            {
                if (currentCoord.CoordEqual(GameManager.ENDPOINT))
                {
                    IsDestroyed             = true;
                    GameManager.BaseHealth -= damage;
                }
            }

            if (hitPoints <= 0)
            {
                IsDestroyed = true;
            }

            // Get screen pixel position from Grid Coordinates (enemyVect).
            if (moving)
            {
                ScreenPos = new Vector2((int)GameManager.grid.gridBorder.X + (enemyVect.X * GameManager.SQUARESIZE) + GameManager.SQUARESIZE / 2, (int)GameManager.grid.gridBorder.Y + (enemyVect.Y * GameManager.SQUARESIZE) + GameManager.SQUARESIZE / 2);
            }

            else
            {
                enemyVect.X = (float)Math.Round(enemyVect.X);
                enemyVect.Y = (float)Math.Round(enemyVect.Y);
            }


            if (EnemyType == "Tank" || EnemyType == "Jeep")
            {
                TurretDirection = TankTurret.Update(this);
            }

            Vector2 NextScreenPos = new Vector2((int)GameManager.grid.gridBorder.X + (nextCoord.x * GameManager.SQUARESIZE + 0.1f), (int)GameManager.grid.gridBorder.Y + (nextCoord.y * GameManager.SQUARESIZE));

            Direction = Movement;

            if (!towerInRange)
            {
                TurretDirection = Direction;
                //float nextTurretDirection = Direction.ToAngle();
                //// LERPING HERE
                //turretRotation = Extensions.CurveAngle(turretRotation, nextTurretDirection, 0.3f);
                //TurretDirection = turretRotation.ToVector();
            }

            if (usingSpriteSheet)
            {
                EffectManager.spriteSheetUpdate(ref spriteSheetNo, ref animElasped, targetElasped, sheetFrameTotal, gameTime);

                if (EnemyType == "Soldier")
                {
                    SourceRect = new Rectangle(0, spriteSheetNo * Art.Soldier.Height / (sheetFrameTotal + 1), Art.Soldier.Width, Art.Soldier.Height / (sheetFrameTotal + 1));
                }
                else if (EnemyType == "Helicopter")
                {
                    SourceRect = new Rectangle(spriteSheetNo * Art.Helicopter.Width / (sheetFrameTotal + 1), 0, Art.Helicopter.Width / (sheetFrameTotal + 1), Art.Helicopter.Height);
                }
            }
        }