GameProp1001.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // Learn TypeScript:
  2. // - https://docs.cocos.com/creator/2.4/manual/en/scripting/typescript.html
  3. // Learn Attribute:
  4. // - https://docs.cocos.com/creator/2.4/manual/en/scripting/reference/attributes.html
  5. // Learn life-cycle callbacks:
  6. // - https://docs.cocos.com/creator/2.4/manual/en/scripting/life-cycle-callbacks.html
  7. import AudioManager from "../AudioManager";
  8. import Character from "../Character/Character";
  9. import EventName from "../EventName/EventName";
  10. import RewardMnr from "../Template/RewardMnr";
  11. import Prop from "./Prop";
  12. const { ccclass, property } = cc._decorator;
  13. @ccclass
  14. export default class GameProp1001 extends Prop {
  15. // onLoad () {}
  16. //触发几次获得奖励
  17. triggerCount = 1
  18. //完事之后自己是否消失
  19. IsDeleteMe = true
  20. protected onEnable(): void {
  21. this.node.active = RewardMnr.getInstance().isEnable(this.Flag())
  22. }
  23. onCollisionEnter(other: cc.CircleCollider, self: cc.BoxCollider) {
  24. if (this.triggerCount <= 0) {
  25. console.error('失效了');
  26. this.getComponent(cc.BoxCollider).enabled = false
  27. return
  28. }
  29. //如果碰撞了玩家
  30. if (other.node.getComponent(Character)) {
  31. this.triggerCount--
  32. if (this.triggerCount <= 0 && this.IsDeleteMe) {
  33. this.Reaward()
  34. }
  35. }
  36. }
  37. //奖励的方法
  38. Reaward() {
  39. AudioManager.instance.playEffect(AudioManager.eatJinbi)
  40. let Gold = cc.Camera.main.node.getChildByName("Gold")
  41. let WordPos = Gold.convertToWorldSpaceAR(cc.v3(0, 0, 0))
  42. let NodePos = this.node.parent.convertToNodeSpaceAR(WordPos)
  43. cc.tween(this.node)
  44. .to(0.4, { position: cc.v3(NodePos, 0) })
  45. .call(() => {
  46. RewardMnr.getInstance().addGold(this.Flag(), 1)
  47. this.node.destroy()
  48. })
  49. .start()
  50. }
  51. }