GameSettleView.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { _decorator, Component, director, Label, Node, Sprite, SpriteFrame } from 'cc';
  2. import { Utils } from '../../Common/Utils';
  3. import { GameEventEnum } from '../GameStruct';
  4. const { ccclass, property } = _decorator;
  5. @ccclass('GameSettleView')
  6. export class GameSettleView extends Component {
  7. @property({type: SpriteFrame})
  8. genderBoySF: SpriteFrame = null;
  9. @property({type: SpriteFrame})
  10. genderGirlSF: SpriteFrame = null;
  11. @property({type: SpriteFrame})
  12. genderBoyFrameSF: SpriteFrame = null;
  13. @property({type: SpriteFrame})
  14. genderGirlFrameSF: SpriteFrame = null;
  15. start() {
  16. this.node.getChildByName("BtnRestart").on(Node.EventType.TOUCH_END, () => {
  17. director.loadScene("Game");
  18. });
  19. this._renderPlayerInfo(
  20. this.node.getChildByName("InfoSelf"),
  21. window.gm.state.myPlayerIndex
  22. );
  23. this._renderPlayerInfo(
  24. this.node.getChildByName("InfoOther"),
  25. (window.gm.state.myPlayerIndex + 1) % 2
  26. );
  27. let win = window.gm.state.authGameSystemState.winPlayerIndex === window.gm.state.myPlayerIndex;
  28. this.node.getChildByName("ImgWin").active = win;
  29. this.node.getChildByName("ImgLose").active = !win;
  30. if (win) window.gm.node.emit(GameEventEnum.GameWin);
  31. else window.gm.node.emit(GameEventEnum.GameLose);
  32. }
  33. private _renderPlayerInfo(node: Node, playerIndex: number) {
  34. let playerInfo = window.gm.state.matchPlayerInfos[playerIndex];
  35. let avatarSprite = node.getChildByPath("Mask/Avatar").getComponent(Sprite);
  36. let genderSprite = node.getChildByName("Gender").getComponent(Sprite);
  37. let genderFrameSprite = node.getChildByName("Frame").getComponent(Sprite);
  38. let nicknameLabel = node.getChildByName("Name").getComponent(Label);
  39. let hitCountLabel = node.getChildByName("HitCount").getComponent(Label);
  40. if (playerInfo.gender == 0) {
  41. genderSprite.spriteFrame = this.genderBoySF;
  42. genderFrameSprite.spriteFrame = this.genderBoyFrameSF;
  43. } else {
  44. genderSprite.spriteFrame = this.genderGirlSF;
  45. genderFrameSprite.spriteFrame = this.genderGirlFrameSF;
  46. }
  47. nicknameLabel.string = playerInfo.nickname;
  48. hitCountLabel.string = "打了" +
  49. window.gm.state.authGameSystemState.playerStates
  50. .find(v => v.index===playerIndex).accCount + "拳";
  51. Utils.LoadSpriteFrame(playerInfo.avatarUrl,
  52. (spriteFrame: SpriteFrame) => avatarSprite.spriteFrame = spriteFrame);
  53. }
  54. }