金庸群侠传原版移植版(iOS能玩金庸群侠传吗)

图文攻略 | 2023-12-26 20:05| 70

金庸群侠传原版移植版(iOS能玩金庸群侠传吗)

关键字:《金庸群侠传》C++复刻版

这是一个以SDL2为基础实现的2D游戏框架,同时相当于提供了一个使用该框架制作DOS游戏《金庸群侠传》移植版的范例。Windows下可以使用Visual Studio编译,其他系统下可以在src目录使用CMake生成Makefile,使用GCC或Clang编译,需至少支持C++14。VS工程为x64版本,如需要x86版请自行修改。

安装说明

架构的简单说明

一:公共部分

1、Engine封装了一套SDL2的主要实现,与SmallPot类似。如更换绘图引擎,则只需修改此部分即可。

2、Save中对所有数据进行了封装,可以较为方便地调用。

3、TextureManger是一个纹理管理器,因为《金庸群侠传》的贴图是含偏移设置的,故有些特殊的地方。

4、Audio是音频类,基于BASS或者SDL_mixer,可以播放mid、mp3、wav等格式。

5、PotConv封装了iconv的实现。

二:RunNode基础执行类说明

RunNode是游戏中的基本执行类,包含5个重要的虚函数:backRun,draw,dealEvent,onEnter,onExit。对应在背景中执行,如何画自身,如何处理事件,进入时的处理,退出时的处理。一般来说,衍生类应重写这些函数。其中每个元素可以包含数个子元素,在绘图时子节点也会被自动一一绘出。需注意在画自身的部分不需要处理子节点,除非有特殊的需要。

1、存在一个全局的的RunNode栈root(实际是std::vector),会从下到上依次画出每个节点。RunNode类有一个占满全屏的属性,表示这个类将占用全部的屏幕,因此引擎在绘制的时候,会仅找出最靠上的含有该属性的节点,并从这里开始往上画。

2、创建一个节点,并调用run过程即可运行此节点,注意使用run执行的节点是完全独占的,其子节点也会有事件响应。如果需要退出当前节点,在适当的地方使用setExit(true)即可,但是子节点调用是无效的,除非拥有当前运行节点的指针。

3、run过程的参数为一个布尔值,如果为true则会被加入到root并进行绘制,如果为false则只运行不参与绘制。但是很多节点的draw过程是空的,即使放到root中也不会参与绘制,实际利用了这一特性的仅有显示人物对话的部分。

4、run过程会返回一个函数值,可以利用进行一些判断,例如菜单的选择。

5、规定所有节点均使用共享指针,可以比较自由地互相包含。请不要让子节点出现递归包含,这样会迅速消耗掉所有资源。通常来说,大部分游戏引擎都需要全局标记和回调来控制剧情的执行,本框架采用Element的run设计,使事件以阻塞的模式顺序执行,同时绘图仍是无阻塞执行的,这样无需额外的标记事件即可以顺序执行。

三:视频

这是作者编写的一个视频播放器,可以将其编译为动态库,作为SDL2的插件,用于进行视频过场的播放。如果难以处理,可以将预处理定义宏中的WITH_SMALLPOT删除。Mac和Linux下默认不会打开。

四:音频

音频播放可从BASS或者SDL_mixer中二选一,其中BASS的音质较好。之前SDL_mixer有严重的跳出问题,目前版本是否已经解决暂时不清楚。因BASS为商业库,故使用SDL_mixer作为备选,编译时增加宏USE_SDL_MIXER_AUDIO即可。链接选项并未分别处理。VS和GCC中,如果某个库的功能并未被用到,即使其包含在链接选项中,也不会参与实质的链接。

五:abc工程以及资源的保存

abc工程用来转换之前的数据。建议自行调整代码后,使用调试模式执行。

其中主要的功能是将存档的R部分扩展为原来的二倍。即所有的16位整数转为32位整数,表示范围从32767扩大到2^31-1,足够通常的数值使用。同时,原有的字串也扩展为之前的二倍长度,例如原来人物的名字有5个中文字符长度,实际上最多只能使用4个字,转换之后则可以使用9个字(并不是推荐你用9个字)。转换之后的文件名变为r?.grp32。

1、文件的文本编码,仅有初始存档为cp950(BIG5),这是向下兼容的需要,但是内部会使用cp936(GBK),存档被保存后也会转为cp936。

2、存档的基础数据部分可以保存为sqlite的数据库格式。可以通过读取和保存来转换已有存档。

3、游戏的资源文件是以单个图片的形式放在resource的各个目录中的,每张图的偏移保存在index.ka中,格式为每张图两个16位整数,连续存放。目前没有设计打包格式。

