GameplayKit文档翻译
monsterk1
这个作者很懒,什么都没留下…
展开
-
GameplayKit总览
GameplayKit框架主要用来设计和规划逻辑,其中包括随机数的生成,AI,寻路和状态机。概括GameplayKit是一个面向对象的框架,它提供了一些基础工具来构建游戏。这些工具可以创造出功能性的,可复用的组件,这些技术可以构建游戏的某些特征,如角色的行动,敌人的行为。GameplayKit入门GameplayKit替换掉了许多游戏中的设计或开发方式,想要更深入了解G翻译 2017-09-21 10:45:05 · 1078 阅读 · 0 评论 -
GKCylindersNoiseSource
GKCylindersNoiseSource一个噪点发生器,输出3D同心圆柱体噪点。概括所有噪点发生器产生无限3D噪点值,但事实上这对于柱面噪点尤为重要:通过旋转3D中的噪点对象,你可以以“切片”的方式对柱面进行采样。使用这种技术(结合其他噪点发生器和噪点处理操作)来创建木纹纹理等效果。图一 柱面噪点的示例类似于其他的GKNoiseSource子类,柱面噪点发生翻译 2017-10-10 15:55:05 · 208 阅读 · 0 评论 -
GKSpheresNoiseSource
GKSpheresNoiseSource一个噪点发生器,输出3D同心球体噪点。概括所有噪点发生器产生无限3D噪点值,但事实上这对于球体噪点尤为重要:通过旋转3D中的噪点对象,你可以以“切片”的方式对球面进行采样。使用这种技术(结合其他噪点发生器和噪点处理操作)来创建木纹纹理等效果。图一 球体噪点的示例类似于其他的GKNoiseSource子类,球体噪点发生器表示翻译 2017-10-10 16:30:19 · 212 阅读 · 0 评论 -
GKRidgedNoiseSource
GKRidgedNoiseSource一个噪点发生器,输出比较锋利棱角的噪点。概括锯齿状噪点与Perlin噪点类似(参见GKPerlinNoiseSource类),但具有类似于自然现象(如分叉闪电和山峰)的较薄特征。图一 脊状噪点示例类似于其他的GKNoiseSource子类,Perlin噪点发生器表示噪点生成算法及其参数。为了利用噪点发生器,首先从中创建GKNoise翻译 2017-10-10 15:12:00 · 250 阅读 · 0 评论 -
GKVoronoiNoiseSource
GKVoronoiNoiseSource一个噪点发生器,输出分离的,拥有随机种子分离空间的噪点(又称Worley噪点或蜂窝噪点)。概括Voronoi噪点可以产生类似于自然现象的纹理,如晶体结构,裂纹泥浆或星形场。图一 Voronoi噪点示例类似于其他的GKNoiseSource子类,Perlin噪点发生器表示噪点生成算法及其参数。为了利用噪点发生器,首先从中翻译 2017-10-10 15:22:26 · 261 阅读 · 0 评论 -
GKPerlinNoiseSource
GKPerlinNoiseSource一个噪点发生器,输出一个类似于云或地形的噪点。概括类似于其他的GKNoiseSource子类,Perlin噪点发生器表示噪点生成算法及其参数。为了利用噪点发生器,首先从中创建GKNoise对象(并且可选地将操作应用于该噪点对象或将其与其他噪点对象组合)。然后从你的噪点对象创建一个GKNoiseMap对象,生成一个具体的值,你可以使用SKText翻译 2017-10-10 11:15:40 · 250 阅读 · 0 评论 -
GKBillowNoiseSource
GKBillowNoiseSource一个噪点发生器,输出一个黏着的柔软的噪点特征。概括波浪噪点类似于Perlin噪点(GKPerlinNoiseSource类),但更加圆润的特征类似于自然现象,如树梢和丘陵。图一 一个波浪噪点发生器示例类似于其他的GKNoiseSource子类,波浪噪点发生器表示噪点生成算法及其参数。为了利用噪点发生器,首先从中创建GKNoise对象翻译 2017-10-10 10:20:00 · 224 阅读 · 0 评论 -
GKQuadtree
GKQuadtree根据2D空间中的位置组织对象的数据结构。概括一个四叉树对象管理其最优的空间结构搜索,而不是像数组或字典这样的基本数据结构,四叉树可以很快地找到占据某一特定位置或区域的所有元素。四叉树分区策略将空间划分为每个级别的四个象限,如图1所示。当一个象限包含多个对象,树细分为更小的四象限区域,添加一个水平的树。图1 一个实例四叉树的空间和逻辑排列四叉树在有多个翻译 2017-09-22 16:49:20 · 311 阅读 · 0 评论 -
GKStateMaching
GKStateMaching一个有限状态机集合,包含有特定逻辑和规则去处理逻辑间的过渡。概括在Gameplaykit框架中,GKState的子类定义了每一种状态和状态间过渡的规则,使用了GKStateMachine实例可以去集中管理每一个独立的状态。这个状态机系统提供了方法,可以规划安排那些状态依赖的行为,当进入某个状态时,离开某个状态时,或者周期性实现某个状态逻辑(例如不同状态播翻译 2017-09-22 15:16:03 · 341 阅读 · 0 评论 -
GKState
GKState状态机中定义一个特定状态逻辑的一部分。概括GKState类是一个被定义了的state类,可以在GKStateMachine中使用。每一个分离的不同的状态GKState子类组成状态机,在每一个状态GKState子类中有isValidNextState: 方法,它可以有效地使状态与状态之间平滑过渡。GKState类提供了一个可以放置状态依赖类型的逻辑,比如进入或脱离某翻译 2017-09-22 13:37:52 · 357 阅读 · 0 评论 -
GKComponent
GKComponent创建具有明确功能的实体对象父类。概括GKComponent是组建实体组件方式游戏的组件基类,在这个游戏设计结构中,实体是游戏相关的对象,而组件则处理实体的特定行为方式。由于组件的功能范围有限,所以可以为许多不同类型的实体重用相同的组件类。创建组件时,通过继承可复用部分进行子类化创建,然后创建GKEntity并使用addComponent:方法进行组件捆绑。翻译 2017-09-22 10:18:07 · 360 阅读 · 0 评论 -
GKComponentSystem
GKComponentSystem管理指定类的所有组件对象定期更新消息。概括在一个组件/实体设计方式的游戏中,GKComponentSystem对象管理周期性更新的组件,使用组件系统为特定类的所有组件执行每个帧逻辑,而不需要遍历游戏的对象层次结构来发送更新消息。每个GKComponentSystem对象都会管理特定GKComponent的子类,可以使用initWithCompo翻译 2017-09-22 11:07:18 · 330 阅读 · 0 评论 -
GKCoherentNoiseSource
GKCoherentNoiseSource一个噪点发生器,产生有黏着的噪点。概括通常情况下,噪点跨域时是随机性的(一维,二维,三维或多维)—比方说,你可以通过用随机数生成器的值填充图像来创建噪点。与这种真正的随机噪点不同,连贯噪点是一致和平滑的:你可以始终从特定种子值生成相同的输出,并且域上的小变化仅产生噪点值的小变化。你不会直接实例化或使用此类,相反,GKCoherentNo翻译 2017-10-09 17:05:33 · 218 阅读 · 0 评论 -
GKNoiseMap
GKNoiseMap一个简单的噪点数据,你可以直观地查看数据和展示噪点纹理。概括使用程序噪点涉及三个主要步骤,以下是GameplayKit中三个主要噪点类型:1.噪点发生器(GKNoiseSource类)表示生成噪点的核心算法和参数。2.噪点对象(GKNoise实例)表示通过噪点发生器生成的噪点场。你可以从一个噪点发生器创建噪点,然后加工或组合噪点来创建更多复杂的噪翻译 2017-10-09 10:42:36 · 505 阅读 · 0 评论 -
GKEntity
GKEntity与游戏相关的对象,具有完全由组件对象集合提供的功能。 概括GKEntity对象是一个实体组件结构架构在游戏中,在设计中,实体是与游戏相关对象的通用类型。实体通常不定义自己的功能,相反的,需要开发者通过设置自行定义其功能,通过组件来设定实体的特定行为。组件(GKComponent类)是通用且可复用的,你可以通过各种不同的方式结合各种不同的组件创建各式各样的实体翻译 2017-09-22 09:27:39 · 343 阅读 · 0 评论 -
GKCheckerboardNoiseSource
GKCheckerboardNoiseSource一个噪点发生器,输出方形交替样式噪点。概括棋盘噪点作为输入特别适用于在通过GKNoise的组合各种各样噪点对象而创建噪点的方法中。图一 棋盘噪点的示例类似于其他的GKNoiseSource子类,棋盘噪点发生器表示噪点生成算法及其参数。为了利用噪点发生器,首先从中创建GKNoise对象(并且可选地将操作应用于该噪点对象翻译 2017-10-10 16:37:14 · 221 阅读 · 0 评论 -
GKConstantNoiseSource
GKConstantNoiseSource一个噪点发生器,输出一个恒定值的噪点。概括恒定噪点作为输入特别适用于在通过GKNoise的组合各种各样噪点对象而创建噪点的方法中。例如,当使用displaceXWithNoise:yWithNoise:zWithNoise: 方法时,为恒定噪点传递一些参数,为非恒定噪点传递一些其他参数,从而让一个轴进行改变但是其他轴恒定或没有位移的。翻译 2017-10-10 16:56:23 · 268 阅读 · 0 评论 -
GKSKNodeComponent
GKSKNodeComponent一个管理Spritekit node的组件。概括向实体添加GKSKNodeComponent对象会自动更新组件的SpriteKit节点(SKNode对象)的实体属性,以指向该实体。当你将实体和组件添加到Xcode SpriteKit场景编辑器中的节点时,Xcode会自动创建一个GKSKNodeComponent对象来管理该SpriteKit节点和节翻译 2017-10-12 16:50:53 · 397 阅读 · 0 评论 -
GKSceneRootNodeType
GKSceneRootNodeType从支持嵌入式GameplayKit信息的其他框架中识别场景类。概括你不需要定义采用此协议的类。 GameplayKit将此协议声明添加到类(例如SKScene),GKScene类支持归档和加载嵌入的GameplayKit信息。关系继承NSObject翻译 2017-10-12 16:45:19 · 288 阅读 · 0 评论 -
GKScene
GKScene一个容器,使Gameplaykit的对象和Spritekit的Scene发生联系。概括当你在Xcode中,在Scene editor中创建SKSpriteKit的scene,Xcode会自动创建一个GKScene对象来管理你添加到场景中的任何GameplayKit对象(实体,组件或路径查找图),并将其与SpriteKit场景内容一起存档。要使用包含Gameplay翻译 2017-10-12 16:24:58 · 422 阅读 · 0 评论 -
GKRuleSystem
GKRuleSystem用于构造数据驱动逻辑或模糊逻辑系统的规则列表,以及评估它们和解释结果的上下文。概括GKRuleSystem对象管理规则列表(GKRule对象)。规则系统还提供了在由两个特征定义的上下文中评估其规则列表的方法:包含要由规则测试的信息的状态字典以及表示由规则评估结果得出的结论的一组事实。你可以基于二进制真值状态来评估事实 - 即事实是或不在集合中,或者是连续翻译 2017-10-12 15:54:27 · 500 阅读 · 0 评论 -
GKNSPredicateRule
GKNSPredicateRule在Foundation中的NSPredicate一样用法,不过是在规则系统中。概括GKNSPredicateRule类是GKRule类的专用子类(表示由GKRuleSystem对象使用的规则)。GKNSPredicateRule的自定义子类使用NSPredicate对象来评估一个规则,而不是像自定义GKRule子类一样需要自定义的评估逻辑。翻译 2017-10-12 15:30:54 · 410 阅读 · 0 评论 -
GKRule
GKRule规则系统中的上下文,要测试的谓词和当测试成功时要执行的动作。概括评估GKRuleSystem对象并对其每个规则进行测试,其通常检查与规则系统相关联的状态或事实,并执行由测试通过的每个规则指定的操作,例如在规则系统中断言或撤回事实或修改其状态。规则有两个部分:谓词和动作。• 规则的谓词判断规则系统的上下文是否满足了规则要求。评估规则的谓词通常包括检查规则系统状态字翻译 2017-10-12 15:03:50 · 529 阅读 · 0 评论 -
GKShuffledDistribution
GKShuffledDistribution一个随机数发生器,其均匀分布在多个采样中,但是类似值的短序列不太可能。概括混乱分布的行为有时被称为“公平”随机化,因为游戏中的真实随机性可能导致玩家延长“幸运条”或“不幸条”。要创建混乱分布并使用它来生成随机数,请使用其父类GKRandomDistribution定义的方法。 GKShuffledDistribution类从其父类继承翻译 2017-10-11 15:05:59 · 330 阅读 · 0 评论 -
GKGaussianDistribution
GKGaussianDistribution一个随机数发生器,根据高斯分布法多重采样。概括重要GameplayKit中提供的随机化服务适用于可靠地创建确定性的伪随机游戏机制,但不具备加密性。对于加密,混淆或密码使用,请使用描述“加密指南”的Security框架。图一 由高斯分布产生的值的概率在高斯分布中,最有可能随机采样分布中心附近的值,并降低产生较高或较低值的翻译 2017-10-11 14:25:41 · 305 阅读 · 0 评论 -
GKRandomDistribution
GKRandomDistribution一个随机数发生器,在一个特定范围内表现出特定分布的多重采样。概括重要GameplayKit中提供的随机化服务适用于可靠地创建确定性的伪随机游戏机制,但不具备加密性。对于加密,混淆或密码使用,请使用描述“加密指南”的Security框架。你选择通过使用实现GKRandom协议的任何类的实例(如基本随机源(GKRandomSource翻译 2017-10-11 10:38:13 · 323 阅读 · 0 评论 -
GKMersenneTwisterRandomSource
GKMersenneTwisterRandomSource一个实现Mersenne Twister算法的随机数发生器,随机数多余默认的随机数发生器,但是运行更慢。概括重要GameplayKit中提供的随机化服务适用于可靠地创建确定性的伪随机游戏机制,但不具备加密性。对于加密,混淆或密码使用,请使用描述“加密指南”的Security框架。要使用此随机源生成基本随机值,请使翻译 2017-10-11 10:33:53 · 245 阅读 · 0 评论 -
GKLinearCongruentialRandomSource
GKLinearCongruentialRandomSource一个实现线性同余的随机数发生器,快速但是随机数少于默认的随机数发生器。概括重要GameplayKit中提供的随机化服务适用于可靠地创建确定性的伪随机游戏机制,但不具备加密性。对于加密,混淆或密码使用,请使用描述“加密指南”的Security框架。要使用此随机源生成基本随机值,请使用GKRandom协议中定义的方翻译 2017-10-11 10:26:41 · 241 阅读 · 0 评论 -
GKARC4RandomSource
GKARC4RandomSource一个基础的ARC4算法随机数发生器,运用于绝大部分的游戏机制,概括重要GameplayKit中提供的随机化服务适用于可靠地创建确定性的伪随机游戏机制,但不具备加密性。对于加密,混淆或密码使用,请使用描述“加密指南”的Security框架。要使用此随机源生成基本随机值,请使用GKRandom协议中定义的方法。要生成具有特定范围和分布翻译 2017-10-11 10:11:40 · 292 阅读 · 0 评论 -
GKRandom
GKRandom一个随机化类的公共接口。概括GameplayKit的随机化类包括GKRandomSource 和GKRandomDistribution 以及它们的子类。你可以使用它们为你的游戏机制生成随机行为,并在组合随机源以创建更复杂的随机数时直接使用此协议类型。Topics生成随机数(Generating Random Numbers)nextInt翻译 2017-10-10 17:14:16 · 275 阅读 · 0 评论 -
GKRandomSource
GKRandomSource所有随机化类的基类。概括重要GameplayKit中提供的随机化服务适用于可靠地创建确定性的伪随机游戏机制,但不具备加密性。对于加密,混淆或密码使用,请使用描述“加密指南”的Security框架。在大部分情况下,不应该直接使用此类,而是使用其底下的子类之一。一个随机源对于自己生成的随机数范围和分布几乎是无法控制的,如果想要指定这些选项,请将随翻译 2017-10-11 09:35:37 · 431 阅读 · 0 评论 -
GKPolygonObstacle
GKPolygonObstacle2D中的多边形障碍物。概括多边形障碍物在GameplayKit中有两个目的:你可以使用多边形障碍物在游戏世界中构建导航性的graph(GKObstacleGraph对象)进行寻路;你还可以使用多边形障碍物为代理(GKAgent对象)进行区域避让,使用GKGoal的goalToAvoidObstacles:maxPredictionTime: 方法。翻译 2017-09-30 16:21:47 · 279 阅读 · 0 评论 -
GKSphereObstacle
GKSphereObstacle球形障碍物。概括要使代理(GKAgent对象)避开障碍物,通过goalToAvoidObstacles:maxPredictionTime: 方法创建一个目标。受避险障碍目标影响的代理人将尝试移动,使其半径永远不会与球形障碍物的半径重叠。Topics创建障碍(Creating an Obstacle)- initWithRadius:翻译 2017-09-30 16:16:53 · 193 阅读 · 0 评论 -
GKGridGraph
GKGridGraph2D游戏世界的导航图,其中运动被限制为整数网格。概括使用此类型生成包含GKGridGraphNode对象代表一个指定网格的graph。使用父类GKGraph的方法在graph中寻找一条路径。Topics创建一个Graph(Creating a Graph)- initFromGridStartingAt:width:height:dia翻译 2017-09-29 13:48:47 · 406 阅读 · 0 评论 -
GKMeshGraph
GKMeshGraph一个2D游戏世界,创造流畅的寻路绕过障碍物的空间填充网络导航图。 概括Mesh Graph进行寻路,需要GKObstacle对象集合表示无法通过的区域,GKGraphNode2D对象表示需要寻路的坐标点(比方说当前角色的坐标和需要到达的目的地坐标),然后通过GKGraph的方法在graph中进行寻路。与GKObstacleGraph类不同,一个mesh g翻译 2017-09-28 15:17:53 · 323 阅读 · 0 评论 -
GKGraph
GKGraph一个节点集合,节点中包含导航信息,寻路方法。概括Graph中每一个节点都代表了一个角色或其他对象所占据的位置,相邻节点之间的连线代表了一个游戏实体能够从一个地方去往另一个地方的路径。使用GKGraph类创建一个通用的graph,也可以使用GKGridGraph或GKObstacleGraph或GKMeshGraph子类创建专门的,在游戏世界中包含更多几何信息的grap翻译 2017-09-27 14:55:19 · 302 阅读 · 0 评论 -
GKDecisionNode
GKDecisionNode手动创建DecisionTree中的节点,他代表了一个明确的问题,问题可能解决的答案和答案完成后的行动。概括一个GKDecisionNode实例表示了决策树(GKDecisionTree对象)中的一个元素。决策树包含了两种类型的node,一些node包含了决策树的根node,其代表要做出的单个决策(也称之为question或attribute),并针对决翻译 2017-09-27 10:00:29 · 282 阅读 · 0 评论 -
GKDecisionTree
GKDecisionTree一组数据结构,用于模拟一系列具体问题,可能的答案以及一系列答案中所采取的行动。概括你可以通过指定问题,答案和操作手动定义决策树,你也可以允许GKDecisionTree类使用示例数据来自动学习预测模型。一个DecisionTree有几个元素:• 属性(Attributes)代表要回答的个别问题或要做出的选择。• 分支(Br翻译 2017-09-26 15:04:11 · 319 阅读 · 0 评论 -
GKGameModelUpdate
GKGameModelUpdate实现协议描述一个行动,以便策略对象可以规划游戏动作。概括在一个实现协议的类中来描述游戏中的一个行动。你使用该类以及实现GKGameModel协议的另一个自定义类来将你的游戏描述为GKStrategist对象。然后,你可以使用策略在游戏过程中找到最佳动作 - 例如,创建一台计算机控制的角色,或向人类玩家提供提示。这个协议的实现应该添加描述游戏中动翻译 2017-09-26 14:35:24 · 233 阅读 · 0 评论 -
GKStrategist
GKStrategist回合制游戏中的AI通用接口。概括GameplayKit提供两种Strategist类型,当然你也可以使用这个协议来实现你自己定义的Strategist。你要提供一个已经实现了GKGameModel, GKGameModelPlayer 和GKGameModelUpdate协议的游戏模型去创建自定义类型,然后使用Strategist的各种方法实现最佳的行动。翻译 2017-09-25 15:15:53 · 249 阅读 · 0 评论