public void Update(float elapsed, GraphicsDeviceManager graphics, MarioCollision collision) { if (currentState == dead) { if (buffer < 1000) { buffer += elapsed; } else { buffer = 0; if (lives > 0) { Vector2 latestCheck = game.scene.FindLatestCheckpoint(); int life = lives; game.ResetCommand();//Why isn't the theme music playing? game.scene.mario.MarioVec = latestCheck; game.scene.mario.Lives = life; } else { game.scene.Mute(); sounds.PlayGameOver(); game.GameoverCommand(); } } } else { gravity = scene.Gravity; this.elapsed = elapsed; if (time > 1000) { invincible = false; } if (invincible == true) { time += elapsed; } marioVel += marioAccel * collision.CollisionTime / 5; marioVel = Vector2.Clamp(marioVel, new Vector2(-20, -40), new Vector2(20, 40)); marioVec += marioVel * collision.CollisionTime / 5; } actionStateFactor = currentState.Factor(); powerupStateFactor = powerupState.Factor(); currentSprite = (MarioSprite)MarioFactory.MakeProduct(powerupStateFactor + actionStateFactor); currentSprite.CollisionBox.Physics(new Vector2(marioVec.X, marioVec.Y - CollisionBox.Height), marioVel, marioAccel); currentSprite.Update(elapsed, direction); currentState.Update(graphics, elapsed); //if (!isGrounded && currentState != jump) //{ // this.ToFall(); //} Console.WriteLine(MarioVel); ////////////////////////////////////// CheckBorders(); }
public void Update(float elapsed, GraphicsDeviceManager graphics) { actionStateFactor = currentState.Factor(); powerupStateFactor = powerupState.Factor(); currentSprite = (MarioSprite)MarioFactory.MakeProduct(powerupStateFactor + actionStateFactor); currentSprite.CollisionBox.Physics(new Vector2(MarioVec.X, MarioVec.Y-CollisionBox.Height), Vector2.Zero, Vector2.Zero); currentSprite.Update(elapsed, direction); currentState.Update(graphics); }