4、战斗贴图文件中,每个人的帧数,之前在hugebase(水浒)框架中使用fightframe.ka保存,现改用fightframe.txt保存。格式为动作索引(0~4),每方向数量。未写则视为0。

5、之前游戏使用的列表文件只保留了升级经验列表和离队列表,改用txt格式。并非所有的文档都转为32位,这有一部分是为了节省资源的需要。以上提到的数据,除了文本文件外均可以用真正的强强的新版upedit修改(该修改器不完善)。

六:使用到的其他开发库

1、以下库在Windows下建议使用vcpkg或者msys2来安装,或者也可以去官网下载,请自行选择。在Linux下编译时则应优先考虑使用系统的包管理器(例如apt等)自动安装的库,在Mac下可以使用homebrew来安装。

SDL https://www.libsdl.org/

SDL_image https://www.libsdl.org/projects/SDL_image/

SDL_ttf https://www.libsdl.org/projects/SDL_ttf/

SDL_mixer https://www.libsdl.org/projects/SDL_mixer/

libiconv https://www.gnu.org/software/libiconv/

lua https://www.lua.org/

PicoSHA2 https://github.com/okdshin/PicoSHA2

sqlite3 https://www.sqlite.org/

2、以下库已包含在本工程中:

hanz2piny https://github.com/yangyangwithgnu/hanz2piny

zip https://github.com/kuba--/zip

BASS, BASSMIDI http://www.un4seen.com/

OpenCC https://github.com/BYVoid/OpenCC

Fast C++ CSV Parser: https://github.com/ben-strasser/fast-cpp-csv-parser

smallpot: https://github.com/scarsty/smallpot

4、以下为间接使用,通常包管理器会自动处理。

freetype https://www.freetype.org/

FFmpeg https://www.ffmpeg.org/

zlib https://zlib.net/

libass https://github.com/libass/libass

fribidi https://www.fribidi.org/

libpng http://www.libpng.org/pub/png/libpng.html

harfbuzz https://github.com/harfbuzz/harfbuzz

fontconfig https://www.freedesktop.org/wiki/Software/fontconfig

5、备注:SDL及相关的扩展均是2.0版本。汉字转拼音和压缩文件并非Linux发行版的常见库,故直接使用了源码。PicoSHA2和CSV库仅需要头文件,如果文件不在包含目录中,请注意将它们复制到适合的位置。除BASS和BASSMIDI为闭源,但可以免费用于非商业项目之外,其他均为开源工程。

七:common 功能集合下载

common是作者所写的一个通用功能集合,被多个工程使用。其中包含了ini文件读写库,修改自以下工程:ini Reader https://github.com/benhoyt/inih

金庸群侠传原版移植版(iOS能玩金庸群侠传吗)插图

金庸群侠传原版移植版(iOS能玩金庸群侠传吗)插图1

金庸群侠传原版移植版(iOS能玩金庸群侠传吗)插图2

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如有侵权请联系邮箱:121259802@qq.com删除!

相关推荐相关推荐

失落方舟阵容搭配推荐图

失落方舟阵容搭配推荐图

对于失落方舟阵容搭配推荐图的问题,我有一些专业的知识和经验,并且可以为您提供相关的指导和建议。

图文攻略 33 2024-10-05
重返帝国如何搭配武将阵容

重返帝国如何搭配武将阵容

大家好,今天我来为大家详细地介绍一下关于重返帝国如何搭配武将阵容的问题。以下是我对这个问题的总结和归纳,希望能对大家有所帮助。

图文攻略 8 2024-10-05
战场无畏搭配阵容最新攻略

战场无畏搭配阵容最新攻略

战场无畏搭配阵容最新攻略的今日更新是一个不断发展的过程,它反映了人们对生活品质的不断追求。今天,我将和大家探讨关于战场无畏搭配阵容最新攻略的今日更新,让我们一起感受它带来的高品质生活。

图文攻略 7 2024-10-05
格斗家橡皮人阵容搭配

格斗家橡皮人阵容搭配

对于格斗家橡皮人阵容搭配的问题,我有一些专业的知识和经验,并且可以为您提供相关的指导和建议。

图文攻略 49 2024-10-05
魂师对决中立阵容搭配

魂师对决中立阵容搭配

接下来,我将通过一些实际案例和个人观点来回答大家对于魂师对决中立阵容搭配的问题。现在,让我们开始探讨一下魂师对决中立阵容搭配的话题。

图文攻略 11 2024-10-05
修罗最新流派推荐阵容搭配

修罗最新流派推荐阵容搭配

下面将有我来为大家聊一聊修罗最新流派推荐阵容搭配的问题,希望这个问题可以为您解答您的疑问,关于修罗最新流派推荐阵容搭配的问题我们就开始来说说。

