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; }
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); }
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; }
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); }
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(); } }
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; } }