@cc-component/cc-core 1.2.8 → 1.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/assets/core/config/CommonEnum.ts +8 -2
  2. package/assets/core/config/CommonEnum.ts.meta +1 -1
  3. package/assets/core/config/IConfig.ts +1 -1
  4. package/assets/core/config/IConfig.ts.meta +1 -1
  5. package/assets/core/config/LayerType.ts.meta +1 -1
  6. package/assets/core/config/LayerUI.ts +14 -12
  7. package/assets/core/config/LayerUI.ts.meta +1 -1
  8. package/assets/core/config.meta +1 -1
  9. package/assets/core/editor/LanguageManager.ts +5 -5
  10. package/assets/core/editor/LanguageManager.ts.meta +1 -1
  11. package/assets/core/editor/SpineRunner.ts.meta +1 -1
  12. package/assets/core/editor/i18nEditorComponent.ts +12 -12
  13. package/assets/core/editor/i18nEditorComponent.ts.meta +1 -1
  14. package/assets/core/editor.meta +1 -1
  15. package/assets/core/home/AudioUtil.ts +5 -11
  16. package/assets/core/home/AudioUtil.ts.meta +1 -1
  17. package/assets/core/home/BaseBoxView.ts +13 -16
  18. package/assets/core/home/BaseBoxView.ts.meta +1 -1
  19. package/assets/core/home/BaseLaunchComponent.ts.meta +1 -1
  20. package/assets/core/home/BaseLoading.ts +34 -18
  21. package/assets/core/home/BaseLoading.ts.meta +1 -1
  22. package/assets/core/home/BaseModuleConfig.ts +46 -0
  23. package/assets/core/home/{ProgessView.ts.meta → BaseModuleConfig.ts.meta} +9 -9
  24. package/assets/core/home/BaseSkeleton.ts +4 -4
  25. package/assets/core/home/BaseSkeleton.ts.meta +1 -1
  26. package/assets/core/home/CameraAngel.ts +41 -41
  27. package/assets/core/home/CameraAngel.ts.meta +1 -1
  28. package/assets/core/home/DouYinShow.ts +1 -1
  29. package/assets/core/home/DouYinShow.ts.meta +1 -1
  30. package/assets/core/home/EventManager.ts +2 -10
  31. package/assets/core/home/EventManager.ts.meta +1 -1
  32. package/assets/core/home/FollowCamera.ts +28 -29
  33. package/assets/core/home/FollowCamera.ts.meta +1 -1
  34. package/assets/core/home/InViewCenter.ts +1 -1
  35. package/assets/core/home/InViewCenter.ts.meta +1 -1
  36. package/assets/core/home/LoadingWindow.ts.meta +1 -1
  37. package/assets/core/home/ParabolaTween.ts.meta +1 -1
  38. package/assets/core/home/ProgessWindow.ts +109 -0
  39. package/assets/core/home/{ExView.ts.meta → ProgessWindow.ts.meta} +1 -1
  40. package/assets/core/home/Quaternion.ts.meta +1 -1
  41. package/assets/core/home/ResUtil.ts.meta +1 -1
  42. package/assets/core/home/ResourceManager.ts +13 -14
  43. package/assets/core/home/ResourceManager.ts.meta +1 -1
  44. package/assets/core/home/StateMachine.ts +9 -9
  45. package/assets/core/home/StateMachine.ts.meta +1 -1
  46. package/assets/core/home/StorageManager.ts +1 -1
  47. package/assets/core/home/StorageManager.ts.meta +1 -1
  48. package/assets/core/home/ThirdFreeLookCamera.ts +2 -2
  49. package/assets/core/home/ThirdFreeLookCamera.ts.meta +1 -1
  50. package/assets/core/home/TimeManager.ts +1 -1
  51. package/assets/core/home/TimeManager.ts.meta +1 -1
  52. package/assets/core/home/Tools.ts +209 -0
  53. package/assets/core/home/Tools.ts.meta +1 -1
  54. package/assets/core/home/util/EncryptUtil.ts.meta +1 -1
  55. package/assets/core/home/util/MathUtil.ts.meta +1 -1
  56. package/assets/core/home/util/Md5.ts.meta +1 -1
  57. package/assets/core/home/util/RandomUtil.ts +41 -41
  58. package/assets/core/home/util/RandomUtil.ts.meta +1 -1
  59. package/assets/core/home/util/ResUtil.ts.meta +1 -1
  60. package/assets/core/home/util/crypto-js.d.ts.meta +1 -1
  61. package/assets/core/home/util/crypto-js.js.meta +1 -1
  62. package/assets/core/home/util.meta +1 -1
  63. package/assets/core/home.meta +1 -1
  64. package/assets/core/interface/App.ts +545 -0
  65. package/assets/core/interface/{MainModule.ts.meta → App.ts.meta} +1 -1
  66. package/assets/core/interface/ISceneParam.ts.meta +1 -1
  67. package/assets/core/interface/Interface.ts +66 -77
  68. package/assets/core/interface/Interface.ts.meta +1 -1
  69. package/assets/core/interface.meta +1 -1
  70. package/assets/core/lib/language/Language.ts +3 -4
  71. package/assets/core/lib/language/Language.ts.meta +1 -1
  72. package/assets/core/lib/language/LanguageData.ts +4 -4
  73. package/assets/core/lib/language/LanguageData.ts.meta +1 -1
  74. package/assets/core/lib/language/LanguageLabel.ts +6 -6
  75. package/assets/core/lib/language/LanguageLabel.ts.meta +1 -1
  76. package/assets/core/lib/language/LanguagePack.ts +8 -9
  77. package/assets/core/lib/language/LanguagePack.ts.meta +1 -1
  78. package/assets/core/lib/language/LanguagePointLabel.ts.meta +1 -1
  79. package/assets/core/lib/language/LanguageSpine.ts +1 -1
  80. package/assets/core/lib/language/LanguageSpine.ts.meta +1 -1
  81. package/assets/core/lib/language/LanguageSprite.ts +7 -7
  82. package/assets/core/lib/language/LanguageSprite.ts.meta +1 -1
  83. package/assets/core/lib/language.meta +1 -1
  84. package/assets/core/lib/logger/ELoggerLevel.ts +0 -12
  85. package/assets/core/lib/logger/ELoggerLevel.ts.meta +1 -1
  86. package/assets/core/lib/logger/MLogger.ts +7 -8
  87. package/assets/core/lib/logger/MLogger.ts.meta +1 -1
  88. package/assets/core/lib/logger.meta +1 -1
  89. package/assets/core/lib/net/libs/proto/output/protobuf.d.ts.meta +1 -1
  90. package/assets/core/lib/net/libs/proto/output/protobuf.min.js.meta +1 -1
  91. package/assets/core/lib/net/libs/proto/output/protobuf_custom.d.ts.meta +1 -1
  92. package/assets/core/lib/net/libs/proto/output/protobuf_custom.js.meta +1 -1
  93. package/assets/core/lib/net/libs/proto/output.meta +1 -1
  94. package/assets/core/lib/net/libs/proto/source/Cmd.proto.meta +1 -1
  95. package/assets/core/lib/net/libs/proto/source/UserLogin.proto.meta +1 -1
  96. package/assets/core/lib/net/libs/proto/source/base.proto.meta +1 -1
  97. package/assets/core/lib/net/libs/proto/source/command.proto.meta +1 -1
  98. package/assets/core/lib/net/libs/proto/source/domain/boos_battle_info.proto.meta +1 -1
  99. package/assets/core/lib/net/libs/proto/source/domain/player_auth.proto.meta +1 -1
  100. package/assets/core/lib/net/libs/proto/source/domain.meta +1 -1
  101. package/assets/core/lib/net/libs/proto/source/message/game_push.proto.meta +1 -1
  102. package/assets/core/lib/net/libs/proto/source/message/game_request.proto.meta +1 -1
  103. package/assets/core/lib/net/libs/proto/source/message/game_response.proto.meta +1 -1
  104. package/assets/core/lib/net/libs/proto/source/message.meta +1 -1
  105. package/assets/core/lib/net/libs/proto/source/push/boss_battle_events.proto.meta +1 -1
  106. package/assets/core/lib/net/libs/proto/source/push.meta +1 -1
  107. package/assets/core/lib/net/libs/proto/source.meta +1 -1
  108. package/assets/core/lib/net/libs/proto.meta +1 -1
  109. package/assets/core/lib/net/libs.meta +1 -1
  110. package/assets/core/lib/net/net/HttpManager.ts +2 -2
  111. package/assets/core/lib/net/net/HttpManager.ts.meta +1 -1
  112. package/assets/core/lib/net/net/NetInterface.ts.meta +1 -1
  113. package/assets/core/lib/net/net/NetManager.ts.meta +1 -1
  114. package/assets/core/lib/net/net/NetNode.ts +16 -17
  115. package/assets/core/lib/net/net/NetNode.ts.meta +1 -1
  116. package/assets/core/lib/net/net/WebSock.ts +1 -2
  117. package/assets/core/lib/net/net/WebSock.ts.meta +1 -1
  118. package/assets/core/lib/net/net/custom/NetChannelManager.ts.meta +1 -1
  119. package/assets/core/lib/net/net/custom/NetConfig.ts.meta +1 -1
  120. package/assets/core/lib/net/net/custom/NetErrorCode.ts.meta +1 -1
  121. package/assets/core/lib/net/net/custom/NetGameTips.ts +8 -9
  122. package/assets/core/lib/net/net/custom/NetGameTips.ts.meta +1 -1
  123. package/assets/core/lib/net/net/custom/NetNodeGame.ts +1 -1
  124. package/assets/core/lib/net/net/custom/NetNodeGame.ts.meta +1 -1
  125. package/assets/core/lib/net/net/custom.meta +1 -1
  126. package/assets/core/lib/net/net/protocol/NetProtocolJson.ts.meta +1 -1
  127. package/assets/core/lib/net/net/protocol/NetProtocolProtobuf.ts.meta +1 -1
  128. package/assets/core/lib/net/net/protocol.meta +1 -1
  129. package/assets/core/lib/net/net.meta +1 -1
  130. package/assets/core/lib/net/prompt.meta +1 -1
  131. package/assets/core/lib/net.meta +1 -1
  132. package/assets/core/lib/old.meta +1 -1
  133. package/assets/core/lib/tabbar/TabBarComponent.ts.meta +1 -1
  134. package/assets/core/lib/tabbar/TabBarController.ts.meta +1 -1
  135. package/assets/core/lib/tabbar/TabBarItem.ts.meta +1 -1
  136. package/assets/core/lib/tabbar.meta +1 -1
  137. package/assets/core/lib.meta +1 -1
  138. package/assets/core.meta +1 -1
  139. package/assets.meta +1 -1
  140. package/index.ts +14 -0
  141. package/index.ts.meta +1 -1
  142. package/package.json +1 -1
  143. package/package.json.meta +1 -1
  144. package/assets/core/home/ExView.ts +0 -9
  145. package/assets/core/home/JsonUtil.ts +0 -102
  146. package/assets/core/home/JsonUtil.ts.meta +0 -9
  147. package/assets/core/home/ProgessView.ts +0 -96
  148. package/assets/core/home/prefabs.meta +0 -12
  149. package/assets/core/interface/MainModule.ts +0 -1019
  150. package/assets/core/lib/Logger.ts +0 -286
  151. package/assets/core/lib/Logger.ts.meta +0 -9
  152. package/assets/core/lib/old/VM2.ts +0 -619
  153. package/assets/core/lib/old/VM2.ts.meta +0 -9
  154. package/assets/core/lib/old/ViewModel.ts +0 -905
  155. package/assets/core/lib/old/ViewModel.ts.meta +0 -9
  156. package/assets/core/lib/old/ViewSearch.ts +0 -125
  157. package/assets/core/lib/old/ViewSearch.ts.meta +0 -9
