public void UpdateGamePlay(GameTime gameTime) { mDistantTraveled = (int)mHero.PositionX / 20; if (mHero.HasLost()) { mCurrentGameState = GameStates.Dead; AudioSupport.PlayACue("Break"); InitializeGameOverScreen(); return; } bool shootBubbleShot = (InputWrapper.Buttons.A == ButtonState.Pressed); mHero.Update(gameTime, InputWrapper.ThumbSticks.Left, shootBubbleShot); mEnvironment.Update(mHero); #region hero moving the camera window float kBuffer = mHero.Width * 5f; float kHalfCameraSize = Camera.Width * 0.5f; Vector2 delta = Vector2.Zero; Vector2 cameraLL = Camera.CameraWindowLowerLeftPosition; Vector2 cameraUR = Camera.CameraWindowUpperRightPosition; const float kChaseRate = 0.05f; if (mHero.PositionX > (cameraUR.X - kHalfCameraSize)) { delta.X = (mHero.PositionX + kHalfCameraSize - cameraUR.X) * kChaseRate; } Camera.MoveCameraBy(delta); #endregion }
public void SetToStuntState() { mTintColor = kStuntTint; mStateTimer = kStunCycle; mCurrentState = PatrolState.StuntState; AudioSupport.PlayACue("Stun"); }
private void CollisionUpdate() { Vector2 pixelCollisionPosition = Vector2.Zero; #region Collide the hero with the flower mHeroBoundCollision = mHero.PrimitivesTouches(mFlower); mHeroPixelCollision = mHeroBoundCollision; if (mHeroBoundCollision) { mHeroPixelCollision = mHero.PixelTouches(mFlower, out pixelCollisionPosition); if (mHeroPixelCollision) { AudioSupport.PlayACue("Bounce"); } } #endregion #region Collide the hero with planes int i = 0; while ((!mHeroPixelCollision) && (i < kNumPlanes)) { mHeroBoundCollision = mPlane[i].PrimitivesTouches(mHero); mHeroPixelCollision = mHeroBoundCollision; if (mHeroBoundCollision) { mHeroPixelCollision = mPlane[i].PixelTouches(mHero, out pixelCollisionPosition); if (mHeroPixelCollision) { AudioSupport.PlayACue("Wall"); } } i++; } #endregion }
bool mHeroBoundCollision; // If there is a image bound collision for the public GameState() { // Set up the flower ... mFlower = new TexturedPrimitive("Flower", new Vector2(50, 35), new Vector2(350, 350)); // Planes mPlane = new TexturedPrimitive[kNumPlanes]; mPlane[0] = new TexturedPrimitive("PatrolEnemy", new Vector2(20, -80), new Vector2(10, 20)); mPlane[1] = new TexturedPrimitive("PatrolEnemy", new Vector2(150, -100), new Vector2(10, 20)); mPlane[2] = new TexturedPrimitive("PatrolEnemy", new Vector2(150, 120), new Vector2(10, 20)); mPlane[3] = new TexturedPrimitive("PatrolEnemy", new Vector2(20, 170), new Vector2(10, 20)); mHeroBoundCollision = false; mHeroPixelCollision = false; mHero = new SpritePrimitive("SimpleSpriteSheet", new Vector2(10, 0), new Vector2(10, 10), 4, // Number of rows 2, // Number of columns 0); // Padding between images // Start Hero by walking left and AnotherHero by walking towards right mHero.SetSpriteAnimation(0, 0, 0, 3, 10); // Slowly // Begin background audio AudioSupport.PlayBackgroundAudio("Mind_Meld", 0.4f); }
public void StunHero() { if (mCurrentHeroState != HeroState.Unstunnable && mCurrentHeroState != HeroState.Stunned) { mCurrentHeroState = HeroState.Stunned; AudioSupport.PlayACue("Stun"); AdjustSize(-1); } }
public GameState() { mCurrentGameState = GameStates.StartScreen; AudioSupport.PlayBackgroundAudio("Mind_Meld", 0.5f); InitializeStartMenu(); }
public void Feed() { AdjustSize(1); AudioSupport.PlayACue("Chomp"); }
public void UpdatePlayingState(GameTime gameTime, Vector2 delta, bool shootBubbleShot) { base.Update(); // take advantage of the camera window bound check BoundObjectToCameraWindow(); // Player control mPosition += delta; // Sprite facing direction if (delta.X > 0) { SpriteCurrentRow = 1; } else if (delta.X < 0) { SpriteCurrentRow = 0; } // BubbleShot direction int bubbleShotDir = 1; if (SpriteCurrentRow == 0) { bubbleShotDir = -1; } mCollisionEffect.UpdateParticles(); float deltaTime = gameTime.ElapsedGameTime.Milliseconds; mTimeSinceLastShot += deltaTime / 1000; // Can the hero shoot a BubbleShot? if (mTimeSinceLastShot >= kTimeBetweenBubbleShot) { if (shootBubbleShot) { BubbleShot j = new BubbleShot(new Vector2(Position.X + kBubbleShotOffset * bubbleShotDir, Position.Y), bubbleShotDir); mBubbleShots.Add(j); mTimeSinceLastShot = 0; AudioSupport.PlayACue("Bubble"); } } // now update all the BubbleShots out there ... int count = mBubbleShots.Count; for (int i = count - 1; i >= 0; i--) { if (!mBubbleShots[i].IsOnScreen()) { // outside now! mBubbleShots.RemoveAt(i); } else { mBubbleShots[i].Update(); } } }