Build a Space Shooter with MonoGame – 6

Now that we’re done with the classes for our game object’s, let’s create one more class for our menu buttons. Add a new class named MenuButton.cs. In that class, add the usual two using statements. This class does not need to extend anything. Next, add the following fields and properties: private Game1 game; private Vector2 position; private Texture2D texDefault; private Texture2D texOnDown; private Texture2D texOnHover; private Texture2D currentTexture; public Rectangle boundingBox; public bool isActive { get; set; } public bool lastIsDown = false; private bool _isDown = false; private bool _isHovered = false; Then we will add two methods for setting whether the button is pushed down or not, and whether the mouse is hovering over the button or not....

May 20, 2019 · 9 min · Jared

Build a Space Shooter with MonoGame – 3

Now, we know every game worth it’s money has a game state system of some sort. I mean this as in, most games have a main menu, a play state, and a game over state. Something like that. We will have to build this sort of system. For this, we will be utilizing the enum type in C#. Just after where we initialize the field arialHeading, add the following to define an enum named GameState:...

May 20, 2019 · 5 min · Jared

Build a Space Shooter with MonoGame – 2

If Game1.cs is not already open in your code window, you can navigate to it via the Solution Explorer. Once Game1.cs is displayed, add the following to the using statements at the top: using Microsoft.Xna.Framework.Audio; using System.Collections.Generic; using System; We will need the audio part of MonoGame in order to load and play our sounds. We also specify that we want to use “System.Collections.Generic”. We will need this to create lists to hold objects in our game....

May 20, 2019 · 4 min · Jared

Build a Space Shooter with MonoGame – 5

The last two classes we’ll add will be devoted to the scrolling background system. Create a new class, and name it ScrollingBackground.cs. This class does not __need to inherit anything. It will still need the two usual using statements. We will want to add two fields containing background textures and layers: private List<Texture2D> textures = new List<Texture2D>(); private List<ScrollingBackgroundLayer> layers = new List<ScrollingBackgroundLayer>(); The step is to add the constructor. We will be creating a vertical “stack” of three backgrounds, but we’ll be creating two more layers of backgrounds on top....

May 20, 2019 · 4 min · Jared