CheckpointSideRewardViewComp.ts 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import { EventTouch, Node, Toggle, Tween, Vec3, _decorator, easing, tween } from "cc";
  2. import { oops } from "../../../../../extensions/oops-plugin-framework/assets/core/Oops";
  3. import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
  4. import { CCComp } from "../../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
  5. import { UIID } from "../../common/config/GameUIConfig";
  6. import { SingletonModuleComp, smc } from "../../common/SingletonModuleComp";
  7. import { AdManager } from "../../../platform/ad/AdManager";
  8. import { CheckpointCheckFailComp } from "../bll/CheckpointCheck";
  9. import { AddCellOperationComp } from "../bll/AddCellOperation";
  10. import { LaunchManager } from "../../../platform/launch/LaunchManager";
  11. import { GameEvent } from "../../common/config/GameEvent";
  12. const { ccclass, property } = _decorator;
  13. /** 角色信息界面 */
  14. @ccclass('CheckpointSideRewardViewComp')
  15. @ecs.register('CheckpointSideRewardView', false)
  16. export class CheckpointSideRewardViewComp extends CCComp {
  17. private btnClose
  18. private btnSide
  19. private btnReward
  20. onAdded(args: any) {
  21. console.log(args);
  22. }
  23. onLoad() {
  24. this.btnClose = this.node.getChildByPath("BG/btn_close")
  25. this.btnSide = this.node.getChildByPath("BG/btn_side")
  26. this.btnReward = this.node.getChildByPath("BG/btn_reward")
  27. this.btnClose.on(Node.EventType.TOUCH_END, this.onTouchEnd, this);
  28. this.btnSide.on(Node.EventType.TOUCH_END, this.onTouchEnd, this);
  29. this.btnReward.on(Node.EventType.TOUCH_END, this.onTouchEnd, this);
  30. const window = this.node.getChildByName("BG")
  31. window.setScale(new Vec3(0, 0, 1));
  32. // 使用Tween来实现动画效果
  33. Tween.stopAllByTarget(window); // 停止该节点上的所有其他Tween
  34. tween(window)
  35. // .delay(0.1)
  36. .to(0.3, { scale: new Vec3(0.8, 0.8, 1) }, { easing: easing.backOut }) // 缩放动画
  37. .start(); // 开始动画
  38. oops.message.on(GameEvent.SideBarEnter,this.setBtnStatus,this)
  39. }
  40. private setBtnStatus(){
  41. if (LaunchManager.getInstance().fromSide) {
  42. this.btnReward.active = true
  43. this.btnSide.active = false
  44. } else {
  45. this.btnSide.active = true
  46. this.btnReward.active = false
  47. }
  48. }
  49. private onTouchEnd(event: EventTouch) {
  50. switch (event.target.name) {
  51. case "btn_close":
  52. oops.gui.remove(UIID.SideReward);
  53. break;
  54. case "btn_side":
  55. tt.navigateToScene({
  56. scene: "sidebar",
  57. success: (res) => {
  58. console.log("navigate to scene success");
  59. },
  60. fail: (res) => {
  61. console.log("navigate to scene fail: ", res);
  62. oops.gui.toast("跳转失败")
  63. // 跳转失败回调逻辑
  64. },
  65. });
  66. break;
  67. case "btn_reward":
  68. if (smc.initialize.account.AccountModel.reward) {
  69. oops.gui.toast("已经领取过奖励了")
  70. } else {
  71. oops.gui.toast("解锁关卡3皮肤")
  72. smc.initialize.account.AccountModel.reward = true
  73. oops.gui.open(UIID.Skin)
  74. }
  75. break;
  76. }
  77. event.propagationStopped = true;
  78. }
  79. protected onDestroy(): void {
  80. oops.message.off(GameEvent.SideBarEnter,this.setBtnStatus,this)
  81. }
  82. reset() {
  83. this.node.destroy();
  84. }
  85. }