[源码和文档分享]基于SDL类库实现的射死大鸡怪3D游戏
1 游戏架构介绍
整个游戏分为三个层次:游戏逻辑层,游戏引擎层和软件渲染层。
游戏逻辑层用于控制游戏逻辑,如大鸡怪移动,玩家发子弹,陨石移动,判断输赢这类,这些事比较高层的
中层的渲染引擎,提供较为底层的渲染支持,包括模型、图片、虚拟摄像机、灯光等等的对象。有一个渲染器,获取渲染对象来进行渲染。同时还获取了一些底层的支持
最后一层就是软件渲染层,用CPU来实现了directx/openGL这些很底层的渲染API的功能,在CPU上模拟,实现最底层的3D渲染的逻辑
这里还有必要再提示一下游戏逻辑层。我们的这个游戏是状态驱动的,整个游戏的运行是由状态及驱动的。在一个状态就循环运行对应的逻辑。
为了开发说明,具体说明一下。
中层的是Engine文件夹里面的渲染引擎,提供较为底层的渲染支持,包括模型,图片,虚拟摄像机,灯光等等的对象
VS工程里面renderer文件夹,作为渲染器,获取scene文件夹下的渲染对象(具体的图形数据),画出来
_Core文件夹下的是底层支持(例如数学、文件解析与I/O)
RenderPiline3d.cpp /.h负责用CPU模拟软件渲染,执行最底层的3D渲染的逻辑
2 技术细节
2.1 透视投影
参考文档和完整的文档和源码下载地址:
https://www.write-bug.com/article/1496.html
转载于:https://my.oschina.net/u/4188102/blog/3091336
[源码和文档分享]基于SDL类库实现的射死大鸡怪3D游戏相关推荐
- mfc ccombobox鼠标移动事件_[源码和文档分享]基于MFC类库实现的飞机大战小游戏
1 概述 1.1 简介 本次实训项目是做一个飞机大战的游戏,完成一个界面简洁.操作简单的桌面游戏.该飞机大战项目主要使用的是MFC编程,运用MFC中的类以及自己创建的类,设计好各个类之间的继承关系,实 ...
- [源码和文档分享]基于蒙特卡洛信心上限搜索树UTC算法的四子棋游戏
1 实验任务简介 在M行N列的棋盘中,棋手每次只能在每一列当前的最底部落子,如果某一列已经落满,则不能在该列中落子,目标是在横向.纵向.两个斜向共四个方向中的任意一个方向上,使自己的棋子连成四个(或四 ...
- java记事本技术参数_[源码和文档分享]基于JAVA的记事本
一.绪论 现如今,电脑已经成为了每家每户甚至是每个人手头都必有的一种实用性工具,它改变了人们的生活,大大提高了人们的工作效率.在此基础上,电脑端的记事本应用一直是每台电脑所必备的实用性应用,不管是在台 ...
- [源码和文档分享]基于Android Studio实现的在线学习课堂APP
1 项目介绍 1.1 背景 本软件的开发意图是想让更多想学习外语,却没有好的方法,不知道如何学习,怎么学习,本软件可以为那些想学习的外语的用户,提供各种资源文件,因为现在是互联网的时代普通的纸质书籍不 ...
- [源码和文档分享]基于Java语言的电梯调度模拟程序
一 需求分析 某一栋楼有20层,有5部互联的电梯.基于线程的思想,编写一个电梯调度程序.这五部电梯项目联结,即当一个电梯按钮按下去时,其它电梯相应按钮同时点亮,表示也按下去了. 二 程序设计 本项目采 ...
- java rpg对战_[源码和文档分享]基于java的RPG回合制游戏
一.工作积累总结 该项目是一个回合制RPG游戏,讲述了动物主角对抗人类,自逃出动物园开始,一路与人类对抗,提升能力,并寻找新队友组成团体,逼得人类不得不与之谈判,最终与人类达成了和平协议的故事.玩家可 ...
- 蔬菜信息配送系统c语言编程,[源码和文档分享]基于C语言的物流配送管理信息系统...
一 需求分析 系统需要实现的功能如下: (一)各种基本数据的录入 配送路线基本信息录入 路线经停站点基本信息录入 站点经停车辆基本信息录入 其它信息录入 (二)各种基本数据的修改 即:允许对已经录入的 ...
- 基于文本 c语言,[源码和文档分享]基于C语言实现的文件系统
1 实验目的 学习FAT文件系统的构成 能够将自己的程序应用在系统上 熟悉dd,mount,umount,等指令 设计并实现一个目录列表函数(无须支持选项,如ls -a.ls -l等),用来显示当前目 ...
- [源码和文档分享]基于C#实现的RPG角色扮演类小游戏
1 需求分析 1.1 游戏概述 DragonQuest是一个角色扮演类游戏(RPG),该游戏实现的具体功能是设计两种类型的人物,分别为被玩家所控制的玩家人物(Hero)和由系统所控制的外部人物(Ene ...
最新文章
- requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine('',))
- 【转】在生产环境中部署前端代码
- MATLAB 求图像的极大值极小值,平均值
- struts2文件上传(2)
- 视觉SLAM笔记(13) 空间变换
- 编译原理:用lex/flex做词法分析
- c模拟linux进程管理课程设计,操作系统课程设计(三):Linux进程管理
- 数据中心用蒸发冷却(凝)空调机组的设计及试验分析
- 实验七 数据选择器和译码器的应用
- 风玫瑰图的绘制,基于气象A文件(windrose)
- 微分方程的数值解法—四阶龙格库塔(Runge-Kutta)的推导以及C代码实现
- 《胡雪岩·红顶商人》—— 读后总结
- hdoj 超级赛亚ACMer (贪心)
- 我同意 三江方士 对 哥德巴赫猜想 的 看法
- 测试工程师的福利!各远程移动测试平台对比分析
- go语言快速入门:流程控制(7)
- 机器学习:随机梯度下降法
- English Learning - Day20 作业打卡 2022.12.26 周一
- css中清除li的点默认样式
- 数据中台数据分层架构