Search code examples
c#.netxnamouse-cursor

Adding a custom cursor in XNA/C#?


I am currently developing a game in XNA. I would like to add a cursor (not the standard Windows one)to the game. I have already added the sprite to my contents folder. I have a method for finding the position of the mouse, but I don't know how I should go about displaying the cursor in the window.

Here is the method I am using to find the position of the mouse (I instantiated a "MouseState" class in the beginning of the Game1 class):

public int[] getCursorPos()
    {
        cursorX = mouseState.X;
        cursorY = mouseState.Y;

        int[] mousePos = new int[] {cursorX, cursorY};
        return mousePos;
    }

Solution

  • Load a Texture2D for the cursor image and simply draw it.

    class Game1 : Game 
    {
      private SpriteBatch spriteBatch;
    
      private Texture2D cursorTex;
      private Vector2 cursorPos;
    
    
      protected override void LoadContent() 
      {
        spriteBatch = new SpriteBatch(GraphicsDevice);
        cursorTex = content.Load<Texture2D>("cursor");
      }
    
      protected override Update(GameTime gameTime() {
        cursorPos = new Vector2(mouseState.X, mouseState.Y);
      }
    
      protected override void Draw(GameTime gameTime)
      {
        spriteBatch.Begin();
        spriteBatch.Draw(cursorTex, cursorPos, Color.White);
        spriteBatch.End();
      }
    }