基于SDL类库实现的射死大鸡怪3D游戏

本文深入探讨游戏架构的三层设计:游戏逻辑层、游戏引擎层和软件渲染层。详细解释了状态驱动的游戏运行机制,以及如何使用CPU模拟DirectX/OpenGl进行底层3D渲染。适合游戏开发者和对游戏架构感兴趣的读者。

1 游戏架构介绍

整个游戏分为三个层次:游戏逻辑层,游戏引擎层和软件渲染层。

游戏逻辑层用于控制游戏逻辑,如大鸡怪移动,玩家发子弹,陨石移动,判断输赢这类,这些事比较高层的

中层的渲染引擎,提供较为底层的渲染支持,包括模型、图片、虚拟摄像机、灯光等等的对象。有一个渲染器,获取渲染对象来进行渲染。同时还获取了一些底层的支持

最后一层就是软件渲染层,用CPU来实现了directx/openGL这些很底层的渲染API的功能,在CPU上模拟,实现最底层的3D渲染的逻辑

这里还有必要再提示一下游戏逻辑层。我们的这个游戏是状态驱动的,整个游戏的运行是由状态及驱动的。在一个状态就循环运行对应的逻辑。

为了开发说明,具体说明一下。

中层的是Engine文件夹里面的渲染引擎,提供较为底层的渲染支持,包括模型,图片,虚拟摄像机,灯光等等的对象

VS工程里面renderer文件夹,作为渲染器,获取scene文件夹下的渲染对象(具体的图形数据),画出来

_Core文件夹下的是底层支持(例如数学、文件解析与I/O)

RenderPiline3d.cpp /.h负责用CPU模拟软件渲染,执行最底层的3D渲染的逻辑

2 技术细节

2.1 透视投影

6607861-182142ed865250eb.png

参考文档和完整的文档和源码下载地址:

https://www.write-bug.com/article/1496.html

基于C++与SDL实现的迷宫游戏源码+项目说明(一课设).zip 【项目介绍】 该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶, 或者实际项目借鉴参考! 当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 一、运行 ### 直接运行 在 release 中找到和你需要的版本,下载,解压并运行 ### 编译并运行 1. 克隆本仓库 2. 下载 SDL2 与 freetype 库,在 makefile 中更改 `program_lib_prefix` 等内容,确保路径和依赖正确 3. `make all` 4. 运行 release/MiGong.exe ## 二、游戏说明 1. 在游玩中点击 ESC 可进入菜单 2. WASD 控制方向(如果你的 WASD 键不管用,试试换成写,并按几下 ESC) 3. ↑↓←→ 控制地图视角(如果你的 ↑↓←→ 键不管用,试试按 Y 解除视角锁定) 4. Y 解除/锁定视角,空格回到当前视角 5. R 回到开始点 ## 三、创意工坊(制作地图) 1. 那个 "?" 是按不了的 QwQ 2. 在制造地图时,↑↓←→ 控制地图视角,左键可以画点、更换点类型,右键可以删除点 3. 注意!制造地图时,绿色块是墙(就是游玩时候的树),树是开始点,end 是结束点! 为了制作方便我就这么设置了 QAQ 4. 制造地图左键和右键都可以拖动 5. 按了保存键可能没有反应,但它真的保存了。在 map 文件夹里有名叫 "newmap_时间" 的文件,就是你刚刚保存的 ### 游玩自定义地图 6. 把你的 "newmap_时间" 改成 sysmap1,sysmap2 或者 sysmap3, 覆盖预设的游玩地图(预设地图在 map-sub 有备份),然后点击游戏内相应的 1, 2 或者 3 就可以了 ### 创意工坊载入地图 7. 把你的 "newmap_时间" 改成 save, 覆盖预设的载入
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值