public void UpdateGentlemanPhysics(GameTime gameTime, TheGentleman sprite) { float frameTime = (float)gameTime.TotalGameTime.TotalSeconds; float downVel = gravity * (frameTime - jumpTime); if (downVel >= 2.0f) // terminal velocity downVel = 0.5f; sprite.velocity.setY(sprite.velocity.getY() + downVel); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { levelXMLs = Directory.GetFiles(Content.RootDirectory + "\\Levels\\", "*.xml"); // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); //Loading the games menu buttons for menu screen startMenu = new StartScreen(this); pauseMenu = new PauseScreen(this); aboutScreen = new AboutScreen(this); instructScreen = new InstructionScreen(this); creditScreen = new CreditScreen(this); chooseLevelMenu = new LevelSwitcher(this, 0, (uint)levelXMLs.Length); chooseLevelMenu.setUnlockedLevels(unlockedLevels); yourdead = new DeathScreen(this); winScreen = new WinScreen(this); //to help us understand how the bounding boxes are working and how the vectors are being affected on mostly just the Gentleman if (DRAW_BOUNDING_BOXES) { BOUNDING_BOX = new Texture2D(GraphicsDevice, 1, 1); BOUNDING_BOX.SetData(new[] { Color.White }); } if (DRAW_MOVEMENT_VECTORS) MOVEMENT_VECTOR = Content.Load<Texture2D>("arrow"); DEFAULT_SHADER = Content.Load<Effect>("Shaders\\DefaultShader.mgfx"); // Gentleman theGentleman = new TheGentleman(this); theGentleman.collisionCallback += new CollisionEventHandler(collisionEvents); // Heads up display (HUD) hud = new HUD(this); // Load level loader = new LevelLoader(this, levelXMLs[currentLevel - 1], hud); loader.level.stages[loader.level.stageWithKey].key.collisionCallback += new CollisionEventHandler(collisionEvents); // collision callback for key theGentleman.spritePos = new Vector2(loader.level.stages[stageIndex].startX, loader.level.stages[stageIndex].startY); foreach (BasicSprite s in loader.level.stages[stageIndex].fadeIns) s.opacity = 0.0f; input = new BasicInput(this, theGentleman); testSound = new Sound(this, "SoundFX\\Music\\Op9No2Session"); testSound.play(true); //landedOnGround = new Sound(this, "SoundFX\\campfire-1"); //landedOnGround.play(true); landedOnGround = new Sound(this, "SoundFX\\TheGentleman\\LandedOnFloor"); landedOnGround.pitch = 1.0f; spriteBatch = new SpriteBatch(GraphicsDevice); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); if (DRAW_BOUNDING_BOXES) { BOUNDING_BOX = new Texture2D(GraphicsDevice, 1, 1); BOUNDING_BOX.SetData(new[] { Color.White }); } if (DRAW_MOVEMENT_VECTORS) MOVEMENT_VECTOR = Content.Load<Texture2D>("arrow"); // Gentleman theGentleman = new TheGentleman(this); theGentleman.addTo(characterSprites); theGentleman.spritePos = new Vector2(370, 790); // Heads up display (HUD) hud = new HUD(this, GraphicsDevice); // static sprites - test code. To be replaced by a level loader (XML maybe) background = new BasicBackground(this, "padded_background"); BasicSprite leftWall = new BasicSprite(this, "padded_wall_left", true); leftWall.spritePos = new Vector2(0, 0); leftWall.spriteSize = new Point(30, GraphicsDevice.Viewport.Height); BasicSprite rightWall = new BasicSprite(this, "padded_wall_right", true); rightWall.spritePos = new Vector2(GraphicsDevice.Viewport.Width - 30, 0); rightWall.spriteSize = new Point(30, GraphicsDevice.Viewport.Height); BasicSprite door = new BasicSprite(this, "closed_door_left_metal", false); door.spritePos = new Vector2(GraphicsDevice.Viewport.Width - 35, GraphicsDevice.Viewport.Height - 140); door.spriteSize = new Point(25, 120); BasicSprite floor = new BasicSprite(this, "padded_floor", true); floor.spritePos = new Vector2(0, GraphicsDevice.Viewport.Height - 30); floor.spriteSize = new Point(GraphicsDevice.Viewport.Width, 30); Key key = new Key(this, hud); // key requires a HUD to go to key.spritePos = new Vector2(30, GraphicsDevice.Viewport.Height - 80); key.eventCallback += new GameEventHandler(testEvents); HatHanger hanger = new HatHanger(this); hanger.spritePos = new Vector2(550, GraphicsDevice.Viewport.Height - 120); BasicSprite bed = new BasicSprite(this, "bed", false); bed.spritePos = new Vector2(350, GraphicsDevice.Viewport.Height - 60); bed.spriteSize = new Point(70, 55); floor.addTo(staticSprites); rightWall.addTo(staticSprites); leftWall.addTo(staticSprites); key.addTo(staticSprites); hanger.addTo(staticSprites); bed.addTo(staticSprites); door.addTo(staticSprites); /* for now, the input is created here, however later we will want to create it earlier in order to provide input before everything is loaded */ input = new BasicInput(this, theGentleman); //testSound = new Sound(this, "SoundFX/Music/Op9No2Session"); //testSound.play(true); // TODO: use this.Content to load your game content here // ^ this is now being done in our Basic classes }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); if (DRAW_BOUNDING_BOXES) { BOUNDING_BOX = new Texture2D(GraphicsDevice, 1, 1); BOUNDING_BOX.SetData(new[] { Color.White }); } if (DRAW_MOVEMENT_VECTORS) { MOVEMENT_VECTOR = Content.Load <Texture2D>("arrow"); } // Gentleman theGentleman = new TheGentleman(this); theGentleman.addTo(characterSprites); theGentleman.spritePos = new Vector2(370, 790); // Heads up display (HUD) hud = new HUD(this, GraphicsDevice); // static sprites - test code. To be replaced by a level loader (XML maybe) background = new BasicBackground(this, "padded_background"); BasicSprite leftWall = new BasicSprite(this, "padded_wall_left", true); leftWall.spritePos = new Vector2(0, 0); leftWall.spriteSize = new Point(30, GraphicsDevice.Viewport.Height); BasicSprite rightWall = new BasicSprite(this, "padded_wall_right", true); rightWall.spritePos = new Vector2(GraphicsDevice.Viewport.Width - 30, 0); rightWall.spriteSize = new Point(30, GraphicsDevice.Viewport.Height); BasicSprite door = new BasicSprite(this, "closed_door_left_metal", false); door.spritePos = new Vector2(GraphicsDevice.Viewport.Width - 35, GraphicsDevice.Viewport.Height - 140); door.spriteSize = new Point(25, 120); BasicSprite floor = new BasicSprite(this, "padded_floor", true); floor.spritePos = new Vector2(0, GraphicsDevice.Viewport.Height - 30); floor.spriteSize = new Point(GraphicsDevice.Viewport.Width, 30); Key key = new Key(this, hud); // key requires a HUD to go to key.spritePos = new Vector2(30, GraphicsDevice.Viewport.Height - 80); key.eventCallback += new GameEventHandler(testEvents); HatHanger hanger = new HatHanger(this); hanger.spritePos = new Vector2(550, GraphicsDevice.Viewport.Height - 120); BasicSprite bed = new BasicSprite(this, "bed", false); bed.spritePos = new Vector2(350, GraphicsDevice.Viewport.Height - 60); bed.spriteSize = new Point(70, 55); floor.addTo(staticSprites); rightWall.addTo(staticSprites); leftWall.addTo(staticSprites); key.addTo(staticSprites); hanger.addTo(staticSprites); bed.addTo(staticSprites); door.addTo(staticSprites); /* for now, the input is created here, however later we will want * to create it earlier in order to provide input before everything is loaded */ input = new BasicInput(this, theGentleman); //testSound = new Sound(this, "SoundFX/Music/Op9No2Session"); //testSound.play(true); // TODO: use this.Content to load your game content here // ^ this is now being done in our Basic classes }