java编程游戏案例精粹_游戏人工智能编程案例精粹 PDF扫描版[14MB]

本书深入探讨游戏智能体状态机、图论、路径规划、目标驱动行为和模糊逻辑在游戏AI中的应用。通过实例,如简单足球游戏和《掠夺者》游戏,阐述如何利用状态机、脚本语言(如Lua)以及各种算法实现游戏中的角色智能。
摘要由CSDN通过智能技术生成

游戏人工智能编程案例精粹主要讲述如何使游戏中的角色具有智能的技术。书中首先介绍游戏角色的基本属性(包括速度、质量等物理属性)及常用数学方法。接着,深入探讨游戏智能体状态机的实现。通过简单足球游戏实例,本书给出用状态机实现游戏AI的例子。在图论部分,本书详细介绍图在游戏中的用途及各种不同的图搜索算法,并用一章的篇幅讨论了游戏中路径规划是如何完成的。

此外,本书还对目标驱动的智能体的实现、触发器与模糊逻辑在游戏中的运用进行了讨论。为使智能体行为更加丰富、灵活、易于实现,本书还介绍了游戏脚本语言的优点,并以Lua脚本语言为例进行了说明。本书适合对游戏AI开发感兴趣的爱好者和游戏AI开发人员阅读和参考。

游戏人工智能编程案例精粹 目录:

第1章 数学和物理学初探

1.1 数学

1.2 物理学

1.3 总结

第2章 状态驱动智能体设计

2.1 什么是有限状态机

2.2 有限状态机的实现

2.3 West World项目

2.4 使State基类可重用

2.5 全局状态和状态翻转(State Blip)

2.6 创建一个StateMachine类

2.7 引入Elsa

2.8 为你的FSM增加消息功能

第3章 如何创建自治的可移动游戏智能体

3.1 什么是自治智能体

3.2 交通工具模型

3.3 更新交通工具物理属性

3.4 操控行为

3.5 组行为(Group Behaviors)

3.6 组合操控行为(Combining Steering Behaviors)

3.7 确保无重叠

3.8 应对大量交通工具:空间划分

3.9 平滑

第4章 体育模拟(简单足球)

4.1 简单足球的环境和规则

4.2 设计AI

4.3 使用估算和假设

4.4 总结

第5章 图的秘密生命

5.1 图

5.2 实现一个图类

5.3 图搜索算法

5.4 总结

第6章 用脚本,还是不用?这是一个问题

6.1 什么是脚本语言

6.2 脚本语言能为你做些什么

6.3 在Lua中编写脚本

6.4 创建一个脚本化的有限状态自动机

6.5 有用的链接

6.6 并不是一切都这么美妙

6.7 总结

第7章 概览《掠夺者》游戏

7.1 关于这个游戏

7.2 游戏体系结构概述

7.3 触发器

7.4 AI设计的考虑

7.5 实现AI

7.6 总结

第8章 实用路径规划

8.1 构建导航图

8.2 《掠夺者》游戏导航图

8.3 创建路径规划类

8.4 节点式路径或边式路径

8.5 走出困境状态

8.6 总结

第9章 目标驱动智能体行为

9.1 勇士埃里克的归来

9.2 实现

9.3 《掠夺者》角色所使用的目标例子

9.4 目标仲裁

9.5 扩展

9.6 总结

第10章 模糊逻辑

10.1 普通集合

10.2 模糊集合

10.3 模糊语言变量

10.4 模糊规则

10.5 从理论到应用:给一个模糊逻辑模块编码

10.6 《掠夺者》中是如何使用模糊逻辑类的

10.7 库博方法

10.8 总结

附录A C++模板

函数模板

类模板

连接器的困惑

附录B UML类图

类名、属性和操作

属性和操作的可见性

关系

批注

总结

附录C 设置你的开发环境

下载演示的可执行程序

下载并安装源代码

参考文献

52259c57b59a05c7725d0c46beb44e5c.png

