GameTools.ts 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. export class faafssfafsa
  2. {
  3. constructor(_message:string,_pos:Laya.Vector2,_size:Laya.Vector2,_fontSize:number,_color:string = null)
  4. {
  5. this.size = new Laya.Vector2(_size.x,_size.y);
  6. this.fontSize = _fontSize;
  7. this.color = _color;
  8. this.message = _message;
  9. this.pos = _pos;
  10. }
  11. size:Laya.Vector2;
  12. fontSize = 30;
  13. color:string;
  14. message = "";
  15. pos:Laya.Vector2;
  16. }
  17. export class GameTools {
  18. private static ins:GameTools;
  19. constructor() {
  20. GameTools.ins = this;
  21. }
  22. /**单例*/
  23. public static get Instance():GameTools{
  24. if(GameTools.ins){
  25. return GameTools.ins;
  26. }
  27. else{
  28. return new GameTools();
  29. }
  30. }
  31. /**插值方法*/
  32. public lerp(form:number, to:number, t:number){
  33. if (t <= 0) {
  34. return form;
  35. }else if (t >= 1) {
  36. return to;
  37. }
  38. var a = t * to + (1 - t) * form
  39. return a;
  40. }
  41. /**设置碰撞器*/
  42. SetCollider(setNode: Laya.Node, CollisionGroup: number) {
  43. var numchild = setNode.numChildren;
  44. for (var i = 0; i < setNode.numChildren; i++) {
  45. var numchild2 = setNode.getChildAt(i).numChildren;
  46. if (numchild2 > 1) {
  47. this.SetCollider(setNode.getChildAt(i), CollisionGroup);
  48. }
  49. var physicsCollider = setNode.getChildAt(i).getComponent(Laya.PhysicsCollider) as Laya.PhysicsCollider;
  50. if (physicsCollider) {
  51. physicsCollider.collisionGroup = CollisionGroup;
  52. }
  53. }
  54. }
  55. //随机一个浮点数
  56. public static RandomNumber(from:number,to:number):number
  57. {
  58. if(from >= to)
  59. {
  60. return 0;
  61. }
  62. var size = to - from;
  63. var curNumber = Math.random()*size + from;
  64. return curNumber;
  65. }
  66. //随机一个int值
  67. public static RandomANumber(from:number,to:number):number
  68. {
  69. if(from >= to)
  70. {
  71. return 0;
  72. }
  73. var size = to - from;
  74. var curNumber = Math.random()*size + from;
  75. return Math.floor(curNumber);
  76. }
  77. //签到领取金币Tween动画
  78. public static GetMoney(_num:number,_pos:Laya.Vector2 = null,_completeHandle:Laya.Handler = null)
  79. {
  80. if(_num == 0)return;
  81. var fafaafsfa = new Laya.Box;
  82. fafaafsfa.width = 400;
  83. fafaafsfa.height = 100;
  84. fafaafsfa.pivotX = fafaafsfa.width/2;
  85. fafaafsfa.pivotY = fafaafsfa.height/2;
  86. if(_pos == null)
  87. {
  88. _pos = new Laya.Vector2(Laya.stage.width/2,Laya.stage.height/2);
  89. }
  90. fafaafsfa.pos(_pos.x,_pos.y);
  91. var aafafaffa = new Laya.Image;
  92. aafafaffa.skin = "game/qiandao_1_7.png";
  93. aafafaffa.width = 60;
  94. aafafaffa.height = 60;
  95. aafafaffa.left = 50;
  96. aafafaffa.y = 10;
  97. fafaafsfa.addChild(aafafaffa);
  98. var faasfafsafs = new Laya.Text;
  99. faasfafsafs.width = 300;
  100. faasfafsafs.height = 50;
  101. faasfafsafs.align = "center";
  102. faasfafsafs.valign = "middle";
  103. faasfafsafs.font = "Microsoft YaHei";
  104. faasfafsafs.fontSize = 40;
  105. faasfafsafs.color = "#FFFFFF";
  106. faasfafsafs.bold = true;
  107. faasfafsafs.font = "Microsoft YaHei";
  108. faasfafsafs.text = "金币 +" + _num;
  109. faasfafsafs.x = 60;
  110. faasfafsafs.y = 10;
  111. fafaafsfa.addChild(faasfafsafs);
  112. Laya.stage.addChild(fafaafsfa);
  113. var faasfsaf = Laya.Tween.to(fafaafsfa,{y:fafaafsfa.y - 200},1500,Laya.Ease.expoInOut,Laya.Handler.create(this,()=>
  114. {
  115. faasfsaf.clear();
  116. fafaafsfa.destroy();
  117. if(_completeHandle)
  118. {
  119. _completeHandle.run();
  120. }
  121. }),100);
  122. }
  123. //文字Tween动画
  124. public static TweenText(faafssfafsa:faafssfafsa,_hight:number,_completeHandle:Laya.Handler = null,hide = true,_duration:number = 500):Laya.Text
  125. {
  126. var afasafsafsfa = new Laya.Text();
  127. afasafsafsfa.width = faafssfafsa.size.x;
  128. afasafsafsfa.height = faafssfafsa.size.y;
  129. afasafsafsfa.align = "center";
  130. afasafsafsfa.valign = "middle";
  131. afasafsafsfa.font = "Microsoft YaHei";
  132. afasafsafsfa.fontSize = faafssfafsa.fontSize;
  133. afasafsafsfa.pivotX = afasafsafsfa.width/2;
  134. afasafsafsfa.pivotY = afasafsafsfa.height/2;
  135. afasafsafsfa.color = "#5ad122";
  136. afasafsafsfa.bold = true;
  137. afasafsafsfa.stroke = 5;
  138. afasafsafsfa.strokeColor = "#ffffff";
  139. if(faafssfafsa.color)
  140. {
  141. faafssfafsa.color = faafssfafsa.color;
  142. }
  143. afasafsafsfa.text = faafssfafsa.message;
  144. afasafsafsfa.zOrder = 1;
  145. Laya.stage.addChildAt(afasafsafsfa,Laya.stage.numChildren - 1);
  146. afasafsafsfa.pos(faafssfafsa.pos.x,faafssfafsa.pos.y);
  147. var tween = Laya.Tween.to(afasafsafsfa,{y:afasafsafsfa.y - _hight,update:new Laya.Handler(this,function()
  148. {
  149. })},_duration,Laya.Ease.expoInOut,Laya.Handler.create(this,function()
  150. {
  151. tween.clear();
  152. if(hide)
  153. {
  154. afasafsafsfa.destroy();
  155. }
  156. if(_completeHandle)
  157. {
  158. _completeHandle.run();
  159. }
  160. }));
  161. if(hide)
  162. {
  163. Laya.Tween.to(afasafsafsfa,{alpha:0.4},500);
  164. }
  165. return afasafsafsfa;
  166. }
  167. //文字Tween动画
  168. public static StationTweenText(faafssfafsa:faafssfafsa,_hight:number,_completeHandle:Laya.Handler = null,hide = true,_duration:number = 500):Laya.Text
  169. {
  170. var afasafsafsfa = new Laya.Text();
  171. afasafsafsfa.width = faafssfafsa.size.x;
  172. afasafsafsfa.height = faafssfafsa.size.y;
  173. afasafsafsfa.align = "center";
  174. afasafsafsfa.valign = "middle";
  175. afasafsafsfa.font = "Microsoft YaHei";
  176. afasafsafsfa.fontSize = 50;
  177. afasafsafsfa.pivotX = afasafsafsfa.width/2;
  178. afasafsafsfa.pivotY = afasafsafsfa.height/2;
  179. afasafsafsfa.color = "#5ad122";
  180. afasafsafsfa.bold = true;
  181. afasafsafsfa.stroke = 5;
  182. afasafsafsfa.strokeColor = "#ffffff";
  183. if(faafssfafsa.color)
  184. {
  185. faafssfafsa.color = faafssfafsa.color;
  186. }
  187. afasafsafsfa.text = faafssfafsa.message;
  188. afasafsafsfa.zOrder = 1;
  189. Laya.stage.addChildAt(afasafsafsfa,Laya.stage.numChildren - 1);
  190. afasafsafsfa.pos(faafssfafsa.pos.x,faafssfafsa.pos.y);
  191. var tween = Laya.Tween.to(afasafsafsfa,{y:afasafsafsfa.y - _hight,update:new Laya.Handler(this,function()
  192. {
  193. })},_duration,Laya.Ease.expoInOut,Laya.Handler.create(this,function()
  194. {
  195. tween.clear();
  196. if(hide)
  197. {
  198. afasafsafsfa.destroy();
  199. }
  200. if(_completeHandle)
  201. {
  202. _completeHandle.run();
  203. }
  204. }));
  205. if(hide)
  206. {
  207. Laya.Tween.to(afasafsafsfa,{alpha:0.4},10000);
  208. }
  209. return afasafsafsfa;
  210. }
  211. static tweenMove(transform: Laya.Transform3D, targPos: Laya.Vector3, delay: number, ease: Function, complete: Laya.Handler): Laya.Tween {
  212. let curPos = transform.position.clone();
  213. return Laya.Tween.to(curPos, {
  214. x: targPos.x,
  215. y: targPos.y,
  216. z: targPos.z,
  217. update: new Laya.Handler(this, () => {
  218. transform.position = curPos.clone();
  219. })
  220. }, delay, ease, complete);
  221. }
  222. static tweenRotate(transform: Laya.Transform3D, targEuler: Laya.Vector3, delay: number, ease: Function, complete: Laya.Handler): Laya.Tween {
  223. let curEuler = transform.rotationEuler.clone();
  224. return Laya.Tween.to(curEuler, {
  225. x: targEuler.x,
  226. y: targEuler.y,
  227. z: targEuler.z,
  228. update: new Laya.Handler(this, () => {
  229. transform.rotationEuler = curEuler.clone();
  230. })
  231. }, delay, ease, complete);
  232. }
  233. }