Water.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { _decorator, BoxCollider2D, Button, CircleCollider2D, Collider2D, Color, Component, Enum, find, Node, NodeEventType, Sprite } from 'cc';
  2. import { WaterColorHex, WaterColors } from '../TakeGobletGlobalInstance';
  3. const { ccclass, property, executeInEditMode } = _decorator;
  4. @ccclass('Water')
  5. @executeInEditMode
  6. export class Water extends Component {
  7. @property({ type: Enum(WaterColors) })
  8. private _color: WaterColors = WaterColors.Blue;
  9. @property(Sprite)
  10. sprite: Sprite = null!
  11. get color() {
  12. return this._color;
  13. }
  14. set color(value: WaterColors) {
  15. this._color = value;
  16. this.updateColor();
  17. }
  18. start() {
  19. this.updateColor();
  20. }
  21. onLoad() {
  22. this.updateColor();
  23. }
  24. private updateColor() {
  25. const sprite = this.getComponent(Sprite);
  26. if (sprite) {
  27. sprite.color = new Color(WaterColorHex[this._color]);
  28. }
  29. }
  30. // 外部调用设置颜色
  31. public setColor(color: WaterColors) {
  32. this.color = color;
  33. }
  34. }