• Rust游戏开发实战
  • Rust游戏开发实战
  • Rust游戏开发实战
  • Rust游戏开发实战
  • Rust游戏开发实战
21年品牌 40万+商家 超1.5亿件商品

Rust游戏开发实战

全新正版 极速发货

52.1 5.2折 99.8 全新

库存12件

广东广州
认证卖家担保交易快速发货售后保障

作者(美)赫伯特·沃尔弗森

出版社人民邮电出版社

ISBN9787115626608

出版时间2024-05

装帧平装

开本16开

定价99.8元

货号1203264427

上书时间2024-09-05

谢岳书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
赫伯特·沃尔弗森(Herbert Wolverson)是一名非常有经验的程序员,主要从事游戏开发工作。他在游戏开发社区非常活跃,为多个开源项目做过贡献。

目录
第一部分初识Rust

第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用Cargo进行包管理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读取用户输入20

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.2play()函数的桩形式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完善游戏程序的play()函数59

3.3.7扇动翅膀60

3.4创建障碍物并实现计分逻辑60

3.4.1渲染障碍物61

3.4.2一头撞到墙上62

3.4.3记录得分和障碍物的状态63

3.4.4在play()函数中加入障碍物和计分逻辑64

3.4.5将得分显示在游戏结束画面上64

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.6.4用摄像机来渲染地图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

6.4编排出玩家角色105

6.5使用系统来实现复杂的逻辑107

6.5.1多个文件组成的模块108

6.5.2理解什么是查询109

6.5.3将处理玩家输入作为一个系统111

6.5.4批量渲染114

6.5.5地图渲染系统115

6.5.6实体渲染系统116

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添加平视显示系统139

8.2.1添加另一个渲染图层139

8.2.2渲染平视显示区141

8.2.3为怪兽添加名字143

8.2.4为怪兽添加名称和生命值143

8.2.5用悬浮提示来区分怪兽145

8.2.6注册各个系统147

8.3实现战斗功能148

8.3.1删除碰撞检测系统148

8.3.2表示攻击意图148

8.3.3玩家主动攻击149

8.3.4创建战斗系统151

8.3.5怪兽的反击153

8.3.6运行各个系统154

8.4将等待作为一种策略155

8.5小结157

第9章胜与负158

9.1创造更聪明的怪兽158

9.1.1标记新的行为159

9.1.2通过trait来支持寻路160

9.1.3映射地图160

9.1.4在地图中导航161

9.1.5具备热成像追踪能力的怪兽164

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章更具可玩性的地下城200

11.1创建trait200

11.1.1拆分地图建造器201

11.1.2用MapBuilder来提供地图建造服务201

11.1.3定义代表架构的trait202

11.1.4用参考实现来测试trait203

11.1.5调用空地图的架构205

11.1.6修改房间生成器206

11.2用元胞自动机算法来创建地图207

11.2.1元胞自动机理论207

11.2.2实现元胞自动机208

11.2.3生成一些随机噪声209

11.2.4计算邻居的数量209

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激活新的地图类型220

11.3.6随机挑选架构220

11.4在地图中使用预制区域221

11.4.1手工打造的地下城221

11.4.2放置金库222

11.5小结226

第12章地图的主题风格227

12.1为地下城引入主题风格227

12.1.1用trait实现地下城主题风格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

16.4小结284

第三部分其他资源

附录AASCIICodepage437对照表286

附录B简短的游戏设计文档287

附录CRust语法速查表294

内容摘要
Rust是一种新兴的系统级编程语言,既具备可媲美C、C++的强大功能,又具备内存安全性、支持并发编程等特点,但其学习路径之陡峭也让很多初学者望而却步。

这是一本借游戏开发来帮助你学习Rust语言的书——还有什么比制作游戏更好的学习方式呢?全书介绍如何基于RuSt语言开发二维游戏,借项目实例帮助你掌握Rust语言的基础知识,以及适用于诸如Unity、Unreal等引擎的游戏开发技能。

要更好地掌握本书内容,请保证你的计算机具备以下软、硬件要求。

安装Windows10/Linux/macOS系统。

安装文本编辑器,例如Visual Studio Code。

能运行OpenGL3.2的显卡和驱动程序。

主编推荐
1.本书主要介绍如何基于Rust语言开发游戏
2.引导读者制作自己的Flappy Bird,借实例讲解Rust语言的基础知识。
3.引导读者从0到1用Rust实现游戏项目。

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP