flyImg.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. @property({type: cc.Integer})
  17. private _speed: number = 100;
  18. @property({type: cc.Integer})
  19. public get speed(): number {
  20. return this._speed;
  21. }
  22. public set speed(value: number) {
  23. this._speed = value;
  24. this.uvSpeed = value / this.node.height
  25. }
  26. onLoad () {
  27. let spr = this.getComponent(cc.Sprite);
  28. let mat = spr.getMaterial(0);
  29. mat.setProperty('center', this.pos);
  30. this.uvSpeed = this.speed / this.node.height
  31. this.mat = this.node.getComponent(cc.Sprite).getMaterial(0);
  32. }
  33. gameUpdate(dt: number): void {
  34. let uvSpeed = this.uvSpeed * dt;
  35. this.pos.y -= uvSpeed;
  36. this.mat.setProperty('center', this.pos);
  37. }
  38. }