TweenUtil.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. const { ccclass, property } = cc._decorator;
  2. /**
  3. * 动画工具类
  4. * @author 薛鸿潇
  5. */
  6. @ccclass
  7. export default class TweenUtil {
  8. /**
  9. * 缩放效果
  10. * @param node 动画节点
  11. * @param time 动画时间
  12. * @param start_scale 起始缩放属性
  13. * @param end_scale 目标缩放属性
  14. * @param complete_fun 完成回调
  15. */
  16. public scale(node: cc.Node, time: number = 0.15, start_scale: number = 0, end_scale: number = 1, complete_fun?: Function) {
  17. node.scale = start_scale;
  18. let scale1 = cc.tween().to(time, { scale: end_scale });
  19. let call1 = cc.tween().call(() => {
  20. if (typeof complete_fun == 'function') complete_fun();
  21. })
  22. cc.tween(node).then(scale1).then(call1).start()
  23. }
  24. /**
  25. * 缩放效果
  26. * @param node 动画节点
  27. * @param time 动画时间
  28. * @param start_scale 起始缩放属性
  29. * @param end_scale 目标缩放属性
  30. * @param complete_fun 完成回调
  31. */
  32. public scaleX(node: cc.Node, time: number = 0.15, start_scale: number = 0, end_scale: number = 1, complete_fun?: Function) {
  33. node.scaleX = start_scale;
  34. let scale1 = cc.tween().to(time, { scaleX: end_scale });
  35. let call1 = cc.tween().call(() => {
  36. if (typeof complete_fun == 'function') complete_fun();
  37. })
  38. cc.tween(node).then(scale1).then(call1).start()
  39. }
  40. /**
  41. * 缩放移动效果
  42. * @param node 动画节点
  43. * @param time 动画时间
  44. * @param start_scale 起始缩放属性
  45. * @param end_scale 结束缩放属性
  46. * @param end_pos 结束节点位置
  47. * @param complete_fun 完成回调
  48. */
  49. public scaleAndMove(node: cc.Node, time: number = 0.15, start_scale: number = 0, end_scale: number = 1, end_pos: cc.Vec2, complete_fun?: Function) {
  50. node.scale = start_scale;
  51. let scale1 = cc.tween().to(time, { scale: end_scale });
  52. let pos1 = cc.tween().to(time, { position: new cc.Vec3(end_pos.x, end_pos.y, 0) });
  53. let call1 = cc.tween().call(() => {
  54. if (typeof complete_fun == 'function') complete_fun();
  55. })
  56. let parallel = cc.tween().parallel(scale1, pos1)
  57. cc.tween(node).then(parallel).then(call1).start();
  58. }
  59. }