GameplayKit总览
来源:互联网 发布:造价软件排名 编辑:程序博客网 时间:2024/05/01 06:12
GameplayKit
框架主要用来设计和规划逻辑,其中包括随机数的生成,AI,寻路和状态机。概括
GameplayKit是一个面向对象的框架,它提供了一些基础工具来构建游戏。这些工具可以创造出功能性的,可复用的组件,这些技术可以构建游戏的某些特征,如角色的行动,敌人的行为。GameplayKit入门
GameplayKit替换掉了许多游戏中的设计或开发方式,想要更深入了解GameplayKit,你可以跟着教程进行示例开发,传送门:GameplayKit 项目指导。示例代码
Boxes:实体与组件基础知识
Dispenser:状态机基础知识
Pathfinder:寻路基础知识
AgentsCatalog:代理系统基础知识
FourInARow:用最小的策略定制敌人AI
DemoBots:使用Spritekit和Gameplaykit创建跨平台游戏
Topics
实体和组件(Entities and Components)
游戏设计,逻辑设计的基础
GKEntity 类
与游戏相关的对象,具有完全由组件对象集合提供的功能。
GKComponent 类
创建具有明确功能的实体对象父类。
GKComponentSystem 类
管理指定类的所有组件对象定期更新消息。
状态机(State Machines)
定义一个根据状态依赖的游戏逻辑模块化系统
GKState 类
状态机中定义一个特定状态逻辑的一部分。
GKStateMaching 类
一个有限状态机集合,包含有特定逻辑和规则去处理逻辑间的过渡。
空间分割(Spatial Partitioning)
在游戏世界中组织物体以快速搜索位置或接近的数据结构
GKQuadtree 类
根据2D空间中的位置组织对象的数据结构。
GKQuadtreeNode 类
一个管理类,用来管理创建的Quadtree。
GKOctree 类
根据3D空间中的位置组织物体的数据结构。
GKOctreeNode 类
一个管理类,用来管理创建的Octree。
GKRTree 类
一个数据结构,用来自适应管理对象根据2D空间中的位置。
策略(Strategists)
一个基于回合制的游戏,你可以使用那些定义了协议的模型,然后用那些模型规划他们的AI
GKStrategist 协议
回合制游戏中的AI通用接口。
GKMinmaxStrategist 类
回合制中确定行动。
GKMonteCarloStrategist 类
回合制中根据概率确定行动。
GKGameModel 协议
实现此协议来描述你的游戏模型,以便策略对象可以规划游戏动作。
GKGameModelPlayer 协议
GKGameModelUpdate 协议
实现协议描述一个行动,以便策略对象可以规划游戏动作。
决策树(Decision Trees)
定义一系列的问题和可能的答案来决定最后的行为,或者自动构建一个根据你预先提供数据的模型
GKDecisionTree 类
GKDecisionNode 类
手动创建DecisionTree中的节点,他代表了一个明确的问题,问题可能解决的答案和答案完成后的行动。
寻路(Pathfinding)
创建曲线图使模型可以在你的游戏世界中导航,可以允许角色选择最优的路径跟随
GKGraph 类
一个节点集合,节点中包含导航信息,寻路方法。
GKObstacleGraph 类
一个2D游戏世界,创建精确的寻路绕过障碍物的最小网络导航图。
GKMeshGraph 类
一个2D游戏世界,创造流畅的寻路绕过障碍物的空间填充网络导航图。
GKGridGraph 类
2D游戏世界的导航图,其中运动被限制为整数网格。
GKGraphNode 类
用于寻路的一个导航图中的单个节点。
GKGraphNode2D 类
导航图中的一个节点,与连续2D空间中的点(point)集合。
GKGraphNode3D 类
导航图中的一个节点,与连续3D空间中的点(point)集合。
GKGridGraphNode 类
导航图中的一个节点,不相关的2D网格上的位置相关联。
代理、目标与行为(Agents, Goals, and Behaviors)
通过结合起来的高级目标(诸如到达一个目的地,跟随或绕开一个障碍物),添加拥有自主行为的角色和其他游戏对象
GKAgent 类
通过设定目标和约束移动实体的组件。
GKAgent2D 类
运行在2D中的代理。
GKAgent3D 类
运行在3D中的代理。
GKGoal 类
激发一个或多个代理运动的影响。
GKBehavior 类
一组目标来影响一个代理运动。
GKCompositeBehavior 类
一组行为,每一个都是一组目标来影响一个代理运动。
GKPath 类
代理可以跟随的一个多边形路径。
GKAgentDelegate 协议
实现这个协议,同步更新代理在视图上的状态变化。
障碍物(Obstacles)
用来在游戏世界中无法通过的区域,主要是寻路和代理使用
GKObstacle 类
障碍物基类。
GKCircleObstacle 类
圆形障碍物。
GKSphereObstacle 类
球形障碍物。
GKPolygonObstacle 类
2D中的多边形障碍物。
程序噪点(Procedural Noise)
在一个领域内,生成随机噪点,使用它们生成自然的纹理,例如云或者树木纹路,构建无限世界
GKNoiseSource 类
噪点发生器基类。
GKNoise 类
一个噪点发生器生成时的噪点,可用它来加工,旋转,结合噪点。
GKNoiseMap 类
一个简单的噪点数据,你可以直观地查看数据和展示噪点纹理。
GKCoherentNoiseSource 类
一个噪点发生器,产生有黏着的噪点。
GKBillowNoiseSource 类
一个噪点发生器,输出一个黏着的柔软的噪点特征。
GKPerlinNoiseSource 类
一个噪点发生器,输出一个类似于云或地形的噪点。
GKRidgedNoiseSource 类
一个噪点发生器,输出比较锋利棱角的噪点。
GKVoronoiNoiseSource 类
一个噪点发生器,输出分离的,拥有随机种子分离空间的噪点(又称Worley噪点或蜂窝噪点)。
GKCylindersNoiseSource 类
一个噪点发生器,输出3D同心圆柱体噪点。
GKSpheresNoiseSource 类
一个噪点发生器,输出3D同心球体噪点。
GKCheckerboardNoiseSource 类
一个噪点发生器,输出方形交替样式噪点。
GKConstantNoiseSource 类
一个噪点发生器,输出一个恒定值的噪点。
随机化(Randomization)
暴力、灵活地通过标准算法添加不可预测性的随机数
GKRandom 协议
一个随机化类的公共接口。
GKRandomSource 类
所有随机化类的基类。
GKARC4RandomSource 类
一个基础的ARC4算法随机数发生器,运用于绝大部分的游戏机制,
GKLinearCongruentialRandomSource 类
一个实现线性同余的随机数发生器,快速但是随机数少于默认的随机数发生器。
GKMersenneTwisterRandomSource 类
一个实现Mersenne Twister算法的随机数发生器,随机数多余默认的随机数发生器,但是运行更慢。
GKRandomDistribution 类
一个随机数发生器,在一个特定范围内表现出特定分布的多重采样。
GKGaussianDistribution 类
一个随机数发生器,根据高斯分布法多重采样。
GKShuffledDistribution 类
一个随机数发生器,其均匀分布在多个采样中,但是类似值的短序列不太可能。
规则系统(Rule Systems)
将游戏设计与可执行代码分开,以加快游戏开发周期,或者实现模糊逻辑推理,为游戏添加真实的行为
GKRule 类
规则系统中的上下文,要测试的谓词和当测试成功时要执行的动作。
GKNSPredicateRule 类
在Foundation中的NSPredicate一样用法,不过是在规则系统中。
GKRuleSystem 类
用于构造数据驱动逻辑或模糊逻辑系统的规则列表,以及评估它们和解释结果的上下文。
Xcode和SpriteKit一体化(Xcode and SpriteKit Integration)
拥有Gameplaykit特征的类和协议都支持在Spritekit中的Scene editor(场景编辑器)中进行创建和修改
GKScene 类
一个容器,使Gameplaykit的对象和Spritekit的Scene发生联系。
GKSceneRootNodeType 协议
从支持嵌入式GameplayKit信息的其他框架中识别场景类。
GKSKNodeComponent 类
一个管理Spritekit node的组件。
- GameplayKit总览
- 总览
- GamePlayKit的ECS“实体-组件-系统”
- 工具分享:GameplayKit苹果手游开发工具简析
- GameplayKit Tutorial: Entity-Component System, Agents, Goals, and Behaviors
- Cocoa使用GameplayKit人工智能影响用户UI的解决
- 脚本语言总览
- DWR总览
- BIRT 总览
- Deque 总览
- 数据库连接总览
- 脚本语言总览
- HTML总览
- 总览 SYNOPSIS
- 好书总览
- Jquery总览
- 计算机网络总览
- STL总览
- 百度地图api
- 用jsp页面三级联动
- LeetCode-Median of Two Sorted Arrays
- 从关中到羊城 从平原来码头
- 第四周【项目1
- GameplayKit总览
- CodeForces
- 解决python不同版本共享的问题:
- C# 循环语句
- LeetCode-70-Climbing Stairs DP水题Fibonacci
- thymeleaf 获取cookie
- 获取手机传感器
- HDU
- 移植数据库SQLite3到ARM Linux目标板