中文名: Java2游戏编程 原名: Java 2 Game Programming 作者: Thomas Petchel译者: 晏利斌 孙淑敏 邵荣 资源格式: PDF 本: 扫描社: 清华大学出社书号: 7302112932发行时间: 2005年08月 地区: 大陆 语言: 简体中文 简介: 内容介绍:   你经常看到有人在玩手机游戏吧,那些手机游戏基本上是用Java编写的。Java已经成熟了,它现在是一种开发能够多种平台上运行的中小型游戏的很好方式。本书将向读者展示用Java语言和它的类库创建2D游戏,所涉及的主题包括高速性能、双缓冲图像、动画、声音、媒体控制、I/O和网络支持等。将带领大家一步一步学习编写Java游戏,最终打造属于自己的Java游戏。 目录: 第1篇 步入Java丛林:从Java2 API开始 第1章 Java2软件开发工具包 1.1 Java简史 1.2 为什么在游戏中使用Java 1.3 为Java准备系统 1.3.1 安装Java SDK 1.3.2 编译和运行Java程序 1.3.3 使用命令行 1.3.4 使用集成开发环境(IDE) 1.3.5 关于Java2文档的说明 1.4 总结 第2章 预备:学习Java2 API 2.1 Game Over! 程序 2.1.1 import语句 2.1.2 给Java代码加注释 2.1.3 Java类声明 2.1.4 Java方法声明 2.1.5 Java中的代码块 2.1.6 Java程序组成部分的关键点回顾 2.2 比特和字节:原始的Java类型 2.2.1 基本的整数类型 2.2.2 浮点类型 2.2.3 Char类型 2.2.4 布尔型 2.2.5 String类型 2.2.6 强制转换变量类型 2.2.7 Java数据类型、数组和标识符需要记忆的要点 2.3 Java中的运算符 2.3.1 赋值运算符 2.3.2 比较运算符 2.3.3 算术运算符 2.3.4 自增和自减运算符 2.3.5 更多的整数运算符 2.3.6 使用点运算符 2.3.7 instanceof运算符 2.3.8 优先级顺序 2.3.9 关于运算符的记忆要点 2.4 条件语句 2.4.1 switch语句 2.4.2 Java中的循环语句 2.4.3 用break、continue和return提前退出循环 2.5 处理运行时异常 2.5.1 使用try和catch块 2.5.2 使用throws子句 2.5.3 关于流程控制语句的记忆要点 2.6 总结 2.7 练习 第3章 带有类的语言:Java面向对象程序设计 3.1 设计一个Java类 3.2 方法的魔法 3.3 关于方法的更多话题 3.3.1 构造函数方法 3.3.2 访问方法 3.3.3 类方法 3.3.4 “其他”方法 3.4 继承 3.5 抽象类 3.6 类修饰符 3.7 接口 3.8 快捷地创建类 3.9 包 3.10 总结 3.11 练习 第4章 Java API为你服务:常用Java类 4.1 java.lang包 4.1.1 java.lang.Object 4.1.2 java.lang.String 4.1.3 java.lang.StringBuffer 4.1.4 封装类 4.1.5 java.lang.Math 4.1.6 java.lang.System 4.1.7 java.lang.Cloneable 4.1.8 java.lang.Thread 4.2 java.io包 4.3 java.util包 4.3.1 java.util.StringTokenizer 4.3.2 java.util.Random 4.3.3 Java2集合框架 4.4 总结 4.5 练习 第2篇 Java 2-D图像开发和抽象Window工具包 第5章 Applet基础 5.1 什么是Java applet 5.2 Applet和Application的比较 5.3 Applet的组成和生命周期 5.4 一个Applet例子 5.5 运行Java Applets 5.6 通用AWT组件 5.6.1 按钮 5.6.2 单选按钮(Radio Button) 5.6.3 作出重要选择 5.6.4 循环播放声音文件 5.6.5 文本域 5.6.6 标签 5.7 布局管理 5.7.1 FlowLayout类 5.7.2 GridLayout类 5.7.3 BorderLayout类 5.7.4 CardLayout类 5.8 容器(Container) 5.9 创建自定义组件 5.10 一个完整的例子 5.11 总结 5.12 练习 第6章 监听用户 6.1 EventLi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值