Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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;
    }
like image 401
airplaneman19 Avatar asked Dec 04 '22 23:12

airplaneman19


2 Answers

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();
  }
}
like image 126
pek Avatar answered Dec 20 '22 08:12

pek


you can also use GUI and manually load a windows cursor to replace the default cursor

like image 42
user1109013 Avatar answered Dec 20 '22 08:12

user1109013