本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
商品基本信息,请以下列介绍为准 | |
商品名称: | Rust游戏开发实战 |
作者: | (美)赫伯特·沃尔弗森(Herbert Wolverson)著 |
定价: | 99.8 |
出版社: | 人民邮电出版社 |
出版日期: | 24-05-01 |
IN: | 9787115626608 |
印次: | |
版次: | 1 |
装帧: | 平装 |
开本: | 16开 |
内容简介 |
Rust是一种新兴的系统级编程语言,既具备可媲美C、C++的能,又具备内存性、支持并发编程等特点,但其学之陡峭也让很多初学者望而却步。 这是一本借游戏开发来帮助你学st语言的书——还有什么比制作游戏更好的学呢?全书介绍如何基于RuSt语言开发二维游戏,借项目实例帮助你掌握Rust语言的基础知识,以及适用于诸如Unity、Unreal等引擎的游戏开发技能。 要更好地掌握本书内容,请保证你的计算机具备以下软、硬件要求。 安装Windows10/Linux/macOS系统。 安装文本编辑器,例如Visual Studio Code。 能运行OpenGL3.2的显卡和驱动程序。 |
目录 |
部分初识Rur/> 第1章Rust及其开发环境2 1.1安装Rust2 1.1.1在MicrosoftWindows上安装Rust3 1.1.2在其他操作系统上安装Rust3 1.1.3完成安装3 1.1.4验证安装是4 1.1.5测试Rust能否正常使用5 1.1.6版本更新5 1.2安装并环境6 1.3用Cargo管理项目7 1.3.1为代码选择一个主目录7 1.3.2用Cargo来开启一个新项目7 1.3.3运行Hello,World8 1.3.4与版本控制系统的集成8 1.4创建个Rust程序9 1.4.1Cargo的元数据9 1.4.2Hello,World程序10 1.5用Cargo来构建、检查并运行项目11 1.6修正代码格式12 1.7用Clippy来发现常见错误13 1.8用Carg管理15 1.9小结16 第2章Rust的步17 2.1创建一个新的项目17 2.2捕捉用户输入17 2.2.1提示访客输入姓名18 2.2.2用变量存储姓名18 2.2.3键盘输入19 2.2.4读取用户输入 2.2.5用占位符实现格式化打印21 2.2.6完整的问候程序21 2.3将输入处理逻辑移入函数22 2.4修剪输入数据23 2.5在数组中存储字符串24 2.5.1声明一个数组25 2.5.2在数组中查找元素26 2.6用结构体来组织数据27 2.7用向量来存储数量可变的数据32 2.7.1派生调试信息32 2.7.2用向量代替数组33 2.7.3用break跳出循环34 2.7.4为向量添加新元素34 2.8用枚举体来实现分类36 2.8.1枚举体36 2.8.2使用枚举类型和整数类型的数据成员37 2.8.3将枚举类型赋值给变量38 2.8.4枚举体的匹配38 2.9小结41 第3章构建个Rust游戏42 3.1理解游戏循环42 3.1.1什么是bracket-lib以及bracket-terminal44 3.1.2创建一个使用bracket-lib的新项目45 3.1.3Hello,bracketTerminal46 3.1.4存储状态46 3.1.5Codepage437:由IBM扩展的ASCII字符集50 3.2创建不同的游戏模态50 3.2.1根据当前模态做出反应51 3.2.2y()函数的桩形式52 3.2.3主菜单52 3.2.4游戏结束菜单54 3.2.5完整的游戏控制流54 3.3添加游戏角色55 3.3.1渲染游戏角色56 3.3.2坠向不可避免的56 3.3.3扇动翅膀57 3.3.4实例化玩家57 3.3.5常量58 3.3.6完善游戏程序的y()函数59 3.3.7扇动翅膀60 3.4创建障碍物并实现计分逻辑60 3.4.1渲染障碍物61 3.4.2一头撞到墙上62 3.4.3记录得分和障碍物的状态63 3.4.4在y()函数中加入障碍物和计分逻辑 3.4.5将得分显示在游戏结束画面上 3.4.6在重玩游戏时重置得分和障碍物65 3.4.7FlappyDragon游戏效果65 3.5小结65 第二部分开发地下城探险类游戏 第4章设计地下城探险类游戏68 4.1设计的几个段落标题68 4.1.1为游戏命名68 4.1.2游戏的简要介绍68 4.1.3游戏剧69 4.1.4基本的游戏流程69 4.1.5简可行产品69 4.1.6延展目标70 4.2小结70 第5章编写地下城探险类游戏72 5.1将代码划分为模块72 5.1.1crate与模块72 5.1.2新建一个空的地图模块73 5.1.3模块的作用域74 5.2用prelude模块来管理导入项74 5.3存储地下城地图76 5.3.1图块在程序中的表示方法77 5.3.2创建一个空地图77 5.3.3为地图建立索引78 5.3.4渲染地图79 5.3.5使用地图模块的API80 5.4加入探险家81 5.4.1扩展地图的API接口81 5.4.2创建玩家角色的数据结构82 5.4.3渲染玩家角色83 5.4.4移动玩家角色83 5.4.5使用玩家模块的API84 5.5创建地下城85 5.5.1编写地图生成器模块86 5.5.2用石墙把地图填满87 5.5.3开凿房间87 5.5.4开凿走廊88 5.5.5建造地图并放置玩家角色91 5.5.6使用MapBuilder组件的API91 5.6Graphics,Camera,Action92 5.6.1地下城所使用的ProgrammerArt92 5.6.2图层94 5.6.3制作摄像机95 5.用摄像机来渲染地图97 5.6.5将玩家角色关联到摄像机98 5.6.6清理图层,并关联函数和摄像机98 5.7小结99 第6章创建地下城居民100 6.1名词解释100 6.2用组件编排出实体101 6.3安装并使用Legion102 6.3.1将Legion添加到prelude中103 6.3.2删除一些老代码103 6.3.3创造游戏世界104 编排出玩家角色105 6.5使用系统来实现复杂的逻辑107 6.5.1多个文件组成的模块108 6.5.2理解什么是查询109 6.5.3将处理玩家输入作为一个系 6.5.4批量渲染114 6.5.5地图渲染系5 6.5.6实体渲染系6 6.6添加怪兽119 6.7碰撞检测121 6.8小结123 第7章与怪替前行124 7.1让怪兽随机游走124 7.2在回合制的游戏中移动Entity127 7.2.1存储回合状态127 7.2.2轮番上阵128 7.2.3拆分调度器129 7.2.4结束玩家的回合131 7.3发送意图消息133 7.3.1实体还可以当作消息来使用133 7.3.2消息行移动133 7.3.3简化玩家输入处理逻辑135 7.3.4怪兽的移动消息137 7.4小结137 第8章生命值和近身战斗138 8.1为实体赋予生命值138 8.2添加平视显示系39 8.2.1添加另一个渲染图层139 8.2.2渲染平视显示区141 8.2.3为怪兽添加名字143 8.2.4为怪兽添加名称和生命值143 8.2.5用悬浮提示来区分怪兽145 8.2.6注册各个系47 8.3实现能148 8.3.1删除碰撞检测系48 8.3.2表示攻击意图148 8.3.3玩家主动攻击149 8.3.4创建战斗系 8.3.5怪兽的反击153 8.3.6运行各个系54 8.4将等待作为一种策略155 8.5小结157 第9章胜与负158 9.1创造更聪明的怪兽158 9.1.1标记新的行为159 9.1.2通过trt来支持寻路160 9.1.3映射地图160 9.1.4在地图中导航161 9.1.5具备热成像追踪能力的怪兽1 9.1.6定位玩家角色165 9.1.7迪杰斯特拉图165 9.1.8追杀玩家角色167 9.1.9缩减玩家角色的生命值169 9.2实现游戏结束画面170 9.2.1增加表示游戏结束的回合状态170 9.2.2检测游戏何时结束171 9.2.3显示游戏结束画面172 9.3寻找亚拉的护身符173 9.3.1构建护身符173 9.3.2安放护身符174 9.3.3判断玩家是否胜利177 9.3.4恭贺玩家取得胜利178 9.4小结181 第10章视场182 10.1定义实体的视场182 10.1.1图块的透明度183 10.1.2用HashSet来整理数据183 10.1.3用组件来存储可见图块的集合184 10.1.4计算视场187 10.1.5渲染视场189 10.1.6隐藏实体191 10.1.7更新视场192 10.2怪兽的视场193 10.3添加空间记忆195 10.3.1逐步揭示地图195 10.3.2更新地图196 10.3.3渲染记忆中的地图196 10.3.4视场的其他用途198 10.4小结199 第11章更具可玩性的地下城0 11.1创建trt0 11.1.1拆分地图建造器1 11.1.2用MapBuilder来提供地图建造服务1 11.1.3定义代表架构的trt2 11.1.4用参考实现来测试trt3 11.1.5调用空地图的架构5 11.1.6修改房间生成器6 11.2用元胞自动机算法来创建地图7 11.2.1元胞自动机理论7 11.2.2实现元胞自动机8 11.2.3生成一些随机噪声9 11.2.4计算邻居的数量9 11.2.5用迭代消除混乱210 11.2.6放置玩家角色211 11.2.7在没有房间的况下生成怪兽213 11.2.8建造地图214 11.2.9调用基于元胞自动机的地图架构214 11.3用Drunkard’sWalk算法来创建地图215 11.3.1编写初始代码216 11.3.2用喝醉的矿工开凿洞穴216 11.3.3评估地图建造的完成度217 11.3.4一直挖到地图生成完毕218 11.3.5激活新的地图类型2 11.3.6随机挑选架构2 11.4在地图中使用预制区域221 11.4.1手工打造的地下城221 11.4.2放置金库222 11.5小结226 第12章地图的主题风格227 12.1为地下城引入主题风格227 12.1.1用trt实现地下城主题风格228 12.1.2创建一片森林229 12.2使用主题渲染230 12.2.1挑选一个主题风格231 12.2.2使用选中的主题风格232 12.2.3根据主题风格来渲染地图233 12.3释放想象力235 12.4小结235 第13章和道具236 13.1设计物品236 13.1.1用组件来描述物品236 13.1.2生成水和地图237 13.2管理239 13.2.1捡起物品240 13.2.2显示物品241 13.2.3发送物品激活消息243 13.2.4激活物品245 13.2.5应用特效245 13.2.6迭代物品并应用效果246 13.2.7处理疗伤事件247 13.2.8添加到调度器248 13.2.9去掉通过休息恢复生命值249 13.3小结250 第14章更深的地下城251 14.1为地图添加楼梯251 14.1.1生成并渲染楼梯251 14.1.2更新地下城的行走逻辑252 14.1.3生成楼梯并替代护身符253 14.2追踪游戏关卡255 14.2.1关卡切换状态256 14.2.2切换关卡257 14.2.3找到玩家角色258 14.2.4标记需要保留的实体258 14.2.5删除其余的实体259 14.2.6将视场设置为脏259 14.2.7创建新地图260 14.2.8将玩家角色放置在新地图中260 14.2.9创建亚拉的护身符或者楼梯260 14.3在平视显示区中显示当前关卡261 14.4小结262 第15章战斗系统和战利品263 15.1设据驱动的地下城263 15.1.1读取地下城的数据265 15.1.2扩展Spawner模块266 15.1.3映射并加载模板266 15.1.4用数据驱动的方式生成实体268 15.1.5新春大扫除272 15.2扩展战斗系统274 15.2.1由武器和爪子造成的伤害274 15.2.2伤害值组件276 15.2.3产生一些伤害277 15.2.4探险家不是八爪鱼278 15.3添加更多宝剑279 15.4小结280 第16章后的步骤和润色281 16.1游戏行分发281 16.1.1开启发布模式和链接时优化281 16.1.2分发游戏282 16.2开发属于自己的地下城探险类游戏283 16.3更多内容283 1小结284 第三部分其他资源 附录AASCIICodepage437对照表286 附录B简短的游戏设计文档287 附录CRust语法速查表294 |
1.本书主要介绍如何基于Rust语言开发游戏 2.引导读者制作自己的Flappy Bird,借实例讲解Rust语言的基础知识。 3.引导读者从0到1用Rust实现游戏项目。 |
作者简介 |
赫伯特·沃尔弗森(Herbert Wolverson)是一名有验的程序员,主要从事游戏开发工作。他在游戏开发社区活跃,为多个开源项目做过贡献。 |