This is the second part of the step-by-step tutorial for building a simple game menu in XNA. Previously we have set up the project, the game loop, and added the UI theme. Now it’s time to implement the game logic…
The latest release of the DigitalRune Engine contains a new sample called GameStatesSample which covers a some of the basics:
The result is a stripped down XNA application – no fancy graphics, no gameplay, just a few screens and menus. Take a look:
This article is a step-by-step description of my first attempt to create a tree view control. I spent less than 4 hours of work on the control and this was the result:
In this article I will explain the development steps, as well as my thought process. At the end of the article you can download the source code.
This time we take a look at how the DigitalRune Game UI library handles input.
Here is a class diagram showing only the types and type members related to input processing:
While we discussed the GUI rendering process in the last article, we left out any details about the default UI renderer. if you plan to create custom controls, you will want to extend the standard renderer, and this blog post will hopefully provide the missing explanations.
In the last article about the DigitalRune Game UI we examined how the size and position of a GUI control is determined. Yet we have not discussed where and how the controls are drawn to the screen. This the topic of this article. – This will be another rather dry article, but we are trying to get a lot of information and knowledge across for those who want to extend or learn from our DigitalRune Game UI library. So let’s jump right in…
Here is another in-depth article about the DigitalRune Game UI. This article discusses the layout process of GUI controls.
So you need a custom control in your XNA game? A new control that is not yet supported in the DigitalRune Game UI? - No problem. There are many ways to extend the DigitalRune Game UI library - as we will discuss in this and upcoming blog posts. We will start by describing a few core concepts that you need to understand before you can take full advantage of the DigitalRune Game UI library.
In this first post we will discuss the concept of UI control properties and events.
Together with yesterday’s update we have also put a new version of DigitalRune Game UI online. Below you can find a list of a few things that have changed.
The most important – though maybe not obvious – change is that all GUI controls can now be animated using our new DigitalRune Animation library. Properties such as foreground color, background color, x, y, width, height, opacity, etc. can easily be controlled using animations. A new sample is included which demonstrates some of the possibilities.
The current alpha release of the DigitalRune Game UI does not not have built-in support for animations. This will change when we release our DigitalRune Animation library. Here is a preview video of an XNA application with animated GUI controls:
The DigitalRune Game UI is a very flexible XNA GUI library that can be used in games for Windows, Xbox 360 and Windows Phone 7. The library can be used to create a simple menu in a console game or a complex GUI in a game editor.
It contains several predefined UI themes. Yesterday, we have created a new theme that will be included in the next release. This blog post shows the necessary steps to create a new UI theme.
In the last articles (Part 1 and Part 2), we have introduced our input service and commonly used functions of the input service. In this post we will delve into more advanced functions. We will discuss how we
In the last post, we introduced the (still empty) input service interface. Now it is time to add a few functions. This blog post describes
XNA makes input handling very easy. It provides one static class for each input device: Keyboard, Mouse, and GamePad. In each frame, you can query the device states and examine the current key and button states. But sooner or later you discover that there are a few tasks that are not supported:
This becomes especially apparent when you create a game with a complex user interface (windows, text boxes, etc.).
And to be clear: It is ok that these tasks are not supported because the XNA Framework is not a game engine!
While creating our XNA GUI library (see DigitalRune Game UI), we have identified several commonly needed tasks and packed them into an input service. This and the next blog posts describe our input service design.
The DigitalRune Game UI package is a set of .NET libraries that help to handle device input and create graphical user interfaces (GUIs) in XNA. The libraries support Windows, Xbox 360 and Windows Phone 7. The GUI can be controlled using mouse, keyboard, gamepad or touch input.
With the DigitalRune Game UI you can create a simple game menu for your Xbox 360 or Windows Phone 7 game. Or, you can create a complex user interface for your MMORPG or your game editor. The GUI can be a normal 2D user interface, but is also possible to project the GUI onto 3D surfaces to create in-game user interfaces.
A collection of the most useful blog articles can be found here:
(on Documentation page)
DigitalRune is a trademark of Garstenauer Information Technology OG.
Garstenauer Information Technology OG
Weingartenstrasse 35, 4452 Ternberg