test_energy_system.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. /**
  2. * 能量条经验值系统测试脚本
  3. * 用于验证新的能量条升级配置是否正确加载和应用
  4. */
  5. console.log('=== 能量条经验值系统测试 ===');
  6. // 测试1: 检查关卡配置中的能量条配置
  7. function testLevelEnergyConfig() {
  8. console.log('\n1. 测试关卡配置中的能量条配置:');
  9. // 测试加载Level1配置
  10. cc.resources.load('data/levels/Level1', cc.JsonAsset, (err, asset) => {
  11. if (err) {
  12. console.error('❌ Level1配置加载失败:', err);
  13. return;
  14. }
  15. const config = asset.json;
  16. console.log('✓ Level1配置加载成功');
  17. // 检查levelSettings
  18. if (config.levelSettings) {
  19. console.log('✓ levelSettings存在');
  20. // 检查能量相关配置
  21. if (config.levelSettings.energyMax) {
  22. console.log(`✓ energyMax: ${config.levelSettings.energyMax}`);
  23. } else {
  24. console.error('❌ energyMax配置缺失');
  25. }
  26. if (config.levelSettings.energyExpValues) {
  27. console.log(`✓ energyExpValues配置存在,长度: ${config.levelSettings.energyExpValues.length}`);
  28. console.log(` 前5个值: [${config.levelSettings.energyExpValues.slice(0, 5).join(', ')}]`);
  29. } else {
  30. console.error('❌ energyExpValues配置缺失');
  31. }
  32. if (config.levelSettings.energyMaxUpgrades) {
  33. console.log(`✓ energyMaxUpgrades配置存在,长度: ${config.levelSettings.energyMaxUpgrades.length}`);
  34. console.log(` 前5个值: [${config.levelSettings.energyMaxUpgrades.slice(0, 5).join(', ')}]`);
  35. } else {
  36. console.error('❌ energyMaxUpgrades配置缺失');
  37. }
  38. } else {
  39. console.error('❌ levelSettings配置缺失');
  40. }
  41. });
  42. }
  43. // 测试2: 检查IN_game组件的能量系统属性
  44. function testInGameEnergySystem() {
  45. console.log('\n2. 测试IN_game组件的能量系统属性:');
  46. // 查找IN_game节点
  47. const gameManagerNode = cc.find('GameManager');
  48. if (!gameManagerNode) {
  49. console.error('❌ GameManager节点未找到');
  50. return;
  51. }
  52. const inGameComponent = gameManagerNode.getComponent('IN_game');
  53. if (!inGameComponent) {
  54. console.error('❌ IN_game组件未找到');
  55. return;
  56. }
  57. console.log('✓ IN_game组件找到');
  58. // 检查新增的属性(通过反射访问私有属性)
  59. try {
  60. const energyUpgradeCount = inGameComponent['energyUpgradeCount'];
  61. const energyExpValues = inGameComponent['energyExpValues'];
  62. const energyMaxUpgrades = inGameComponent['energyMaxUpgrades'];
  63. const currentEnergyExpRequired = inGameComponent['currentEnergyExpRequired'];
  64. console.log(`✓ energyUpgradeCount: ${energyUpgradeCount}`);
  65. console.log(`✓ energyExpValues长度: ${energyExpValues ? energyExpValues.length : '未定义'}`);
  66. console.log(`✓ energyMaxUpgrades长度: ${energyMaxUpgrades ? energyMaxUpgrades.length : '未定义'}`);
  67. console.log(`✓ currentEnergyExpRequired: ${currentEnergyExpRequired}`);
  68. if (energyExpValues && energyExpValues.length > 0) {
  69. console.log(` energyExpValues前5个值: [${energyExpValues.slice(0, 5).join(', ')}]`);
  70. }
  71. if (energyMaxUpgrades && energyMaxUpgrades.length > 0) {
  72. console.log(` energyMaxUpgrades前5个值: [${energyMaxUpgrades.slice(0, 5).join(', ')}]`);
  73. }
  74. } catch (e) {
  75. console.error('❌ 访问IN_game组件属性失败:', e);
  76. }
  77. }
  78. // 测试3: 模拟能量系统升级流程
  79. function testEnergyUpgradeFlow() {
  80. console.log('\n3. 测试能量系统升级流程:');
  81. const gameManagerNode = cc.find('GameManager');
  82. if (!gameManagerNode) {
  83. console.error('❌ GameManager节点未找到');
  84. return;
  85. }
  86. const inGameComponent = gameManagerNode.getComponent('IN_game');
  87. if (!inGameComponent) {
  88. console.error('❌ IN_game组件未找到');
  89. return;
  90. }
  91. try {
  92. // 获取当前状态
  93. const initialEnergyPoints = inGameComponent['energyPoints'];
  94. const initialEnergyMax = inGameComponent['energyMax'];
  95. const initialUpgradeCount = inGameComponent['energyUpgradeCount'];
  96. const initialExpRequired = inGameComponent['currentEnergyExpRequired'];
  97. console.log('初始状态:');
  98. console.log(` 能量值: ${initialEnergyPoints}`);
  99. console.log(` 能量最大值: ${initialEnergyMax}`);
  100. console.log(` 升级次数: ${initialUpgradeCount}`);
  101. console.log(` 当前需要经验值: ${initialExpRequired}`);
  102. // 模拟增加能量到满
  103. console.log('\n模拟能量增加到满:');
  104. for (let i = 0; i < initialExpRequired; i++) {
  105. if (inGameComponent.incrementEnergy) {
  106. inGameComponent.incrementEnergy(1);
  107. }
  108. }
  109. // 检查升级后状态
  110. setTimeout(() => {
  111. const newEnergyPoints = inGameComponent['energyPoints'];
  112. const newEnergyMax = inGameComponent['energyMax'];
  113. const newUpgradeCount = inGameComponent['energyUpgradeCount'];
  114. const newExpRequired = inGameComponent['currentEnergyExpRequired'];
  115. console.log('升级后状态:');
  116. console.log(` 能量值: ${newEnergyPoints}`);
  117. console.log(` 能量最大值: ${newEnergyMax}`);
  118. console.log(` 升级次数: ${newUpgradeCount}`);
  119. console.log(` 当前需要经验值: ${newExpRequired}`);
  120. if (newUpgradeCount > initialUpgradeCount) {
  121. console.log('✓ 能量系统升级成功!');
  122. } else {
  123. console.error('❌ 能量系统升级失败');
  124. }
  125. }, 100);
  126. } catch (e) {
  127. console.error('❌ 能量升级流程测试失败:', e);
  128. }
  129. }
  130. // 执行所有测试
  131. function runAllTests() {
  132. console.log('开始执行能量条经验值系统测试...');
  133. testLevelEnergyConfig();
  134. setTimeout(() => {
  135. testInGameEnergySystem();
  136. }, 1000);
  137. setTimeout(() => {
  138. testEnergyUpgradeFlow();
  139. }, 2000);
  140. setTimeout(() => {
  141. console.log('\n=== 测试完成 ===');
  142. }, 3000);
  143. }
  144. // 如果在Cocos Creator环境中运行
  145. if (typeof cc !== 'undefined') {
  146. runAllTests();
  147. } else {
  148. console.log('请在Cocos Creator控制台中运行此脚本');
  149. }