flyImg.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. const {ccclass, property, executeInEditMode, playOnFocus} = cc._decorator;
  8. @ccclass
  9. @executeInEditMode
  10. @playOnFocus
  11. export default class flyImg extends cc.Component {
  12. pos:cc.Vec2 = cc.v2(0,0);
  13. uvSpeed: number = 0;
  14. mat: cc.MaterialVariant = null;
  15. private _speed: number = 100;
  16. @property({type: cc.Integer})
  17. public get speed(): number {
  18. return this._speed;
  19. }
  20. public set speed(value: number) {
  21. this._speed = value;
  22. this.uvSpeed = value / this.node.height
  23. }
  24. start () {
  25. let spr = this.getComponent(cc.Sprite);
  26. let mat = spr.getMaterial(0);
  27. mat.setProperty('center', this.pos);
  28. this.speed = 100;
  29. this.mat = this.node.getComponent(cc.Sprite).getMaterial(0);
  30. }
  31. protected update(dt: number): void {
  32. let uvSpeed = this.uvSpeed * dt;
  33. this.pos.y -= uvSpeed;
  34. this.mat.setProperty('center', this.pos);
  35. }
  36. // update (dt) {}
  37. }