示例#1
0
        public override void UpdateOverride(GameTime gameTime, GameObject g)
        {
            base.UpdateOverride(gameTime, g);
            double ms = gameTime.ElapsedGameTime.TotalMilliseconds;

            if (Vper.HasValue)
            {
                Vper += GameSpeedManager.ApplySpeed(Aper, ms);
            }
            else
            {
                Vdeg += GameSpeedManager.ApplySpeed(Adeg, ms);
            }

            var    currPos = new Vector2((float)g.X, (float)g.Y);
            var    oriPos  = new Vector2((float)g.Ox, (float)g.Oy);
            double r       = Vector2.Distance(currPos, oriPos);

            if (r == 0)
            {
                return;
            }

            var rot = Vper.HasValue ? GameSpeedManager.ApplySpeed(Vper.Value, ms) / r : GameSpeedManager.ApplySpeed(Vdeg, ms);

            var vec1 = Vector2.Subtract(currPos, oriPos);
            var vec2 = new Vector2((float)(vec1.X * Math.Cos(rot) - vec1.Y * Math.Sin(rot)), (float)(vec1.X * Math.Sin(rot) + vec1.Y * Math.Cos(rot)));
            var vec3 = Vector2.Add(vec2, oriPos);

            g.MoveX += vec3.X - g.X;
            g.MoveY += vec3.Y - g.Y;
        }
示例#2
0
 public void SetComponents(GlobalVars gv, GameSpeedManager gm, Vector3 startPosition, GameObject magnet)
 {
     gameVars           = gv;
     gsm                = gm;
     transform.position = new Vector3(startPosition.x, startPosition.y, startPosition.z);
     target             = magnet;
 }
示例#3
0
 void Start()
 {
     //gameVars.StepsChanged += RandomizeBehaviour;
     if (verticalOnly)
     {
         randomMove = VerticalMove;
     }
     else
     {
         randomMove = Move;
     }
     if (myDirection.x < 0.0f && allowXInversion)
     {
         transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z);
     }
     if (pursuitSPZ)
     {
         myCollider = gameObject.GetComponent <Collider2D>();
         if (myCollider == null)
         {
             Debug.Log("Warning no collider set for " + gameObject.name);
         }
         GameObject gameManager = GameObject.FindGameObjectWithTag(GlobalTags.GameManager);
         gameVars = gameManager.GetComponent <GlobalVars>();
         gameVars.StepsChanged += this.OnStepsChanged;
         gsm = gameManager.GetComponent <GameSpeedManager>();
         if (boostPosition == null)
         {
             Debug.Log("Warning boostPosition not set for " + gameObject.name);
         }
     }
 }
示例#4
0
 public void SetComponents(GlobalVars gv, GameSpeedManager gm, Vector3 startPosition, float direction)
 {
     gameVars           = gv;
     gsm                = gm;
     transform.position = new Vector3(startPosition.x, startPosition.y, startPosition.z);
     yDirection         = direction;
 }
        public override void UpdateOverride(GameTime gameTime, GameObject gameObject)
        {
            base.UpdateOverride(gameTime, gameObject);
            double ms = gameTime.ElapsedGameTime.TotalMilliseconds;

            gameObject.MoveX += GameSpeedManager.ApplySpeed(Vx, ms);
            gameObject.MoveY += GameSpeedManager.ApplySpeed(Vy, ms);
        }
        public override void UpdateOverride(GameTime gameTime, GameObject gameObject)
        {
            var isShooting = Capacity == 0 || remainingBullets > 0;
            var vdeg       = isShooting ? VdegShooting : VdegReloading;

            Alpha += GameSpeedManager.ApplySpeed(vdeg, gameTime.ElapsedGameTime.TotalMilliseconds);

            base.UpdateOverride(gameTime, gameObject);
        }
示例#7
0
    void Awake()
    {
        GameObject gameManager = GameObject.FindGameObjectWithTag(GlobalTags.GameManager);

        gameVars     = gameManager.GetComponent <GlobalVars>();
        gameStates   = gameManager.GetComponent <GameStatesController>();
        speedManager = gameManager.GetComponent <GameSpeedManager>();
        //macrosMngr = GameObject.FindObjectOfType<MacrophageManager>();
        RegisterToGameStateChangeEvents();
    }
        public override void UpdateOverride(GameTime gameTime, GameObject g)
        {
            base.UpdateOverride(gameTime, g);
            double ms       = gameTime.ElapsedGameTime.TotalMilliseconds;
            double moveStep = GameSpeedManager.ApplySpeed(Vr, ms);

            var dir = DirectionOverride ?? g.GeneralDirection;

            g.MoveX += Math.Cos(dir) * moveStep;
            g.MoveY += Math.Sin(dir) * moveStep;
        }