@@ -77,12 +77,11 @@ export class ResourceManager {
77
77
  if (record) {
78
78
  let { asset } = record;
79
79
  record.refCount--;
80
- ResourceManager.instance.LogAssets(bundleName)
81
80
  if (record.refCount <= 0) {
82
81
  asset.decRef(); // 减少引用计数
83
82
  this.loadedAssets.delete(key);
84
-
85
83
  }
84
+ ResourceManager.instance.LogAssets(bundleName)
86
85
  }
87
86
  }
88
87
 
@@ -208,7 +207,7 @@ export class ResourceManager {
208
207
  list.push({ name: asset.name, refCount: asset.refCount })
209
208
  }
210
209
  });
211
- console.warn("资源计数:\n", list)
210
+ Logger.debug("资源计数:\n", list)
212
211
  }
213
212
 
214
213
  LogAssetsAll() {
@@ -229,10 +228,10 @@ export class ResourceManager {
229
228
  const { asset, refCount } = record;
230
229
  list.push({ bundle_name: record.bundleName, name: asset.name, refCount: refCount, refCountAsset: asset.refCount })
231
230
  });
232
- console.warn("资源计数:\n", Array.from(bundle_map.values()))
231
+ Logger.warn("资源计数:\n", Array.from(bundle_map.values()))
233
232
 