图文攻略 7 2024-10-05
王者好兄弟阵容怎么搭配

王者好兄弟阵容怎么搭配

现在我来为大家分享一下关于王者好兄弟阵容怎么搭配的问题,希望我的解答能够帮助到大家。有关于王者好兄弟阵容怎么搭配的问题,我们开始谈谈吧。

图文攻略 11 2024-10-05
开荒 神书推荐阵容搭配

开荒 神书推荐阵容搭配

现在,我将着重为大家解答有关开荒 神书推荐阵容搭配的问题,希望我的回答能够给大家带来一些启发。关于开荒 神书推荐阵容搭配的话题,我们开始讨论吧。

图文攻略 6 2024-10-05
和平精英海岛完美阵容搭配

和平精英海岛完美阵容搭配

非常欢迎大家参与这个和平精英海岛完美阵容搭配问题集合的探讨。我将以开放的心态回答每个问题,并尽量给出多样化的观点和角度,以期能够启发大家的思考。

图文攻略 28 2024-10-05
仙剑里的阵容怎么搭配

仙剑里的阵容怎么搭配

仙剑里的阵容怎么搭配是一个值得探讨的话题,它涉及到许多方面的知识和技能。我将尽力为您解答相关问题。

图文攻略 8 2024-10-05
迷你世界演员阵容搭配

迷你世界演员阵容搭配

随着科技的发展,迷你世界演员阵容搭配的今日更新也在不断地推陈出新。今天,我将为大家详细介绍它的今日更新,让我们一起了解它的最新技术。

图文攻略 8 2024-10-05
悲鸣简单阵容搭配图片大全

悲鸣简单阵容搭配图片大全

悲鸣简单阵容搭配图片大全是一个非常广泛的话题,它涉及到不同领域的知识和技能。我将尽力为您解答相关问题。

图文攻略 9 2024-10-05
黄忠华佗开荒阵容怎么搭配

黄忠华佗开荒阵容怎么搭配

大家好,今天我想和大家探讨一下“黄忠华佗开荒阵容怎么搭配”的应用场景。为了让大家更好地理解这个问题,我将相关资料进行了分类,现在就让我们一起来探讨吧。

图文攻略 7 2024-10-05
风色幻想命运传说阵容搭配

风色幻想命运传说阵容搭配

大家好,今天我想和大家聊一聊关于“风色幻想命运传说阵容搭配”的话题。为了让大家更好地理解这个问题,我将相关资料进行了梳理,现在就让我们一起来交流吧。

图文攻略 7 2024-10-05
复出之路阵容搭配图片大全

复出之路阵容搭配图片大全

大家好,今天我想和大家聊一聊关于“复出之路阵容搭配图片大全”的话题。为了让大家更好地理解这个问题,我将相关资料进行了梳理,现在就让我们一起来交流吧。

图文攻略 10 2024-10-05
舞动精灵阵容搭配图片高清

舞动精灵阵容搭配图片高清

好久不见了,今天我想和大家探讨一下关于“舞动精灵阵容搭配图片高清”的话题。如果你对这个领域还不太熟悉,那么这篇文章就是为你准备的,让我们一起来探索其中的奥秘吧。

图文攻略 31 2024-10-05
洛克王国纳兹阵容搭配

洛克王国纳兹阵容搭配

大家好,今天我想和大家探讨一下“洛克王国纳兹阵容搭配”的应用场景。为了让大家更好地理解这个问题,我将相关资料进行了分类,现在就让我们一起来探讨吧。

图文攻略 15 2024-10-05
爱心使者瞎子阵容怎么搭配

爱心使者瞎子阵容怎么搭配

如果您有关于爱心使者瞎子阵容怎么搭配的问题,我可以通过我的知识库和研究成果来回答您的问题,并提供一些实用的建议和资源。

图文攻略 9 2024-10-05
玉龙尊者羁绊搭配阵容推荐

玉龙尊者羁绊搭配阵容推荐

感谢大家给予我这个机会,让我为大家解答玉龙尊者羁绊搭配阵容推荐的问题。这个问题集合囊括了一系列与玉龙尊者羁绊搭配阵容推荐相关的问题,我将全力以赴地回答并提供有用的信息。

图文攻略 8 2024-10-05
赵云张角战法搭配阵容推荐

赵云张角战法搭配阵容推荐

大家好,今天我想和大家讲解一下“赵云张角战法搭配阵容推荐”的工作原理。为了让大家更好地理解这个问题,我将相关资料进行了分类,现在就让我们一起来学习吧。

图文攻略 21 2024-10-05