gpt4 book ai didi

ios - 如何检测其他 SKSpriteNode 子节点的交叉节点

转载 作者:行者123 更新时间:2023-11-28 09:11:20 25 4
gpt4 key购买 nike

希望大家帮帮忙。我正在开发棋盘游戏的应用程序。我有随机调用并在游戏开始时布置的六角形瓷砖。这些图 block 中的每一个都有四个边,值为 1,另外两个边的值为 2 和 3。

每个图 block 都是一个 SKSpriteNode,边缘有透明矩形节点。有 5 种不同类型的图 block ,它们需要是带有子节点的独立 Sprite ,因为除了随机布局外,它们的区域也会随机旋转。所以我需要以编程方式知道哪些瓷砖边缘正在接触其他瓷砖的哪些边缘。

像这样:

https://app.box.com/s/nnym97st3xmrsx979zchowdq1qwsmpoo

(我试图发布一张我正在努力完成的图片,但显然我的评分不够高。) ;-)

例如:如果“2”接触到“3”等

我首先尝试了碰撞检测,但当然它只适用于动态移动的物体。

我尝试了一个 IF 语句来比较其他节点是否正在接触,然后记住了特定于父节点的坐标,所以这不起作用。

然后我尝试了 intersectsNode,但这似乎只适用于同一父级下的节点。我目前正在使用 convertPoint 以获得与场景匹配的坐标,从而具有可比性。但我似乎无法让它按照我需要的方式工作。

一定有一些我没有看到的简单的东西。有什么想法吗?

最佳答案

当然不简单。

一种解决方案是开始时将所有形状彼此稍微隔开。将带有物理体的不可见子节点添加到所有六个边,并根据每个物理体的等级(1、2 或 3)为每个物理体分配适当的类别。

当您开始游戏时,使用您喜欢的任何移动方法将所有外部节点移动到适当的位置(边接触)。当每个六边形边相互接触时,这将为您提供联系信息。联系信息会告诉你哪个边号正在接触它的邻居。

这个想法的确切编码取决于您当前的代码、游戏玩法等...

enter image description here

关于ios - 如何检测其他 SKSpriteNode 子节点的交叉节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29245088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com