flyImg.ts 1.3 KB

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