SettlePanel.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import Utils from "../Game/Utils";
  2. const {ccclass, property} = cc._decorator;
  3. @ccclass
  4. export default class SettlePanel extends cc.Component {
  5. @property({type:cc.SpriteFrame})
  6. avatarFrameBlue:cc.SpriteFrame = null;
  7. @property({type:cc.SpriteFrame})
  8. avatarFramePink:cc.SpriteFrame = null;
  9. @property({type:cc.SpriteFrame})
  10. male:cc.SpriteFrame = null;
  11. @property({type:cc.SpriteFrame})
  12. female:cc.SpriteFrame = null;
  13. private playerInfo:MatchPlayerInfo;
  14. private canRestart:boolean = true;
  15. setPlayerInfo(playerInfo: MatchPlayerInfo){
  16. this.playerInfo = playerInfo;
  17. }
  18. onLoad(){
  19. let playerFrame = this.node.getChildByName("PlayerFrame");
  20. let avatar = playerFrame.getChildByName("Mask").getChildByName("Avatar").getComponent(cc.Sprite);
  21. let nickName = playerFrame.getChildByName("Layout").getChildByName("NickName").getComponent(cc.Label);
  22. let gender = playerFrame.getChildByName("Layout").getChildByName("Gender").getComponent(cc.Sprite);
  23. let avatarFrame = playerFrame.getChildByName("AvatarFrame").getComponent(cc.Sprite);
  24. nickName.string = this.playerInfo.nickname;
  25. if(this.playerInfo.gender==1){
  26. gender.spriteFrame = this.female;
  27. avatarFrame.spriteFrame = this.avatarFramePink;
  28. } else {
  29. gender.spriteFrame = this.male;
  30. avatarFrame.spriteFrame = this.avatarFrameBlue;
  31. }
  32. Utils.LoadSpriteFrame(this.playerInfo.avatarUrl, (spriteFrame) => {
  33. avatar.spriteFrame = spriteFrame;
  34. })
  35. let restartBtn = this.node.getChildByName("Restart").getComponent(cc.Button);
  36. restartBtn.node.on(cc.Node.EventType.TOUCH_END,()=>{
  37. if (!this.canRestart) return;
  38. this.canRestart = false;
  39. restartBtn.interactable = false;
  40. this.node.runAction(
  41. cc.sequence(
  42. cc.fadeOut(1),
  43. cc.callFunc(()=>{
  44. cc.director.loadScene("Game");
  45. })
  46. )
  47. );
  48. });
  49. }
  50. public static Show(playerInfo: MatchPlayerInfo): void {
  51. let node = cc.instantiate(window.rs.pf_settlePanel);
  52. node.setPosition(cc.Camera.main.node.getPosition());
  53. let settlePanel = node.getComponent(SettlePanel);
  54. settlePanel.setPlayerInfo(playerInfo);
  55. cc.find("Canvas").addChild(node);
  56. cc.audioEngine.playEffect(window.rs.ac_win,false);
  57. }
  58. }