GameOverPlayerItem.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { _decorator, Color, Component, Label, Node, Sprite, Widget } from 'cc';
  2. import { IGamePlayer } from '../../module_basic/shared/protocols/public/game/GameTypeDef';
  3. import { IUserData } from '../shared/types/RoomData';
  4. import { GenderIcon } from '../scripts/GenderIcon';
  5. import { SpriteUtils } from '../scripts/SpriteUtils';
  6. const { ccclass, property } = _decorator;
  7. const tempColor = new Color();
  8. @ccclass('GameOverPlayerItem')
  9. export class GameOverPlayerItem extends Component {
  10. @property(Label) lblUserName: Label;
  11. @property(Label) lblRoleName: Label;
  12. @property(Sprite) sprIcon:Sprite;
  13. @property(Sprite) sprSkinBg: Sprite;
  14. @property(Sprite) sprSkin: Sprite;
  15. @property(Node) emptySkin: Node;
  16. @property(GenderIcon) gender:GenderIcon;
  17. async setPlayer(player: IGamePlayer, user: IUserData) {
  18. this.lblRoleName.string = player.roleName;
  19. this.lblUserName.string = user.name;
  20. SpriteUtils.setUserIcon(this.sprIcon, user.visualId);
  21. Color.fromUint32(tempColor, player.color | 0xff000000);
  22. this.sprSkinBg.color = tempColor;
  23. SpriteUtils.setTeamSkin(this.sprSkin,player.teamId);
  24. this.gender.setGender(user?.gender);
  25. this.lblUserName.updateRenderData(true);
  26. this.lblUserName.node.children.forEach(v=>{
  27. v.getComponent(Widget).updateAlignment();
  28. });
  29. }
  30. }