同步操作将从 王广帅/GameExcelTool 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
在游戏开发中,游戏的数值策划一般使用Excel工具配置游戏中使用到的数据,这样可以方便的对游戏数据进行调整和测试。但是在程序中,为了性能的优化,程序不能直接读取Excel文件获取数据。而是使用工具将Excel数据结构转化为程序中用到的对象,Excel数据转化为Json数据,这样,在游戏客户端或服务器启动的时候,就可以直接读取JSON文件,将数据加载到内存之中。这样也方便游戏数据的动态更新。
本项目使用IDEA工具开发,注意,在将项目导入到IDEA之后,如果发现代码的中文注释变成了乱码,需要把IDEA的Project编码设置为UTF-8
GameExcelTool 工具项目就是这样一个工具,它可以将数值策划配置的数据转化程序需要的对象和数据JSON文件。
在配置Excel表的时候,有些数据只有客户端会使用到,有些数据只有服务器会使用到,另外一些数据是服务器和客户端都会使用到,所以需要让Excel的配置者可以灵活的控制哪些数据只有服务器使用,哪些数据只有客户端使用,哪些数据是服务器和客户端都使用到的数据。这样在游戏服务器或客户端启动的时候,可以选择性的只加载自己使用到的数据,这样可以减少数据的加载,减少内存的占用。
所以可以做以下约定:
在Excel表头中配置c或s,c 表示只有客户端使用,s 表示只有服务器使用,cs表示客户端与服务端都使用。
package com.xinyue.dataconfig;
import com.xinyue.exceltool.logic.codeclass.javacode.IDataConfig;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONArray;
/**
* @Author 王广帅 QQ群:66728073
*/
public class ItemConfig implements IDataConfig {
private String id;
private String name;
private int days;
private int[] test1;
private String[] test2;
private JSONObject test3;
private JSONArray test4;
/**
*
*/
public String getId(){
return id;
}
/**
* 名字
*/
public String getName(){
return name;
}
/**
*
*/
public int getDays(){
return days;
}
/**
* 测试字段1
*/
public int[] getTest1(){
return test1;
}
/**
* 测试字段2
*/
public String[] getTest2(){
return test2;
}
/**
* 测试字段3
*/
public JSONObject getTest3(){
return test3;
}
/**
* 测试字段4
*/
public JSONArray getTest4(){
return test4;
}
}
根据自己的业务和开发环境需要发,可以在applacation.yml中修改配置实现自己的需求,配置对应的类为:
package com.xinyue.exceltool.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "xinyue.config")
public class ExcelToolConfig {
/**
* excel 文件所在的目录路径,默认是:config/excel
*/
private String excelFilePath = "config/excel";
/**
* 生成的服务端的配置类目录路径,默认是:config/server_class
*/
private String serverClassPath = "config/server_class";
/**
* 生成的客户端的配置类目录路径,默认是:config/client_class
*/
private String clientClassPath = "config/client_class";
/**
* 生成的服务端的配置数据目录路径,默认是:config/server_data
*/
private String serverDataPath = "config/server_data";
/**
* 生成的客户端配置数据目录路径,默认是:config/client_data;
*/
private String clientDataPath = "config/client_data";
/**
* 是否生成服务端代码和数据
*/
private boolean serverEnable = true;
/**
* 生成的Java代码的包路径
*/
private String javaClassPackage = "com.xinyue.dataconfig";
/**
* 是否生成客户端代码和数据
*/
private boolean clientEnable = true;
/**
* 读取Excel数据时,达到多少条时会刷新到json文件之中
*/
private int dataFlushThreshold = 3000;
//省略了getter setter方法
}
mvn clean package
在target/目录下面获得可以运行的jar包:GameExcelTool-0.0.1-SNAPSHOT.jar
把可运行的jar包(GameExcelTool-0.0.1-SNAPSHOT.jar)和config目录放在同一目录下运行:
java -jar GameExcelTool-0.0.1-SNAPSHOT.jar
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。