234
- console.warn("资源总数:", assetManager.assets.count)
235
- console.warn("资源总数:", assetManager.assets)
233
+ Logger.warn("资源总数:", assetManager.assets.count)
234
+ Logger.warn("资源总数:", assetManager.assets)
236
235
  }, 500)
237
236
 
238
237
  }
@@ -294,7 +293,7 @@ export class ResourceManager {
294
293
  let asset = bundle.get(path);
295
294
 
296
295
  if (asset) {
297
- //console.log('已加载==', asset.refCount)
296
+ //Logger.debug('已加载==', asset.refCount)
298
297
  // 记录加载的资源
299
298
  ResourceManager.instance.trackAsset(path, asset, bundleName);
300
299
  ResourceManager.instance.LogAssets(bundleName)
@@ -309,7 +308,7 @@ export class ResourceManager {
309
308
  resolve(null);
310
309
  return;
311
310
  }
312
- console.log('--加载', path)
311
+ Logger.debug('--加载', path)
313
312
  // 记录加载的资源
314
313
  ResourceManager.instance.trackAsset(path, asset, bundleName);
315
314
  ResourceManager.instance.LogAssets(bundleName)
@@ -335,7 +334,7 @@ export class ResourceManager {
335
334
  //加载bundle——预制体
336
335
  assetManager.loadBundle(name, (err, ab: AssetManager.Bundle) => {
337
336
  if (err) {
338
- console.warn(`bundle名称:${name} `, err);
337
+ Logger.warn(`bundle名称:${name} `, err);
339
338
  return;
340
339
  }
341
340
  resolve(ab);
@@ -358,7 +357,7 @@ export class ResourceManager {
358
357
 
359
358
  static async loadDir(bundleName: string, dirName: string, type: any, pre: Function) {
360
359
  return new Promise<void>(resolve => {
361
- //console.warn(bundleName, dirName)
360
+ //Logger.warn(bundleName, dirName)
362
361
 
363
362
  assetManager.getBundle(bundleName).loadDir(dirName, type, (finished: number, total: number, item: any) => {
364
363
  pre(Math.floor((finished / total * 100)));
@@ -366,7 +365,7 @@ export class ResourceManager {
366
365
  // 记录加载的资源
367
366
  assets.forEach(asset => {
368
367
  const asset_info: { uuid: string, path: string } = assetManager.getBundle(bundleName).getAssetInfo(asset.uuid) as { uuid: string, path: string }
369
- //console.warn(asset_info.path)
368
+ //Logger.warn(asset_info.path)
370
369
  ResourceManager.instance.trackAsset(asset_info.path, asset, bundleName);
371
370
  });
372
371
  resolve();
@@ -382,7 +381,7 @@ export class ResourceManager {
382
381
  static async loadScene(bundleName: string, name: string, pre: Function): Promise<SceneAsset> {
383
382
  var promise = new Promise<SceneAsset>(async resolve => {
384
383
  let bundle = assetManager.getBundle(bundleName)
385
- // console.warn("-111-加载c错了=", bun);
384
+ // Logger.warn("-111-加载c错了=", bun);
386
385
  if (!bundle) {
387
386
  bundle = await new Promise<any>(resolve => {
388
387
  assetManager.loadBundle(bundleName, (err, bundle) => {
@@ -395,7 +394,7 @@ export class ResourceManager {
395
394
  pre(Math.floor((finished / total * 100)));
396
395
  }, (err, prefab) => {
397
396
  if (err) {
398
- console.warn("--加载c错了=", bundleName, name, err);
397
+ Logger.warn("--加载c错了=", bundleName, name, err);
399
398
  }
400
399
  resolve(prefab);
401
400
  });
@@ -415,7 +414,7 @@ export class ResourceManager {
415
414
  pre(Math.floor((finished / total * 100)));
416
415
  }, (err) => {
417
416
  if (err) {
418
- console.warn("预加载c错了=", bundleName, name, err);
417
+ Logger.warn("预加载c错了=", bundleName, name, err);
419
418
  }
420
419
  resolve(null)
421
420
  });
@@ -2,7 +2,7 @@
2
2
  "ver": "4.0.24",
3
3
  "importer": "typescript",
4
4
  "imported": true,
5
- "uuid": "d08bdc4d-8ce1-4da2-a96f-f9dac911d36d",
5
+ "uuid": "d80f0e11-a0d7-4c73-b6e3-74d97b422e81",
6
6
  "files": [],
7
7
  "subMetas": {},
8
8
  "userData": {}
@@ -8,7 +8,7 @@ abstract class GameState {
8
8
  abstract enter(): void;
9
9
  abstract execute(): void;
10
10
  exit(): void {
11
- console.log(`${this.constructor.name} 状态退出`);
11
+ Logger.debug(`${this.constructor.name} 状态退出`);
12
12
  }
13
13
  }
14
14
  export interface IStateMachine {
@@ -50,27 +50,27 @@ export class GameController {
50
50
 
51
51
  // 具体状态类:开始游戏
52
52
  export class StartGameState extends GameState {
53
- enter() { console.log("进入游戏..."); }
53
+ enter() { Logger.debug("进入游戏..."); }
54
54
  execute() {
55
- console.log("准备开始游戏...");
55
+ Logger.debug("准备开始游戏...");
56
56
  setTimeout(() => this.delegate.next(), 1000); // 自动进入下一个状态
57
57
  }
58
58
  }
59
59
 
60
60
  // 具体状态类:游戏中
61
61
  export class InGameState extends GameState {
62
- enter() { console.log("进入游戏中..."); }
62
+ enter() { Logger.debug("进入游戏中..."); }
63
63
  execute() {
64
- console.log("正在游戏中...");
64
+ Logger.debug("正在游戏中...");
65
65
  setTimeout(() => this.delegate.next(), 1000);
66
66
  }
67
67
  }
68
68
 
69
69
  // 具体状态类:弹出选择框
70
70
  export class PopupState extends GameState {
71
- enter() { console.log("弹出选择框..."); }
71
+ enter() { Logger.debug("弹出选择框..."); }
72
72
  execute() {
73
- console.log("等待玩家选择...");
73
+ Logger.debug("等待玩家选择...");
74
74
  setTimeout(() => {
75
75
  const choice = prompt("请选择 (确认/取消): ");
76
76
  this.onUserChoice(choice || "取消");
@@ -88,6 +88,6 @@ export class PopupState extends GameState {
88
88
 
89
89
  // 具体状态类:结束游戏
90
90
  export class EndGameState extends GameState {
91
- enter() { console.log("游戏结束..."); }
92
- execute() { console.log("感谢您的游玩!"); }
91
+ enter() { Logger.debug("游戏结束..."); }
92
+ execute() { Logger.debug("感谢您的游玩!"); }
93
93
  }
@@ -2,7 +2,7 @@
2
2
  "ver": "4.0.24",
3
3
  "importer": "typescript",
4
4
  "imported": true,
5
- "uuid": "333715ab-606b-4338-bfa5-8764dee9f716",
5
+ "uuid": "7399c298-eb73-4c8c-8d59-31730f497d30",
6
6
  "files": [],
7
7
  "subMetas": {},
8
8
  "userData": {}
@@ -50,7 +50,7 @@ export class StorageManager {
50
50
  keywords = this.iss.encryptKey(keywords);
51
51
  }
52
52
  if (null == value) {
53
- console.warn("存储的值为空,则直接移除该存储");
53
+ Logger.warn("存储的值为空,则直接移除该存储");
54
54
  this.remove(key);
55
55
  return;
56
56
  }
@@ -2,7 +2,7 @@
2
2
  "ver": "4.0.24",
3
3
  "importer": "typescript",
4
4
  "imported": true,
5
- "uuid": "da09322d-e859-4255-ab7d-b9db782eabd8",
5
+ "uuid": "0f6e8669-aacb-4a68-b14d-f986ba6cdbdf",
6
6
  "files": [],
7
7
  "subMetas": {},
8
8
  "userData": {}
@@ -72,7 +72,7 @@ export class ThirdFreeLookCamera extends Component {
72
72
  isDown: boolean = false;
73
73
  private MouseDown(e: EventTouch) {
74
74
  this.isDown = true;
75
- console.log("点击");
75
+ Logger.debug("点击");
76
76
  }
77
77
 
78
78
  private MouseMove(e: EventTouch) {
@@ -181,7 +181,7 @@ export class ThirdFreeLookCamera extends Component {
181
181
  this.angle = Quaternion.GetEulerFromQuat(_quat);
182
182
  this.MouseX = this.angle.y;
183
183
  this.MouseY = this.angle.x;
184
- //console.log(this.MouseX.toFixed(2),this.MouseY.toFixed(2));
184
+ //Logger.debug(this.MouseX.toFixed(2),this.MouseY.toFixed(2));
185
185
  }
186
186
 
187
187
  /*************************FollowIndependentRotation end***************** */
@@ -2,7 +2,7 @@
2
2
  "ver": "4.0.24",
3
3
  "importer": "typescript",
4
4
  "imported": true,
5
- "uuid": "aa03e4e2-10b8-4c6b-8018-2c948e3526c3",
5
+ "uuid": "d40ebbee-d0b5-48b6-a557-565654ff519f",
6
6
  "files": [],
7
7
  "subMetas": {},
8
8
  "userData": {}
@@ -98,7 +98,7 @@ export class TimeManager {
98
98
  updateCountdownTime(key: string, minutes: number): boolean {
99
99
  const countdownInfo = this.countdowns.get(key);
100
100
  if (!countdownInfo) {
101
- console.warn(`倒计时 ${key} 不存在`);
101
+ Logger.warn(`倒计时 ${key} 不存在`);
102
102
  return false;
103
103
  }
104
104
 
@@ -2,7 +2,7 @@
2
2
  "ver": "4.0.24",
3
3
  "importer": "typescript",
4
4
  "imported": true,
5
- "uuid": "1d58f6af-af0a-43b0-9600-d0f6693ed342",
5
+ "uuid": "6f6edffa-6168-4819-953b-f6104aee89df",
6
6
  "files": [],
7
7
  "subMetas": {},
8
8
  "userData": {}
@@ -1,6 +1,9 @@
1
1
 
2
+ import { Vec3, v3 } from 'cc';
2
3
  import { Button, Toggle, PageView, ToggleContainer, EventHandler, js } from 'cc';
3
4
  import { _decorator, Component, Node } from 'cc';
5
+ import { BYTEDANCE } from 'cc/env';
6
+ import { ParabolaTween } from './ParabolaTween';
4
7
  const { ccclass, property } = _decorator;
5
8
 
6
9
  /**
@@ -35,6 +38,211 @@ export class Tools {
35
38
  }
36
39
  }
37
40
  }
41
+
42
+ //#region 工具
43
+ /**任务进度队列 */
44
+ static PromiseQueue<T>(promises: Promise<T>[], onProgress: (completed: number, total: number) => void): Promise<T[]> {
45
+ const total = promises.length;
46
+ let completed = 0;
47
+
48
+ // 包装每个 Promise,以便在完成时触发进度更新
49
+ const trackedPromises = promises.map(promise =>
50
+ promise.then(result => {
51
+ completed++;
52
+ onProgress(completed, total); // 更新进度
53
+ return result;
54
+ })
55
+ );
56
+
57
+ // 返回一个新的 Promise.all,确保所有任务完成后返回结果
58
+ return Promise.all(trackedPromises);
59
+ }
60
+
61
+ GetListPos(objectCount: number, circleRadius: number, startPos: Vec3) {
62
+ let list: Vec3[] = []
63
+ // 生成指定数量的物体,并按照圆形排列
64
+ for (let i = 0; i < objectCount; i++) {
65
+ // 计算每个物体在圆周上的角度
66
+ let angle = (i / objectCount) * 2 * Math.PI;
67
+
68
+ // 计算每个物体在圆周上的位置
69
+ let x = startPos.x + circleRadius * Math.cos(angle);
70
+ let z = startPos.z + circleRadius * Math.sin(angle);
71
+
72
+ // 创建物体
73
+ const pos = v3(x, 15, z);
74
+ list.push(pos)
75
+ }
76
+ return list
77
+ }
78
+
79
+ //抛物线
80
+ //计算贝塞尔曲线坐标函数
81
+ static twoBezier(k3, startPos, controlPos, endPos) {
82
+ let twoBezier = (t: number, p1: Vec3, cp: Vec3, p2: Vec3) => {
83
+ let x = (1 - t) * (1 - t) * p1.x + 2 * t * (1 - t) * cp.x + t * t * p2.x;
84
+ let y = (1 - t) * (1 - t) * p1.y + 2 * t * (1 - t) * cp.y + t * t * p2.y;
85
+ return new Vec3(x, y, 0);
86
+ };
87
+
88
+ let result_pos = twoBezier(k3, startPos, controlPos, endPos)
89
+ return result_pos
90
+ }
91
+ static customEaseOutInWithSpeed(t) {
92
+ let speedFactor = 0.6
93
+ if (t < 0.5) {
94
+ return 0.5 * Tools.customEaseOut(2 * t, speedFactor);
95
+ } else {
96
+ return 0.5 * Tools.customEaseIn(2 * t - 1, speedFactor) + 0.5;
97
+ }
98
+ }
99
+
100
+ static customEaseOut(t, speedFactor) {
101
+ return 1 - Math.pow(1 - t, 2 * speedFactor);
102
+ }
103
+
104
+ static customEaseIn(t, speedFactor) {
105
+ return Math.pow(t, 2 * speedFactor);
106
+ }
107
+
108
+ //检测碰撞
109
+ static Collision(box1: { x1: number, y1: number, x2: number, y2: number },
110
+ box2: { x1: number, y1: number, x2: number, y2: number }): boolean {
111
+ // 碰撞检测逻辑
112
+ return !(box1.x2 <= box2.x1 || box1.x1 >= box2.x2 ||
113
+ box1.y2 <= box2.y1 || box1.y1 >= box2.y2);
114
+ }
115
+
116
+ //朝向
117
+ static CalculateAngle(pointA: Vec3, pointB: Vec3): number {
118
+ // const dx = pointB.x - pointA.x;
119
+ // const dy = pointB.y - pointA.y;
120
+ // return Math.atan2(dy, dx) * (180 / Math.PI);
121
+
122
+ const dx = pointB.x - pointA.x;
123
+ const dy = pointB.y - pointA.y;
124
+ let angle = Math.atan2(dy, dx)
125
+ angle = angle * (180 / Math.PI);
126
+ return angle
127
+ }
128
+
129
+ static LookAtTarget(self: Vec3, target: Vec3) {
130
+ if (target == null) { return }
131
+ // //计算朝向
132
+ let angle = Tools.CalculateAngle(self, target);
133
+ //物体朝向
134
+ return v3(0, 0, angle);
135
+ }
136
+ /**向量的新的位置 */
137
+ static DirectionPosition(start: Vec3, endPos: Vec3, scalar: number) {
138
+ const direction = endPos.clone().subtract(start);
139
+ const pos = direction.normalize().multiplyScalar(scalar);
140
+ return pos
141
+ }
142
+
143
+ /**
144
+ * 开始抛物线缓动
145
+ * @param item 运动节点
146
+ * @param target_postion 目标位置
147
+ * @param update 更新 运动中回调
148
+ * @param offset_ratio 最高点 的偏移量
149
+ * @param time 动画时间
150
+ */
151
+ static RunParabolaTween(item: Node, target_postion: Vec3, update: (ratio: number) => void, param?: { offset_ratio?: number, is_random: boolean, time?: number, start_position?: Vec3 }) {
152
+ new ParabolaTween().RunParabolaTween(item, target_postion, update, param);
153
+ }
154
+
155
+ public static IsTT() {
156
+ if (BYTEDANCE) {
157
+ //@ts-ignore
158
+ const info = tt.getSystemInfoSync();
159
+ Logger.debug('-------抖音', info.appName);
160
+ const appName = info.appName;
161
+ if (appName.toUpperCase() === "DOUYIN") {//抖音
162
+ // do something
163
+ return true
164
+ }
165
+ else if (appName.toUpperCase() === "TOUTIAO") {//今日头条
166
+ // do something
167
+ }
168
+ else if (appName.toUpperCase() === "TOUTIAO_PRO") {//今日头条专业版
169
+ // do something
170
+ }
171
+ else if (appName.toUpperCase() === 'NEWS_ARTICLE_LITE') {//今日头条极速版
172
+ // do something
173
+ }
174
+ else if (appName.toUpperCase() === "DOUYIN_LITE") {//抖音极速版
175
+ // do something
176
+ return true
177
+ }
178
+ else if (appName.toUpperCase() === "LIVE_STREAM") {//抖音火山版
179
+ // do something
180
+ return true
181
+ }
182
+ else if (appName.toUpperCase() === "TIKTOK") {//TikTok
183
+ // do something
184
+ return true
185
+ }
186
+ else if (appName.toUpperCase() === "MUSICALLY") {//TikTok.M
187
+ // do something
188
+ return true
189
+ }
190
+ else if (appName.toUpperCase() === "XiGua") {//西瓜视频
191
+ // do something
192
+ }
193
+ else if (appName.toUpperCase() === "PPX") {//皮皮虾
194
+ // do something
195
+ }
196
+ else if (appName.toUpperCase() === "automobile") {//懂车帝
197
+ // do something
198
+ }
199
+ else if (appName.toUpperCase() === "DeliverManager") {//巨量
200
+ // do something
201
+ }
202
+ else if (appName.toUpperCase() === "Reading") {//番茄小说
203
+ // do something
204
+ }
205
+ else if (appName.toUpperCase() === "xiaohe") {//小河
206
+ // do something
207
+ }
208
+ return false
209
+ }
210
+ return false
211
+
212
+
213
+ }
214
+
215
+ //抖音排行榜数据
216
+ public static UpdatePlayerRankData_tt(count: number) {
217
+ const isdy = Tools.IsTT()
218
+ // console.error('抖音22==', isdy)
219
+ if (!isdy) { return }
220
+ // const playerLevel = MeCenter.Ins.player.playerLevel;
221
+ // const levelName = MeCenter.Ins.player.levelName;
222
+ // const levelScore = MeCenter.Ins.player.levelScore;
223
+ // const count = MeCenter.Ins.player.levelScore;
224
+ // const value = `【${levelName}】x${levelScore}星` + ' 大逃杀:' + count + '块'
225
+ const value = '【大逃杀】' + count + '块'
226
+
227
+ if (BYTEDANCE) {
228
+ //一个moba游戏,想要对用户的段位进行排序
229
+ //@ts-ignore
230
+ tt.setImRankData({
231
+ dataType: 1, //成绩为枚举类型,因为段位不是一个数字
232
+ value: value, //该用户段位为白银
233
+ priority: count, //dataType为 1,需要权重,该游戏排序为 青铜(1)、白银(2)、黄金(3)、王者(4),因此此处传2
234
+ extra: "extra",
235
+ zoneId: "default",
236
+ success(res) {
237
+ Logger.debug(`排行榜设置成功: ${res}`);
238
+ },
239
+ fail(res) {
240
+ Logger.debug(`排行榜设置失败: ${res.errMsg}`);
241
+ },
242
+ });
243
+ }
244
+
245
+ }
38
246
  }
39
247
 
40
248
 
@@ -100,4 +308,5 @@ export function BindEventClick(target: Node, delegate: Component, func_name?: st
100
308
  comp.clickEvents.push(clickEventHandler);
101
309
  //comp.clickEvents.push(clickEventHandler_sound);
102
310
  }
311
+
103
312
  }
@@ -2,7 +2,7 @@
2
2
  "ver": "4.0.24",
3
3
  "importer": "typescript",
4
4
  "imported": true,
5
- "uuid": "f4785e7e-5318-4dfd-b07c-e46baac7e500",
5
+ "uuid": "fc9303b4-32e1-47a8-b0eb-00c9335815c2",
6
6
  "files": [],
7
7
  "subMetas": {},
8
8
  "userData": {}
@@ -2,7 +2,7 @@
2
2
  "ver": "4.0.24",
3
3
  "importer": "typescript",
4
4
  "imported": true,
5
- "uuid": "5f7a4f0d-1802-46f7-a768-134a4d2b59e1",
5
+ "uuid": "0fd23b03-262c-4591-8a3b-6829d25e33de",
6
6
  "files": [],
7
7
  "subMetas": {},
8
8
  "userData": {
@@ -2,7 +2,7 @@
2
2
  "ver": "4.0.24",
3
3
  "importer": "typescript",
4
4
  "imported": true,
5
- "uuid": "fe43fb3e-c075-4b7d-81b9-759f9102019d",
5
+ "uuid": "8c72280a-de28-4ec4-92d8-8b91371d91ea",
6
6
  "files": [],
7
7
  "subMetas": {},
8
8
  "userData": {}
@@ -2,7 +2,7 @@
2
2
  "ver": "4.0.24",
3
3
  "importer": "typescript",
4
4
  "imported": true,
5
- "uuid": "bfee116d-9f34-419f-92cb-376c770a8609",
5
+ "uuid": "818766fa-8175-4b1b-a3eb-c832e5097553",
6
6
  "files": [],
7
7
  "subMetas": {},
8
8
  "userData": {
@@ -12,50 +12,50 @@
12
12
  */
13
13
 
14
14
 
15
- /**
16
- * 生成[0, max)的随机数
17
- * @param max
18
- * @returns
19
- */
20
- export function random(min: number, max?: number) {
21
- if (!max) {
22
- max = min;
23
- min = 0;
24
- }
25
- return min + Math.random() * (max - min);
15
+ /**
16
+ * 生成[0, max)的随机数
17
+ * @param max
18
+ * @returns
19
+ */
20
+ export function random(min: number, max?: number) {
21
+ if (!max) {
22
+ max = min;
23
+ min = 0;
26
24
  }
25
+ return min + Math.random() * (max - min);
26
+ }
27
27
 
28
- /**
29
- * 生成[0, max)的随机整数
30
- * @param max
31
- * @returns
32
- */
33
- export function randomInt(min: number, max?: number) {
34
- return Math.floor(random(min, max));
28
+ /**
29
+ * 生成[0, max)的随机整数
30
+ * @param max
31
+ * @returns
32
+ */
33
+ export function randomInt(min: number, max?: number) {
34
+ return Math.floor(random(min, max));
35
+ }
36
+ /**
37
+ * 从数组中随机取出不重复的元素
38
+ * @param array 原始数组
39
+ * @param count 要取的元素个数
40
+ * @returns 随机不重复的元素数组
41
+ */
42
+ export function randomUniqueElements<T>(array: T[], count: number): T[] {
43
+ // 如果请求的元素数量大于数组长度,则警告并限制为数组长度
44
+ if (count > array.length) {
45
+ Logger.warn('请求的元素数量大于数组长度,将返回全部元素');
46
+ count = array.length;
35
47
  }
36
- /**
37
- * 从数组中随机取出不重复的元素
38
- * @param array 原始数组
39
- * @param count 要取的元素个数
40
- * @returns 随机不重复的元素数组
41
- */
42
- export function randomUniqueElements<T>(array: T[], count: number): T[] {
43
- // 如果请求的元素数量大于数组长度,则警告并限制为数组长度
44
- if (count > array.length) {
45
- console.warn('请求的元素数量大于数组长度,将返回全部元素');
46
- count = array.length;
47
- }
48
-
49
- // 创建数组副本,避免修改原始数组
50
- const copy = [...array];
51
- const result: T[] = [];
52
48
 
53
- // 使用 Fisher-Yates 洗牌算法打乱数组顺序
54
- for (let i = copy.length - 1; i > 0; i--) {
55
- const j = Math.floor(Math.random() * (i + 1));
56
- [copy[i], copy[j]] = [copy[j], copy[i]];
57
- }
49
+ // 创建数组副本,避免修改原始数组
50
+ const copy = [...array];
51
+ const result: T[] = [];
58
52
 
59
- // 返回打乱后的数组中前 count 个元素
60
- return copy.slice(0, count);
53
+ // 使用 Fisher-Yates 洗牌算法打乱数组顺序
54
+ for (let i = copy.length - 1; i > 0; i--) {
55
+ const j = Math.floor(Math.random() * (i + 1));
56
+ [copy[i], copy[j]] = [copy[j], copy[i]];
61
57
  }
58
+
59
+ // 返回打乱后的数组中前 count 个元素
60
+ return copy.slice(0, count);
61
+ }
@@ -2,7 +2,7 @@
2
2
  "ver": "4.0.24",
3
3
  "importer": "typescript",
4
4
  "imported": true,
5
- "uuid": "a22df3fb-75ed-49d7-9d67-ea0c763d3f58",
5
+ "uuid": "3dfba33d-fe1f-4b1e-920b-e9275d91087a",
6
6
  "files": [],
7
7
  "subMetas": {},
8
8
  "userData": {}
@@ -2,7 +2,7 @@
2
2
  "ver": "4.0.24",
3
3
  "importer": "typescript",
4
4
  "imported": true,
5
- "uuid": "ab0ad09c-33f5-4cd0-94b4-9f5698cc3fb4",
5
+ "uuid": "a56c00eb-b2ed-4b1f-a502-4701170dae40",
6
6
  "files": [],
7
7
  "subMetas": {},
8
8
  "userData": {}
@@ -2,7 +2,7 @@
2
2
  "ver": "4.0.24",
3
3
  "importer": "typescript",
4
4
  "imported": true,
5
- "uuid": "d8b99ef1-3af7-44cf-a14b-f8888d3aa669",
5
+ "uuid": "d481e7e0-f86c-4610-a6d4-1a942c713d8a",
6
6
  "files": [],
7
7
  "subMetas": {},
8
8
  "userData": {
@@ -2,7 +2,7 @@
2
2
  "ver": "4.0.24",
3
3
  "importer": "javascript",
4
4
  "imported": true,
5
- "uuid": "9c6741c3-5fa2-4e02-8d7c-81055fc2b3f6",
5
+ "uuid": "c1103f83-058e-40ca-8c1c-c6605dc8fb9f",
6
6
  "files": [],
7
7
  "subMetas": {},
8
8
  "userData": {}
@@ -2,7 +2,7 @@
2
2
  "ver": "1.2.0",
3
3
  "importer": "directory",
4
4
  "imported": true,
5
- "uuid": "c56bcaf9-0d58-4e9e-8136-fe0a38b95ac6",
5
+ "uuid": "99f8a5d8-c09f-4118-b4d0-a92a14d3a781",
6
6
  "files": [],
7
7
  "subMetas": {},
8
8
  "userData": {