GameStruct.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { GameManager } from "./GameManager";
  2. declare global {
  3. interface Window {
  4. /**全局游戏管理者 */
  5. gm: GameManager;
  6. }
  7. /**玩家匹配信息 */
  8. interface MatchPlayerInfo {
  9. nickname: string;
  10. gender: number;
  11. avatarUrl: string;
  12. }
  13. /**游戏系统状态 */
  14. interface GameSystemState {
  15. time: number;
  16. playerStates: PlayerState[];
  17. winPlayerIndex: number;
  18. readyComplete: boolean;
  19. gameOver: boolean;
  20. }
  21. /**玩家状态 */
  22. interface PlayerState {
  23. index: number;
  24. moveX: number;
  25. speedX: number;
  26. lastAccTime: number;
  27. accCount: number;
  28. }
  29. /**玩家输入-加速 */
  30. interface PlayerAccInput {
  31. type: number;
  32. playerIndex: number;
  33. }
  34. /**玩家输入-跳跃 */
  35. interface PlayerJumpInput {
  36. type: number;
  37. playerIndex: number;
  38. }
  39. /**游戏系统输入(玩家输入都归纳为系统输入) */
  40. type GameSystemInput = PlayerAccInput | PlayerJumpInput
  41. }
  42. /**游戏事件 */
  43. export enum GameEventEnum {
  44. UniAppGameInit = "UniAppGameInit",
  45. MatchEnd = "MatchEnd",
  46. GameStart = "GameStart",
  47. ReadyGo = "ReadyGo",
  48. GameEnd = "GameEnd",
  49. GameWin = "GameWin",
  50. GameLose = "GameLose",
  51. }
  52. /**游戏系统输入 */
  53. export enum GameSystemInputType {
  54. PlayerAcc = 0,
  55. PlayerJump = 1
  56. }