示例#9
0
    void Awake()
    {
        GameObject gameManager = GameObject.FindGameObjectWithTag(GlobalTags.GameManager);

        gameStates   = gameManager.GetComponent <GameStatesController> ();
        speedManager = gameManager.GetComponent <GameSpeedManager>();
        //gameVars = gameManager.GetComponent<GlobalVars>();
        startPosition = transform.position;
        RegisterToGameStateChangeEvents();
        //handler("test");
    }
示例#10
0
    // Use this for initialization
    void Start()
    {
        GameObject gameManager = GameObject.FindGameObjectWithTag(GlobalTags.GameManager);

        gameVars     = gameManager.GetComponent <GlobalVars>();
        speedManager = gameManager.GetComponent <GameSpeedManager>();
        eotl         = gameVars.endOfTheLine;
        baseScale    = transform.localScale;
        CurrentState = macrophageState.Available;

        //myManager = GameObject.FindObjectOfType<MacrophageManager> ();
    }
示例#11
0
        private void DrawBackground(GameTime gameTime, Texture2D bgTexture, double v, int textureWidth, ref double x, int y = 0)
        {
            x += (double)GameSpeedManager.ApplySpeed(v, gameTime.ElapsedGameTime.TotalMilliseconds);
            if (x < -textureWidth)
            {
                x = 0;
            }
            var color = Player.IsPaybackActive ? Color.FromNonPremultiplied(255, 50, 255, 255)
                                : Player.IsManaActive ? Color.FromNonPremultiplied(50, 50, 255, 255) : Color.White;

            spriteBatch.Draw(bgTexture, new Rectangle((int)x, y, textureWidth, 768), color);
            spriteBatch.Draw(bgTexture, new Rectangle((int)(x < 0 ? x + textureWidth : x - textureWidth), y, textureWidth, 768), color);
        }
示例#12
0
    void Awake()
    {
        GameObject gameManager = GameObject.FindGameObjectWithTag(GlobalTags.GameManager);

        gameVars     = gameManager.GetComponent <GlobalVars>();
        gameStates   = gameManager.GetComponent <GameStatesController>();
        speedManager = gameManager.GetComponent <GameSpeedManager>();
        RegisterToGameStateChangeEvents();
        mouthCollision = EatFood;
        SetCurrentCollisionState(playerCollisionStates.Vulnerable);
        lunch.Add(tail);
        particleSys.SetActive(false);
        SetNewControllerMode(currentControllerMode);
    }
示例#13
0
 public override void Collide(Bullet b)
 {
     if (!b.IsFriendly)
     {
         if (damageCooldown.IsElapsed && !debug_IsInvincible)
         {
             Health.Hit();
             damageCooldown.Reset(3000);
             GameSpeedManager.ReduceDifficulty();
             increaseDifficultyCooldown.Reset(increaseDifficultyDelay);
             Tint = Color.FromNonPremultiplied(255, 255, 255, 125);
         }
     }
 }
示例#14
0
    // Use this for initialization
    void Start()
    {
        myHashCode    = gameObject.GetHashCode();
        startPosition = transform.position;
        GameObject gameManager = GameObject.FindGameObjectWithTag(GlobalTags.GameManager);

        gsm        = gameManager.GetComponent <GameSpeedManager>();
        gameVars   = gameManager.GetComponent <GlobalVars>();
        eotl       = gameVars.endOfTheLine;
        myAnim     = gameObject.GetComponent <Animator> ();
        myRB2      = gameObject.GetComponent <Rigidbody2D> ();
        baseScale  = transform.localScale;
        gameStates = gameManager.GetComponent <GameStatesController>();
        RegisterToGameStateChangeEvents();
    }
