当前位置: 首页 > 软件库 > 程序开发 > 游戏开发包 >

kys-cpp

《金庸群侠传》C++复刻版
授权协议 未知
开发语言 C/C++
所属分类 程序开发、 游戏开发包
软件类型 开源软件
地区 国产
投 递 者 柴星津
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

kys-cpp

这是一个以SDL2为基础实现的2D游戏引擎。

基本按照当代游戏引擎的思路实现,但是没有使用回调,因为回调会增加初学者的使用难度。

同时相当于提供了一个使用该引擎制作DOS游戏《金庸群侠传》移植版的范例。

架构的简单说明

公用类

Engine封装了一套SDL2的主要实现,主要取自TinyPot。

File是一些读取,写入函数。包含几个简化程序的模板函数。

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

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

Audio是音频类,基于Bass,可以播放mid,mp3,wav等。

Element

Element是游戏中的基本执行类,包含5个重要的虚函数:backRun,draw,dealEvent,onEnter,onExit。对应在背景中执行,如何画自身,如何处理事件,进入时的处理,退出时的处理。一般来说,衍生类应重写这些函数。

其中每个节点可以包含数个子节点,在绘图时子节点也会被自动一一绘出。需注意在画自身的部分不需要处理子节点,除非有特殊的需要。

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

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

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

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

自己创建的节点通常需要自己销毁,但是要注意如果某个节点在其他节点的Child当中,则会被自动销毁,请注意这些问题。

部分节点使用了单例,这些节点请留给程序运行结束自动销毁。

请不要让子节点出现递归包含,这样会迅速消耗掉所有资源。



 相关资料
  • 金庸群侠•大乱斗是一个武侠网页游戏。游戏的大部分素材来自各类金庸 Mod,如《金属群侠传》、《金庸群芳谱》、《金庸群侠前传》等。 点击试玩  https://static.oschina.net/trytry/jyf/0.6.102/  

  • 金庸群侠传 3D 重制版是一个回合制战棋战斗开放世界 RPG 游戏。 它是一个非盈利游戏项目,项目目标为重制经典游戏《金庸群侠传》(在线玩DOS原版)并支持后续一系列MOD和二次开发。你可以在PC、MAC或移动手机平台(或其他支持平台)游玩。 项目目标 使用Unity引擎重制并致敬经典游戏《金庸群侠传》DOS版; 后续支持重制《金群》的一系列MOD或二次开发; 提供开放的能力给社区,有兴趣贡献力量

  • 金庸群侠传 Windows版:用 Object Pascal 和 SDL 实现的 DOS 游戏《金庸群侠传》的重制版。 原 DOS 下面的经典游戏《金庸群侠传》pascal 复刻版,通过更换数据包,可以运行大部分 MOD。 08年 weyl 使用 Pascal 语言编写,SDL 作为游戏的基本引擎重制了基于 Windows 平台下《金庸群侠传移植版》,又称为复刻版,虽然这不是第一个 Windows

  • 只能怪自己基础薄弱,被WPS架构大佬吊打的一天... 不知道为啥投CPP岗被分配到架构师面试,感觉比较硬核,和前面的面经都不一样... 1.非科班,学过哪些基础专业课 2.质问绩点,质问六级,质问学校 (接下来是挑最熟悉的专业课的来问) 3.自己介绍下数据结构与算法掌握的重难点 4.Floyd,并说下算法时间复杂度空间复杂度 5.Dijkstr,并说下算法时间复杂度空间复杂度 6.dp过程中每一步

  • 60min 自我介绍 开始聊C++ 对于指针的理解 传统指针使用时需要注意些什么 实际编程遇到过类似的问题吗,如何解决 智能指针有了解吗 Share_ptr和unique_ptr STL用过哪些容器 Vector的扩容怎么实现 怎么提高扩容的效率 Vector和list的区别,使用场景 面试官描述一个类,然后问内存布局 单继承后内存布局 多继承后内存布局 就刚刚讲的如何进行类型转换 程序编译流程

  • 24min+45min=69min 客观题 50' a,b,c三个任务优先级递减,同时到达,都需按顺序执行 10msCPU,13msIO,5msCPU,从c到达到完成c需要54ms -、*、$优先级递减,左结合运算,$指指数运算, 123入栈有5种出栈顺序 仅当前类型能访问,用 private 关键字 仅当前程序集能访问,用internal 仅包含类或从包含类派生的类型能访问,用protected