Question: I've got a Windows API Window. I've managed to make it windowed, and "fullscreen windowed". But I can't seem to make the window just full-screen- for example, even if I specify `WS_POPUP`, I can still freely move the cursor to my second screen. However, if I launch full-screen games, they don't permit it, and exist only exclusively or minimized. How can I make a window that behaves this way?

Edit: Excuse me. Limiting the mouse movement was just one example of how a full-screen window behaves differently to a non-fullscreen window, I'm not looking for how to limit the mouse movement.

Or is this *set* in the D3DPRESENT\_PARAMETERS, rather than just communicated?

Answer: 
My approach to this is two-fold

* First, I abstract the source of control for every game object. That lets me implement a "user controlled entity", which takes input from gamepad/keyboard/mouse/etc for the player entity, and implement AI routines for NPCs.
* Second, each entity can only express an "intent" ... so the output from the abstracted control object in point 1 only says, "I want to move in that direction". That intent is then implemented by some other routine which checks against map details, does collision, etc.
Depends on the type of game. For a platformer, your movement is basically a large series of hacks, comprised of a lot of ray tests and highly specialized logic. For a top-down action game, you should have a basic physics/collision system that's independent of any particular type of game object, and player controls just set velocities/forces that move the avatar in the indicated direction. Other types of games have other types of controls and use less or more physics engine as appropriate.

In general, though, you have some kind of concept of a physics object. Players, enemies, items, etc. all have a physics component. This component in tandem with the physics engine (which knows about the level layout, among other things) will "correct" motion in response to collision. The player component then responds to movement requests by setting forces, which push the player around, and the physics component deals with things like "the object is moving into a wall, push it back out again and adjust accordingly."

If you provide more information on what exactly you're trying to do, someone may be able to provide a more detailed answer.