Archive for March, 2009

Progress on the touch UI

Tuesday, March 31st, 2009

Well, having had my FTIR table for a few weeks now I have had a bit of time to get some code together (using some features of the newly refactored HMEngine of course) and get the touch inputs streaming into my XNA apps.

At the moment, I am working on an HMMultitouchDevice that can be added to the engine like all the other devices (mouse, keyboard, and gamepads) that just works out of the box with the engine. This whole project has been given the name “PufferFish”, which was a totally random title thrown out into the #xna channel immediately upon my asking for a good name from the folks in there and it just kind of stuck.

The device is currently taking touch inputs and just rendering spots on the screen where the touch would correspond to. Event wiring will be happening next, but I am playing around with some rendering of the spots (circles around fingers etc.) first just for a bit of fun. As soon as I can get some videos of the project in action I’ll get them up here. That’s all for now.

Engine Refactoring

Wednesday, March 4th, 2009

The introduction of multitouch capabilities into the HMEngine has caused a bit of a stir in the way that I had the architecture of some of the components laid out. Specifically, the IHMRenderable and IHMUpdatable interfaces and the HMInputDevice. Since the multitouch device needed a cursor (actually N cursors based on the current fingers touching it), I had an HMInputDevice that also needed to be IHMRenderable. The problem with that though was that input devices are never in a place where render could be called on them.

To keep a long story short, I refactored the components a bit and now have an HMComponentManager that keeps lists of anything that is updatable, renderable, loadable etc. just like the HMObjectManager used to do, but it also includes the ability to add input devices and cameras as well (basically everything in the engine is a child of some IHMComponent or another).

Since these changes are pretty important and add a lot of flexibility to the items we can create and use in the engine. I will be updating the tutorials to accommodate the differences that have been introduced. This will probably take a little while, as I want to release the full set of changes all at once, but the final outcome will overall be a much better put together framework.

Do NOT follow this link or you will be banned from the site!