其他分享
首页 > 其他分享> > 27 给游戏做个mod功能

27 给游戏做个mod功能

作者:互联网

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的支持,可以在将来设想的网络在线更新 中 动态替换 游戏内容,来保证玩家不用重复下载.

我将来还会慢慢完善这部分.

标签:Files,文件,27,游戏,做个,加载,mod,读取
来源: https://www.cnblogs.com/tysk/p/13975225.html