Click here to Skip to main content
13,358,478 members (51,288 online)
Click here to Skip to main content
Add your own
alternative version


24 bookmarked
Posted 16 Jul 2007

Simple Input Interface for XNA

, 16 Jul 2007
Rate this:
Please Sign up or sign in to vote.
Makes event handlers available to game developers using Microsoft's XNA.


As input is an important part of every game, it should not be difficult to use. C# provides a great feature - event handlers - which have not been used in the XNA framework to handle input. This class, CInput, will enable event handlers for XNA.

Using the code

All you have to do to use this code is add the Input.cs file to your project, create an instance of CInput, and call its Update function in the game.

//Excerpts from Game.cs

namespace YourGame
    public class YourGame : Microsoft.Xna.Framework.Game
        //The variable holding a reference to the input system

        VisualIllusions.CInput Input;

        public YourGame()
            //Create the input device

            Input = new VisualIllusions.CInput();
            //Add any event handlers here or in the initialize function

            Input.OnMouseDown += new 
        //Update the game

        protected override void Update(GameTime gameTime)
            //Update the input


        //A function called by an event

        void Input_OnMouseDown(VisualIllusions.CInput.MouseButtons b)
            System.Diagnostics.Debug.Print("A mouse button was pressed: " + 

The class is quite simple to use, and you should be able to integrate it into your project easily by taking a look at the sample project.

Points of interest

I am currently working on GamePad support and a binding class to make it easy to dynamically bind actions to specific keys. This binding class will be serializable so that everyone can configure his/her own set of keys.


  • First release, and probably buggy. Let me know about any problems you notice!


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

United States United States
No Biography provided

You may also be interested in...

Comments and Discussions

GeneralAbout event base systems in games... Pin
Amadrias24-Jul-07 7:24
memberAmadrias24-Jul-07 7:24 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.180111.1 | Last Updated 16 Jul 2007
Article Copyright 2007 by tillmyspace
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid