1.思路,libgdx的文件加载位置 分为 Internal Files(内部 可读)和 Local Files(本地 可读写) 还有External Files外部文件(可读写)
2.在游戏加载时在本地生成一个配置文件,玩家可以通过修改配置文件 来修改 内部文件的读取位置.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <mods useId="0" fontIsOriginal="false" strIsOriginal="false" supportLanguage="0"> <!--useId 正在使用的资源,useId请按顺序填写 fontIsOriginal ,strIsOriginal,为true或useId为0则读取原版,否则从mod文件夹对应位置中读取--> <mod id="0" name="yb" > <file id="0" name="CONFIG_RES" path="config/config_res.xml"/> <file id="1" name="CONFIG_LAYOUT" path="config/config_layout.xml"/> <file id="2" name="DEF_AGE" path="config/def_age.xml"/> <file id="3" name="DEF_AREA" path="config/def_area.xml"/> <file id="4" name="DEF_ARMY" path="config/def_army.xml"/> <file id="5" name="DEF_ARRAY" path="config/def_array.xml"/> <file id="6" name="DEF_BATTLE" path="config/def_battle.xml"/> <file id="7" name="DEF_CAPITAL" path="config/def_capital.xml"/> <file id="8" name="DEF_CARD" path="config/def_card.xml"/> <file id="9" name="DEF_COUNTRY" path="config/def_country.xml"/> <file id="10" name="DEF_EVENT" path="config/def_event.xml"/> <file id="11" name="DEF_FACILITY" path="config/def_facility.xml"/> <file id="12" name="DEF_GENERAL" path="config/def_general.xml"/> <file id="13" name="DEF_RGENERAL" path="config/def_rgeneral.xml"/> <file id="14" name="DEF_HISTORY" path="config/def_history.xml"/> <file id="15" name="DEF_MAP" path="config/def_map.xml"/> <file id="16" name="DEF_SMALLMAP" path="config/def_smallmap.xml"/> <file id="17" name="DEF_STAGE" path="config/def_stage.xml"/> <file id="18" name="DEF_TERRAIN" path="config/def_terrain.xml"/> <file id="19" name="DEF_TERRAINIMG" path="config/def_terrainimg.xml"/> <file id="20" name="DEF_WEAPON" path="config/def_weapon.xml"/> <file id="21" name="DEF_WEATHER" path="config/def_weather.xml"/> <file id="22" name="DEF_RDIALOGUE" path="config/def_rdialogue.xml"/> <file id="23" name="DEF_MODEL" path="config/def_model.xml"/> <file id="24" name="DEF_REVENT" path="config/def_revent.xml"/> <file id="25" name="DEF_LEGIONFEATURE" path="config/def_legionfeature.xml"/> <file id="26" name="DEF_BUFF" path="config/def_buff.xml"/>1 <file id="27" name="DEF_HBUFF" path="config/def_hbuff.xml"/> <file id="28" name="DEF_ANIMATION" path="config/def_animation.xml"/> <file id="29" name="DEF_RTASK" path="config/def_rtask.xml"/> </mod> <mod id="1" name="cs"> <file id="0" name="CONFIG_RES" path="config/config_res.xml"/> <file id="1" name="CONFIG_LAYOUT" path="config/config_layout.xml"/> <file id="8" name="DEF_CARD" path="config/def_card.xml"/> </mod> </mods>
如上图,存于Internal位置,加载游戏时检查本地是否存在,不存在就在本地 copy一个.然后读取copy出来的.
useId="0" 代表当前使用的mod
fontIsOriginal="false" 文字是否要读取mod中的文件
strIsOriginal="false" 国际化语言文件是否要读取mod中的文件
supportLanguage="0" 当前读取的mod支持的语言类型
当useId改为1时,
CONFIG_RES,
CONFIG_LAYOUT,
DEF_CARD三个文件就会读取mod下的该文件,没有会自动复制内部到该位置保证游戏不会出错.
增加对mod的支持,可以在将来设想的网络在线更新 中 动态替换 游戏内容,来保证玩家不用重复下载.
我将来还会慢慢完善这部分.