GameMatchView.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import { _decorator, Component} from 'cc';
  2. import { SocketPlayer } from '../SocketPlayer';
  3. import { GameEventEnum } from '../GameStruct';
  4. import MatchPanel from '../../../Packages/MatchPanel/MatchPanel';
  5. import WebViewListener from '../../ThirdParty/BiBeng/WebViewListener';
  6. const { ccclass, property } = _decorator;
  7. @ccclass('GameMatchView')
  8. export class GameMatchView extends Component {
  9. protected onLoad(): void {
  10. window.gm.node.once(GameEventEnum.MatchEnd, () => {
  11. for (let i = 0; i < window.gm.state.matchPlayerInfos.length; i++) {
  12. if (i === window.gm.state.myPlayerIndex) continue;
  13. this._renderOther(window.gm.state.matchPlayerInfos[i]);
  14. break;
  15. }
  16. //请求开始帧同步
  17. this.scheduleOnce(() => {
  18. window.gm.socketPlayer.startFrameSync();
  19. }, window.gm.config.debugQuicklyStartGame ? 0 : 3.5);
  20. });
  21. window.gm.node.once(GameEventEnum.GameStart, () => {
  22. this.node.destroy();
  23. });
  24. }
  25. protected start(): void {
  26. if (WebViewListener.Init()) {
  27. window.gm.node.once(GameEventEnum.UniAppGameInit, (arg0) => {
  28. BuiltinMatchInfos.myPlayerInfo = arg0;
  29. this._startMatching();
  30. });
  31. } else {
  32. this._startMatching();
  33. }
  34. }
  35. private _startMatching() {
  36. this._renderSelf();
  37. window.gm.socketPlayer = new SocketPlayer();
  38. }
  39. private _renderSelf() {
  40. let playerInfo = BuiltinMatchInfos.myPlayerInfo;
  41. MatchPanel.Instance.renderMyInfo(
  42. playerInfo.nickname,
  43. playerInfo.gender == 0 ? MatchPanel.GENDER_BOY : MatchPanel.GENDER_GIRL,
  44. playerInfo.avatarUrl
  45. );
  46. }
  47. private _renderOther(playerInfo: MatchPlayerInfo) {
  48. MatchPanel.Instance.renderOtherInfo(
  49. playerInfo.nickname,
  50. playerInfo.gender == 0 ? MatchPanel.GENDER_BOY : MatchPanel.GENDER_GIRL,
  51. playerInfo.avatarUrl
  52. );
  53. }
  54. }
  55. /**内置匹配信息(默认玩家和多个AI) */
  56. export class BuiltinMatchInfos {
  57. public static myPlayerInfo: MatchPlayerInfo = {
  58. nickname: "光头",
  59. gender: 0,
  60. avatarUrl: "headphotos/master"
  61. };
  62. public static aiPlayerInfos: MatchPlayerInfo[] = [
  63. {
  64. nickname: "大佬啊",
  65. gender: 0,
  66. avatarUrl: "headphotos/0"
  67. },
  68. {
  69. nickname: "天天睡懒觉",
  70. gender: 1,
  71. avatarUrl: "headphotos/1"
  72. },
  73. {
  74. nickname: "这也太奢侈了吧",
  75. gender: 0,
  76. avatarUrl: "headphotos/2"
  77. },
  78. {
  79. nickname: "我要起飞咯",
  80. gender: 1,
  81. avatarUrl: "headphotos/3"
  82. },
  83. {
  84. nickname: "工作不如睡觉",
  85. gender: 0,
  86. avatarUrl: "headphotos/4"
  87. },
  88. ];
  89. }