我希望你们都可以提供帮助。我正在研究一款棋盘游戏的应用程序。我有六角形的瓷砖,这些瓷砖在游戏开始时随机调用。这些瓷砖中的每一个都具有值为1的四条边,并且其他两条边的值为2和3.如何检测其他SKSpriteNodes的子节点的相交节点
每个瓷砖是在边缘上具有透明矩形节点的SKSpriteNode。有5种不同类型的瓷砖,他们需要与子节点分开的子画面,因为除了随机布局外,他们的区域也随机旋转。所以我需要以编程方式知道哪些瓦片边缘触及其他瓦片的哪些边缘。
像这样:
https://app.box.com/s/nnym97st3xmrsx979zchowdq1qwsmpoo
(我试过后的什么,我试图完成的图像,但显然我没有足够高的评级。); - )
例如:当然只有具有动态,移动物体作品如果“2”被触摸“3”等
我第一次尝试碰撞检测,但是。
我尝试了一个IF语句来比较其他节点是否正在触摸,然后记住父节点特定的坐标,以至于无法正常工作。
然后我尝试intersectsNode,但似乎只适用于同一父母下的节点。 我目前正在与convertPoint,以获得匹配场景的坐标,从而具有可比性。但我似乎无法按我需要的方式工作。
必须有一些简单的东西,我没有看到。有任何想法吗?
有趣。我确实尝试了一些类似的方法,让子节点在加载时只移动几个像素,但没有产生任何结果。初始放置时节点已经重叠,可否阻止碰撞检测?如果是这样,我可以通过调整你的方法来调整它,并简单地让子节点从十六进制的中心移动到外边缘。这可能比必须自己移动所有格子更容易。非常感谢你!我会在早上做一个测试。 ;-) – Freedlun 2015-03-26 02:31:33
@Freedlun - 移动格子并不难。如果你知道每一个的结束位置,你可以使用SKAction moveTo x,y over duration。一起运动的格子甚至可以让你的游戏看起来很酷的启动动画。 – sangony 2015-03-26 12:42:03
确实如此。其实这正是我所做的,尽管我是用childern做的。使用SKActions我将Edge sprites从(0,0)移动到它们的位置,它完美地工作!联系被检测到。现在我可以继续讨论游戏的其他方面。非常感谢! – Freedlun 2015-03-26 14:11:28