Difference between revisions of "Game Programming Class3"

esse quam videri
Jump to: navigation, search
m (Input)
Line 3: Line 3:
  
  
==Input==
 
input from Game Controller and Keyboard
 
 
'''GamePad'''
 
[[Image:XBoxGamePadWithLabels.png]]
 
 
XNA has built in support for up to 4 game controllers. The default controller is a x-box controller.
 
X-Box Controller The Controller is accessed through the [http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.input.gamepad.aspx GamePad] Object and the [http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.input.gamepadstate_members.aspx GamePadState] Structure reference types
 
<csharp>
 
        //Get an instance of the gamePadState Structure
 
        GamePadState gamePad1State = GamePad.GetState(PlayerIndex.One);
 
       
 
/*Since the Keyboard structure is Windows only we
 
need to use some preprocessor
 
directives to only compile the KeyBoard
 
state code if the target is not XBOX360 (I
 
should also add zune if this is one of our build targets)
 
*/
 
        #if !XBOX360
 
            #region KeyBoard
 
            KeyboardState keyboardState = Keyboard.GetState();
 
        #endif
 
       
 
</csharp>
 
 
Angle Measured in Radians
 
 
using [http://msdn.microsoft.com/en-us/library/system.math.atan2.aspx atan2] to get the angle from the direction vector
 
 
===Vibration===
 
<csharp>
 
        GamePad.SetVibration(PlayerIndex.One, 1.0f, 1.0f);  //left low freq motor right high freq motor
 
       
 
</csharp>
 
  
 
==in class==
 
==in class==

Revision as of 20:06, 30 January 2011

Class 3 Input Handling

in class

Extract sprite from pacman class and build new project

http://www.xnawiki.com/index.php?title=Basic_Sprite_Class

Sprite class

IntroPacManComponent.zip

Project that refactors the pacman class into two classes

Sprite.cs DrawableSprite.cs

Then the pacman class can inherit from one of these two classes.

PacMan.cs

Due to the desire to limit the number of spritebatches, I've created two classes. The sprite class cannot draw itself without being associated with and external spritebatch. The DrawableSprite has it's own spritebatch which makes it easier to use but less efficient.

Classes and Generics

Shooting with pacman

List<Type> Safer than Arraylist and easier to manage than Array

Homework

Moving Game

  • Create an XNA project that uses the Keyboard for input.
  • Has at least 3 different moving sprite with a common code base.
  • the sprites should inherit from the same class. Game components are a plus. don't worry about collision yet
  • Read Chapter 3 in XNA 3.0