| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- 直接生成enemies.json文件的脚本
- """
- import sys
- import os
- import json
- from pathlib import Path
- # 添加当前目录到Python路径
- sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
- from config_manager import ConfigManagerGUI
- def generate_enemies_json():
- """直接生成enemies.json文件"""
- try:
- print("开始生成enemies.json文件...")
-
- # 创建配置管理器实例
- config_manager = ConfigManagerGUI()
-
- # 设置文件路径
- excel_file = "D:/CocosGame/Pong/assets/resources/data/excel/敌人配置表.xlsx"
- json_output = "D:/CocosGame/Pong/assets/resources/data/enemies.json"
-
- print(f"Excel文件: {excel_file}")
- print(f"输出文件: {json_output}")
-
- # 读取Excel配置
- config_data = config_manager.read_excel_config(excel_file)
- if not config_data:
- print("❌ 无法读取Excel配置数据")
- return False
-
- print(f"✅ 成功读取配置数据,包含 {len(config_data)} 个工作表")
-
- # 解析敌人多工作表数据
- filename = Path(excel_file).stem
- enemies_data = config_manager.parse_enemy_multi_sheet_data(config_data, filename)
-
- if not enemies_data:
- print("❌ 无法解析敌人配置数据")
- return False
-
- print(f"✅ 成功解析敌人数据,包含 {len(enemies_data)} 个敌人")
-
- # 检查normal_zombie的攻击伤害
- for enemy in enemies_data:
- if enemy.get('id') == 'normal_zombie':
- print(f"🔍 normal_zombie攻击伤害: {enemy.get('attackDamage')}")
- break
-
- # 确保输出目录存在
- output_path = Path(json_output)
- output_path.parent.mkdir(parents=True, exist_ok=True)
-
- # 写入JSON文件
- with open(json_output, 'w', encoding='utf-8') as f:
- json.dump(enemies_data, f, ensure_ascii=False, indent=2)
-
- print(f"✅ 成功生成 {json_output}")
- return True
-
- except Exception as e:
- import traceback
- print(f"❌ 生成失败: {e}")
- print("详细错误信息:")
- print(traceback.format_exc())
- return False
- if __name__ == "__main__":
- success = generate_enemies_json()
- if success:
- print("\n🎉 enemies.json文件生成成功!")
- else:
- print("\n💥 enemies.json文件生成失败!")
- input("\n按回车键退出...")
|