示例#15
0
        private void UpdateMana(GameTime gameTime)           //Slow down time
        {
            if (IsManaActive)
            {
                Mana.Amount -= GameSpeedManager.ApplySpeed(manaDrainSpeed, gameTime.ElapsedMs());
            }
            else
            {
                Mana.Amount = MathHelper.Clamp((float)(Mana.Amount + GameSpeedManager.ApplySpeed(manaRegainSpeed, gameTime.ElapsedMs())), 0, (float)Mana.OriginalAmount);
            }

            manaDrawer.Rate = Mana.Amount / (double)Mana.OriginalAmount;
            if (Mana.HasRunOut)
            {
                StopMana();
            }
        }
示例#16
0
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);

            damageCooldown.Update(gameTime.ElapsedGameTime.TotalMilliseconds);
            if (damageCooldown.IsElapsed)
            {
                Tint = Color.White;
            }

            increaseDifficultyCooldown.Update(gameTime.ElapsedGameTime.TotalMilliseconds);
            if (increaseDifficultyCooldown.IsElapsed)
            {
                GameSpeedManager.IncreaseDifficulty();
                increaseDifficultyCooldown.Reset(increaseDifficultyDelay);
            }

            UpdateMana(gameTime);
            UpdatePayback(gameTime);
        }
示例#17
0
        private void UpdatePayback(GameTime gameTime)          //"Rain of bullets"
        {
            if (IsPaybackActive)
            {
                Payback.Amount -= GameSpeedManager.ApplySpeed(paybackDrainSpeed, gameTime.ElapsedMs());
            }
            else
            {
                Payback.Amount = MathHelper.Clamp((float)(Payback.Amount + GameSpeedManager.ApplySpeed(paybackRegainSpeed, gameTime.ElapsedMs())), 0, (float)Payback.OriginalAmount);
                if (Payback.Amount == Payback.OriginalAmount)
                {
                    paybackDrawer.Color = Color.DarkGreen;
                }
            }

            paybackDrawer.Rate = Payback.Amount / (double)Payback.OriginalAmount;
            if (Payback.HasRunOut)
            {
                IsPaybackActive = false;
            }
        }
        public override void UpdateOverride(GameTime gameTime, GameObject gameObject)
        {
            base.UpdateOverride(gameTime, gameObject);
            var keys   = Keyboard.GetState().GetPressedKeys();
            var player = ((Player)gameObject);

            gunCooldown.Update(gameTime.ElapsedGameTime.TotalMilliseconds);
            if (keys.Contains(Keys.C) || keys.Contains(Keys.Space) || player.IsPaybackActive)
            {
                if (gunCooldown.IsElapsed)
                {
                    ((Player)gameObject).Shoot();
                    gunCooldown.Reset(player.IsPaybackActive ? 10 : 120);
                }
            }
            if (keys.Contains(Keys.Up))
            {
                gameObject.MoveY -= GameSpeedManager.ApplySpeed(v, gameTime.ElapsedGameTime.TotalMilliseconds);
            }
            if (keys.Contains(Keys.Down))
            {
                gameObject.MoveY += GameSpeedManager.ApplySpeed(v, gameTime.ElapsedGameTime.TotalMilliseconds);
            }
            if (keys.Contains(Keys.Left))
            {
                gameObject.MoveX -= GameSpeedManager.ApplySpeed(v, gameTime.ElapsedGameTime.TotalMilliseconds);
            }
            if (keys.Contains(Keys.Right))
            {
                gameObject.MoveX += GameSpeedManager.ApplySpeed(v, gameTime.ElapsedGameTime.TotalMilliseconds);
            }
            if (keys.Contains(Keys.X))
            {
                if (lockMana)
                {
                    return;
                }
                if (player.IsManaActive)
                {
                    player.StopMana();
                }
                else
                {
                    player.StartMana();
                }

                lockMana = true;
            }
            else
            {
                lockMana = false;
            }
            if (keys.Contains(Keys.Y) || keys.Contains(Keys.Z))
            {
                player.ActivatePayback();
            }
            if (keys.Contains(Keys.P) || keys.Contains(Keys.B))
            {
                if (lockPause)
                {
                    return;
                }

                GameSpeedManager.TogglePause();

                lockPause = true;
            }
            else
            {
                lockPause = false;
            }
        }
	void OnDestroy () {
		_instance = null;
	}
	void Awake () {
		_instance = this;
	}
 // Use this for initialization
 void Start()
 {
     sm = GameObject.FindGameObjectWithTag(GlobalTags.GameManager).GetComponent <GameSpeedManager>();
     ps = GetComponent <ParticleSystem>();
 }