SlideServe
Menu
Préférences
© SlideServe · v2026

User Interface

morrie avatar
26 diapositives · 485 Views · Sep 09, 2014

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. Starcraft 2. World of Warcraft. Quake 3. Quake 4. Madden ‘09. Game Control.

User Interface - slide 1
01 / 26User Interface
1 / 17

Télécharger la présentation

User Interface
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  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. Starcraft 2

  6. World of Warcraft

  7. Quake 3

  8. Quake 4

  9. Madden ‘09

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

  11. 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!

  12. 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 • If you want to use joysticks for your game, you can check out Xbox controllers from me for the semester. I only have 16 though.

  13. Game Control: Others

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

  15. 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

  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;

  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; number of buttons

  18. 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

  19. 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

  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;

  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; MUST be sizeof( JOYINFOEX)

  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; SHOULD be JOY_RETURNALL

  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; position of “hat” controllers

  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; bit array with bit set if button currently 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; number of buttons pressed

  26. 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