Question about events, XNA and GUI

Okay, I just had a few questions and was hoping that someone may know the answer to one or more of them.

#1) I recently built a Knight class with some special attacks belonging to him. I am wondering about how to set each attack to a cretin key. My question is: Is setting the attacks to buttons part of what I would do in my c++ engine build of the game or is that something I do with allegro or whatever GUI i use?

#2)I have been reading up on XNA, But I don't really understand what it is. Is it a graphics library? Is it the same thing allegro is?

#3) I noticed XNA is written in C#. Can I write my program in C++ and make it work with XNA if I decide I want to later down the road?

Thanks for the help guys.
1. One way key presses are handled is, the program waits for a key to be pressed in whichever way the input library (SDL, DirectInput, curses, or anything else) you're using provides, and the event is passed down the hierarchy to produce a reaction. E.g. event handler -> main game class -> actors -> animations -> and so on. Most of the work will be performed by your code.
2.
Microsoft XNA ('XNA's Not Acronymed') is a set of tools with a managed runtime environment provided by Microsoft that facilitates computer game development and management. XNA attempts to free game developers from writing "repetitive boilerplate code" and to bring different aspects of game production into a single system.

3. You've probably heard of Duke Nukem Forever. One of the reasons it's taken so long (and it's still not finished) is because during the first few years of development the team changed engines several times. Any project of a considerable size has to be as completely designed as possible before any work is done, and that design has to change as little as possible during the course of development, with the possible exception of there being something fundamentally broken in the design (I say "possible" because sometimes entire codebases will be scrapped rather than correcting the design). If you pick a language/framework/engine for a project, that language/framework/engine should stay with the project until it's finished. Unless you were very careful with your design and everything is very well encapsulated, changing frameworks is very costly. Forget about changing languages, obviously.
That was to answer a more basic problem with your question. To answer the question itself: I'm not familiarized with XNA, but probably not. You'd probably have to resort to dynamic linking or migrating the codebase to .NET -- that is, take the code and have a C++ .NET compiler compile it. It's not really worth the effort, if you ask me. C and C++ are the languages for game development.
Well I was hoping to have my game playable on Xbox for just fun and the learning experience. Is XNA my only option for that? Thanks for your time in explaining some of that to me.
Topic archived. No new replies allowed.