generate_enemies.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. 直接生成enemies.json文件的脚本
  5. """
  6. import sys
  7. import os
  8. import json
  9. from pathlib import Path
  10. # 添加当前目录到Python路径
  11. sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
  12. from config_manager import ConfigManagerGUI
  13. def generate_enemies_json():
  14. """直接生成enemies.json文件"""
  15. try:
  16. print("开始生成enemies.json文件...")
  17. # 创建配置管理器实例
  18. config_manager = ConfigManagerGUI()
  19. # 设置文件路径
  20. excel_file = "D:/CocosGame/Pong/assets/resources/data/excel/敌人配置表.xlsx"
  21. json_output = "D:/CocosGame/Pong/assets/resources/data/enemies.json"
  22. print(f"Excel文件: {excel_file}")
  23. print(f"输出文件: {json_output}")
  24. # 读取Excel配置
  25. config_data = config_manager.read_excel_config(excel_file)
  26. if not config_data:
  27. print("❌ 无法读取Excel配置数据")
  28. return False
  29. print(f"✅ 成功读取配置数据,包含 {len(config_data)} 个工作表")
  30. # 解析敌人多工作表数据
  31. filename = Path(excel_file).stem
  32. enemies_data = config_manager.parse_enemy_multi_sheet_data(config_data, filename)
  33. if not enemies_data:
  34. print("❌ 无法解析敌人配置数据")
  35. return False
  36. print(f"✅ 成功解析敌人数据,包含 {len(enemies_data)} 个敌人")
  37. # 检查normal_zombie的攻击伤害
  38. for enemy in enemies_data:
  39. if enemy.get('id') == 'normal_zombie':
  40. print(f"🔍 normal_zombie攻击伤害: {enemy.get('attackDamage')}")
  41. break
  42. # 确保输出目录存在
  43. output_path = Path(json_output)
  44. output_path.parent.mkdir(parents=True, exist_ok=True)
  45. # 写入JSON文件
  46. with open(json_output, 'w', encoding='utf-8') as f:
  47. json.dump(enemies_data, f, ensure_ascii=False, indent=2)
  48. print(f"✅ 成功生成 {json_output}")
  49. return True
  50. except Exception as e:
  51. import traceback
  52. print(f"❌ 生成失败: {e}")
  53. print("详细错误信息:")
  54. print(traceback.format_exc())
  55. return False
  56. if __name__ == "__main__":
  57. success = generate_enemies_json()
  58. if success:
  59. print("\n🎉 enemies.json文件生成成功!")
  60. else:
  61. print("\n💥 enemies.json文件生成失败!")
  62. input("\n按回车键退出...")