1 / 25

User Interface

User Interface Dr. Scott Schaefer User Interface Make it simple/easy to do common tasks Don’t obscure the FOV Simpler is typically better Consistency is important! Diablo Warcraft 3 World of Warcraft Quake 3 Quake 4 Madden ‘09 Game Control Must consider single/multi-player aspect

issac
Télécharger la présentation

User Interface

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. User Interface Dr. Scott Schaefer

  2. User Interface • Make it simple/easy to do common tasks • Don’t obscure the FOV • Simpler is typically better • Consistency is important!

  3. Diablo

  4. Warcraft 3

  5. World of Warcraft

  6. Quake 3

  7. Quake 4

  8. Madden ‘09

  9. Game Control • Must consider single/multi-player aspect • Single player? • Networked multi-player? • Multi-player same machine? • Platform limitations

  10. Game Control: Keyboard/Mouse • Connected to every PC but lacking on most other platforms • Fine for single player or multi-player networked • Lots of buttons!

  11. Game Control: Joystick • Found on most consoles • Can also be connect to PC via USB • Win NT supports 2 joysticks • Later versions support 16 joysticks

  12. Game Control: Others

  13. Joystick Programming with Win32 #include<windows.h> #include<mmsystem.h> intjoyGetNumDevs ( void) • Returns: number of joysticks supported by driver (not number connected to machine)

  14. Joystick Programming with Win32 MMResult joyGetDevCaps ( int id, JOYCAPS*cap, int size ) • id: id of the joystick being tested (-1 through 15) • cap: pointer to a JOYCAP structure • size: size of structure pointed to by cap • Returns: JOYERR_NOERROR if no error

  15. Joystick Programming with Win32 • typedefstruct { short wMid; short wPid; char szPname[MAXPNAMELEN]; unsigned int wXmin, wXmax, wYmin, wYmax, wZmin, wZmax; unsigned int wNumButtons; unsigned int wPeriodMin, wPeriodMax; unsigned int wRmin, wRmax, wUmin, wUmax, wVmin, wVmax; unsigned int wCaps; unsigned int wMaxAxes; unsigned int wNumAxes; unsigned int wMaxButtons; char szRegKey[MAXPNAMELEN]; char szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; } JOYCAPS;

  16. Joystick Programming with Win32 • typedefstruct { short wMid; short wPid; char szPname[MAXPNAMELEN]; unsigned int wXmin, wXmax, wYmin, wYmax, wZmin, wZmax; unsigned int wNumButtons; unsigned int wPeriodMin, wPeriodMax; unsigned int wRmin, wRmax, wUmin, wUmax, wVmin, wVmax; unsigned int wCaps; unsigned int wMaxAxes; unsigned int wNumAxes; unsigned int wMaxButtons; char szRegKey[MAXPNAMELEN]; char szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; } JOYCAPS; number of buttons

  17. Joystick Programming with Win32 • typedefstruct { short wMid; short wPid; char szPname[MAXPNAMELEN]; unsigned int wXmin, wXmax, wYmin, wYmax, wZmin, wZmax; unsigned int wNumButtons; unsigned int wPeriodMin, wPeriodMax; unsigned int wRmin, wRmax, wUmin, wUmax, wVmin, wVmax; unsigned int wCaps; unsigned int wMaxAxes; unsigned int wNumAxes; unsigned int wMaxButtons; char szRegKey[MAXPNAMELEN]; char szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; } JOYCAPS; min/max bounds for “hat” controllers

  18. Joystick Programming with Win32 MMResult joyGetPosEx ( int id, JOYINFOEX*info) • id: id of the joystick being tested (-1 through 15) • info: pointer to a JOYINFOEX structure • Returns: JOYERR_NOERROR if no error JOYERR_UNPLUGGED if joystick not connected

  19. Joystick Programming with Win32 • typedefstruct { int dwSize; int dwFlags; int dwXpos, dwYpos, dwZpos; int dwRpos, dwUpos, dwVpos; int dwButtons; int dwButtonNumber; int dwPOV; int dwReserved1; int dwReserved2; } JOYINFOEX;

  20. Joystick Programming with Win32 • typedefstruct { int dwSize; int dwFlags; int dwXpos, dwYpos, dwZpos; int dwRpos, dwUpos, dwVpos; int dwButtons; int dwButtonNumber; int dwPOV; int dwReserved1; int dwReserved2; } JOYINFOEX; MUST be sizeof( JOYINFOEX)

  21. Joystick Programming with Win32 • typedefstruct { int dwSize; int dwFlags; int dwXpos, dwYpos, dwZpos; int dwRpos, dwUpos, dwVpos; int dwButtons; int dwButtonNumber; int dwPOV; int dwReserved1; int dwReserved2; } JOYINFOEX; SHOULD be JOY_RETURNALL

  22. Joystick Programming with Win32 • typedefstruct { int dwSize; int dwFlags; int dwXpos, dwYpos, dwZpos; int dwRpos, dwUpos, dwVpos; int dwButtons; int dwButtonNumber; int dwPOV; int dwReserved1; int dwReserved2; } JOYINFOEX; position of “hat” controllers

  23. Joystick Programming with Win32 • typedefstruct { int dwSize; int dwFlags; int dwXpos, dwYpos, dwZpos; int dwRpos, dwUpos, dwVpos; int dwButtons; int dwButtonNumber; int dwPOV; int dwReserved1; int dwReserved2; } JOYINFOEX; bit array with bit set if button currently pressed

  24. Joystick Programming with Win32 • typedefstruct { int dwSize; int dwFlags; int dwXpos, dwYpos, dwZpos; int dwRpos, dwUpos, dwVpos; int dwButtons; int dwButtonNumber; int dwPOV; int dwReserved1; int dwReserved2; } JOYINFOEX; number of buttons pressed

  25. Joystick Programming with Win32 • typedefstruct { int dwSize; int dwFlags; int dwXpos, dwYpos, dwZpos; int dwRpos, dwUpos, dwVpos; int dwButtons; int dwButtonNumber; int dwPOV; int dwReserved1; int dwReserved2; } JOYINFOEX; angle of POV controller

More Related