- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在试验 Apple 的 GameplayKit、SpriteKit 和 Swift。我正在尝试通过只能从一侧通过的瓷砖进行寻路。
下图显示了两个问题:
左边是一个简单的解决方案,我知道如何从绿色位置移动到红色位置,因为我需要做的就是从绘制并计算路径。
图表的右侧让我感到困惑。假设我想要在其左侧有一堵墙的瓷砖(如图所示),但我仍然希望能够导航到有墙的瓷砖。我该如何告诉图形,只有从顶部、底部或右侧而不是左侧接近时,那些左侧有墙的瓷砖才可通过?
为了回应 Alessandro 的评论,我将解释代码的结构。我正在使用 iOS 10 中引入到 SpriteKit 的新 TileMapNode
来表示图 block map 。每个图 block 都是一个 SKTileDefinition
。可以在 SKTileDefinition
上设置自定义属性(例如,我可以设置一个 Int
来表示瓷砖的顶部、底部、左侧或右侧是否有墙)。 map 的实际表示不如您使用 GameplayKit 寻找路径重要。据我所知,GameplayKit 只允许您从图中删除不可通过的节点,但我想做的是将一些节点标记为可通过,但只能从特定方向进行。
这让我觉得这是一个常见问题(因为很多游戏不必牺牲整个瓷砖来代表内墙)但我不知道如何去做。
最佳答案
你有几个选择:
1) 减小网格大小。薄壁的存在表明您的网格尺寸可以更小(按最小障碍物的顺序)
2) 使用不同的图形类型并完全放弃网格。 GKObstacleGraph 或 GKMeshGraph 非常适合具有许多任意多边形障碍物的游戏世界。
关于swift - 使用 GameplayKit 在网格上查找路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38405918/
我通过向其行为添加目标 toFollow: GKPath 来让代理遵循 GKPath。一切正常,但是代理在到达路径上的目标点时继续以类似 8 的形状移动。如何防止代理在到达 GKPath 上的目标点时
我目前正在使用 spritekit 创建一个自上而下的僵尸游戏,我需要用僵尸实现寻路。我在网上找不到很多教程,我找到的少数教程只描述了一个播放器,而且已经过时了。我在整个类(class)中遇到障碍,以
有没有人找到 GameplayKit 用于寻路的算法类型的引用资料?我查看了 Apple 的文档,但没有找到任何内容。 最终我很好奇它的性能与在没有 GameplayKit 的情况下实现的 A* 的对
我正在使用 Spritekit 深入研究 GameplayKit,根据我收集的信息,您将 GKEntity 子类化,然后开始向该实体添加 GKComponents。实体将或多或少只是一袋填充某些功能的
我有一个 GKAgent2D 来控制 SKNode 敌人向目的地移动。 当我暂停代理正在移动的 SKScene 时,敌人节点似乎继续移动而没有显示这种移动。所有可见的 Action 都停止(也就是敌人
我正在学习使用 swift 和 Gameplaykit 生成随机数。在下面的代码中,数字是在我初始化 randomDist 时生成的,它只是在我调用 nextInt 时从已经生成的数字中提供样本,还是
我正在试验 Apple 的 GameplayKit、SpriteKit 和 Swift。我正在尝试通过只能从一侧通过的瓷砖进行寻路。 下图显示了两个问题: 左边是一个简单的解决方案,我知道如何从绿色位
暂停 GKAgent 的最佳方法是什么? 我的游戏在某些级别使用了一些代理,我需要在我的游戏暂停/gameOver 时暂停它们。 我不会在我的游戏中暂停整个 SKScene,而是暂停一个 worldN
在我的游戏中,我有一个符合 NSCoding 的 Combat 类,它还使用 GameplayKit 的 GKGridGraph 和 GKGridGraphNode 对象,但它们不符合 NSCodin
情况 我正在使用 GKObstacleGraph 在以下 map 上进行寻路: 橙色区域是障碍物 (GKPolygonObstacle),而紫色点和线是自定义放置的节点 (GKGraphNode2D)
是否有显示 GKPath 的技巧? 例如我的路径: class ScenarioPath: GKPath { //SET // | | | | | | // --
我正在学习 SceneKit 团队在 SceneKit: What's New 中演示的示例代码.我发现一个文件的扩展名为 .gks,它似乎是 GameplayKit 的资源。 这是加载: #if E
我想要一个 Sprite 跟随玩家,我试图通过 GameplayKit 的 Pathfinding 来实现这一点。这是可行的,但是有问题。我使用以下代码获取从敌人 Sprite 到玩家 Sprite
我觉得这可能是一个错误,任何人都可以重现或看到我做事方式的一些错误。 我正在尝试将 GKPolygonObstacle 添加到 iOS 或 macOS Playground 中的 GKMeshGrap
我在 Scenekit(和 ARKit,尽管这对这个问题并不重要)应用程序中使用 GameplayKit 一直很有趣。 具体来说,我一直在为行为使用实体、组件和代理,除了一件事外,它们都运行良好。 我
从这里的 GameplayKit 开始,我正在为一个无尽的奔跑者建模,玩家可以通过点击屏幕在角色之间切换。角色第一次可以近距离攻击(组件),第二次跳跃(组件),第三次射击(组件)。 我想知道什么是最好
类似于我发布的问题 here ,我现在意识到这个问题比我预期的更微不足道,因为这适用于 GameplayKit 的某些元素,但不适用于其他元素.. 我有一个障碍物,一个 SKNode,我试图将其定义为
我有一个 SceneKit 游戏,我正在尝试将其与 GameplayKit 集成。 为了让 GameplayKit 正常工作,我需要通过调用 updateWithDeltaTime(seconds:)
文档 states GameplayKit also works well for 3D games built with the SceneKit framework 但是,似乎没有提及使用Scen
我确信这对您来说是一个简单的问题。 如何用一个 GKState 编写一个具有两个参数的函数? 更新 苹果使用 func willExitWithNextState(_ nextState: GKSta
我是一名优秀的程序员,十分优秀!