`
vlinux
  • 浏览: 53409 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

《热血传奇》wix、wil文件解析Java实现

阅读更多

解析的教程在网络上一抓一大把,我都分不清那个是原创了。不过有一点肯定的是,目前都没有Java版本,恩恩:),处于好奇,我稍稍用Java写了一个以供消遣。

 

写的过程中发现,其实教程有部分是错误的。而且很多地方也描述的不够详细,让我在实现的过程中走了不少弯路。还好有TC256编程的功底HOHO。

 

Wix文件格式说明

传奇的wix文件是索引文件,里面指出了图片素材的起始位置。

byte[44]是固定的头文件,网络上的教程都一律写成40个字节,实际上应该是44个。

byte[4]图片数量,低位在前,我在CommonUtil.bytesToInt的方法中实现了低位高位的转换,并且转成Java的整数输出

byte[?][4]这是一个二维数组,里面存储了每张图片在对应的wil文件中的起始位置。

remeber:起始位置是在wix中定义的,别妄想直接在wil文件中按照顺序弄出来,会吃闭门羹的。

 

Wil文件格式说明

byte[44]固定头文件

byte[12]应该是控制Frame播放的速度、是否重复之类的信息的,和我们无关

byte[1024]BMP中最重要的调色板实际上应该是byte[256][4]

-------以上是Wil文件头的固定格式,从下边开始则是每张位图的数据,位图的开始是在Wix中定义的---------

byte[2]宽度

byte[2]高度

byte[4]位图数据起始标志

byte[?]位图数据,大小为width * height

 

原图是8BIT的位图数据。为了减轻在Android上的开发负担,我擅自决定:解析时将其作为为背景透明的PNG图片文件格式,不喜者可以注释掉相关代码。

 

				// ---------- 增加下面的代码使得背景透明 -----------------
				image = g2d.getDeviceConfiguration().createCompatibleImage(
						width, height, Transparency.TRANSLUCENT);
				g2d.dispose();
				g2d = image.createGraphics();
				// ---------- 背景透明代码结束 -----------------
 

 

主要的格式说明就这些,具体的请看代码。代码在附件中,与此同时,我还提供了《热血传奇》的wix和wil文件。

 

太困了,睡觉....

分享到:
评论
9 楼 langwenai 2017-11-26  
没学过Java
8 楼 langwenai 2017-11-26  
用什么工具执行这Mir2Tools  我不会用 能教下我吗
7 楼 大器晚成 2011-04-10  
楼主知道技能光效的半透明怎么处理吗 
6 楼 aolongxue 2011-01-09  
楼主的代码只能解析8位的wil,如npc.wil
但16位的如items.wil则会显示颜色错误,

貌似是调色板错误,格式没错
5 楼 aolongxue 2011-01-09  
楼主的代码只能解析8位的wil,如npc.wil
但16位的如items.wil则会显示颜色错误,

貌似是调色板错误,格式没错
4 楼 vlinux 2010-10-14  
大器晚成 写道
非常感谢  我也想做这样的游戏 不知你现在做的怎么样了

没再做了,毕竟精力太有限了
3 楼 大器晚成 2010-10-11  
非常感谢  我也想做这样的游戏 不知你现在做的怎么样了
2 楼 vlinux 2010-07-30  
res |= temp
就是将res和temp进行或操作,然后将结果赋给res

    /**
     * 二进制转换整数(支持倒序)
     * @param bytes
     * @param reverse
     * @return
     */
    public static int bytesToInt(byte[] bytes, boolean reverse) {

        if( reverse ) {
            //倒序
            byte[] revBytes = new byte[bytes.length];
            for( int i=0; i<bytes.length; i++ ) {
                revBytes[bytes.length-i-1] = bytes[i];
            }//for
            bytes = revBytes;
        }//if

        int mask = 0xff;
        int temp = 0;
        int res = 0;
        for (int i = 0; i < bytes.length; i++) {
            res <<= 8;
            temp = bytes[i] & mask;
            res |= temp;
        }//for
        return res;
    }


这个方法当时是胡乱写的,你就不要太纠结了。现在看过去满目的错误逻辑
1 楼 imshare 2010-07-30  
请问LZ这句代码是什么意思?"res |= temp;"

相关推荐

    wix打包教程(英文版)

    下面将对WiX及其相关知识点进行深入解析。 **1. WiX简介** WiX,全称Windows Installer XML,是一个创建Microsoft Windows安装程序的XML编程语言。它允许开发者通过XML格式定义安装过程中的各种元素,如文件复制、...

    WIS和WIL编辑工具

    WIL文件则与WiX(Windows Installer XML)工具有关,WiX是一个开源工具集,用于创建Windows Installer MSI(Microsoft Installer)包。WIL文件是WiX项目的库文件,其中包含了一系列预定义的XML元素和属性,用于简化...

    打开wixproj类型文件必备工具wix311.exe(附:vs2013对应扩展包)

    标题提到的“wixproj”是WiX项目文件的扩展名,用于定义安装包的组件、文件、注册表项等信息。在Visual Studio中,你需要特定的扩展支持来正确地打开和编辑这类文件。 "打开wixproj类型文件必备工具wix311.exe" 是...

    WIX3.5--WIX3.7安装包

    - WiX 3.7的二进制文件,如 candle.exe(编译器)和 light.exe(链接器),用于将XML源代码编译成MSI文件。 - SDK文档,包括.chm帮助文件和/或PDF文档,详细解释了WiX的各种元素、属性和用法。 - 示例项目和教程,...

    wix3.11版本安装工具

    8. **文件和注册表操作**:WiX可以处理文件复制、删除、重命名,以及注册表项的创建、修改和删除,这些都是安装过程中常见的任务。 9. **组件和特征管理**:WiX中的组件和特征概念帮助组织安装包内容,允许用户选择...

    wix311-binaries.zip

    "wix311-binaries.zip" 文件是WiX工具集的一个版本,可能是3.11版的二进制文件集合。 在提供的压缩包文件名列表中,我们看到的是一系列以".exe.config"结尾的文件。这些文件是.NET Framework应用程序的配置文件,...

    wix3.0_wix3.7中文资源包.7z

    标题中的"**wix3.0_wix3.7中文资源包.7z**"是一个包含WiX 3.0和WiX 3.7版本的中文语言资源的压缩文件,旨在为使用这些版本的开发者提供中文界面支持。 **WiX 3.0** 是WiX工具集的一个重要版本,它引入了许多新特性...

    WiX3.10版本安装工具

    要安装WiX3.10,你可以使用压缩包内的`wix310.exe`文件。这通常是安装程序的可执行文件,双击运行后,按照提示进行安装。确保你有管理员权限,因为安装过程中可能需要修改系统路径和注册组件。 在安装完成后,你...

    Wix Package ZIP

    - `wix37.exe`:这是WiX工具集的可执行文件,包含了编译和链接WiX源文件(.wxs)的命令行工具,如`candle.exe`(编译器)和`light.exe`(链接器)。版本号37表示WiX的3.7版本,它可能包含了一些更新和改进,用于...

    Wix 3.0 中文语言描述XML文件

    标题提到的“Wix 3.0 中文语言描述XML文件”是指在WiX 3.0版本中用于支持中文界面的语言资源文件。 `WixUI_zh-cn.wxl` 和 `WixUI_zh-tw.wxl` 是两个XML文件,分别对应简体中文(zh-cn)和繁体中文(zh-tw)的语言包...

    Wix Toolset 最新安装包

    3. **Heat**: 自包含的工具,可以自动收集目录、文件和注册表项的信息,然后将其转化为WiX格式的源代码,简化了构建安装包的过程。 4. **WiX SDK**: 提供了用于构建安装包的各种库和对象,如文件、目录、注册表项、...

    WIX.zip_wix_wix install

    2. **多语言支持**:提到的文件“WIX多语言支持.txt”可能包含关于如何在WiX中实现多语言支持的信息。WiX支持创建多语言安装包,这通过添加不同语言的资源包(.wxl文件)来实现。每个资源包包含特定语言的用户界面...

    Wix tools set

    这个可执行文件用于在用户的机器上安装WiX工具链,包括WiX编译器(candle.exe)、链接器(light.exe)和其他辅助工具。安装后,用户就可以开始创建自己的Wixproj项目,并使用Visual Studio插件进行便捷开发。 总的...

    Wix打包说明

    Wix提供了多种类型的组件,例如文件组件、 registry 组件、shortcut 组件等。开发者可以根据需要选择合适的组件来构建安装包。 Wix还提供了一个Visual Studio插件,名为Wix Toolset,允许开发者在Visual Studio中...

    WIX生成MSI包的核心程序

    Candle负责解析XML源代码(.wxs文件)并生成中间对象文件(.wixobj),而Light则将这些对象文件链接成最终的MSI或 CAB 文件。 2. **XML脚本**:WiX使用XML语法定义安装包的结构和行为。脚本中包含产品(Product)、...

    Wix打包教程

    - 文档《Wix 安装部署教程.docx》应该详细解释了如何创建一个WiX项目,包括设置项目属性、添加文件、处理依赖关系、配置启动菜单和桌面快捷方式等。 3. **Bootstrapper(安装策略管理)** - Bootstrapper,也称为...

Global site tag (gtag.js) - Google Analytics