改变SKSpriteNode框架?等距挑战

时间:2014-03-07 22:23:44

标签: objective-c frame sprite-kit bounding-box

我希望我们能够找到如何通过我们以等距风格设计的游戏来解决这个有趣的挑战。任何帮助都会非常棒!

问题

有没有办法将边框框从正方形改为另一种形状?也许用面具?

问题

我们的问题是我们需要节点的可点击区域不是方形的。由于我们正在平铺节点,因此它们的边界框彼此重叠,我们无法准确地点击我们想要的图块。希望我们下面的图片能够向您展示我们的设计,我们的问题以及我们的可点击区域。

enter image description here

有没有办法在Sprite Kit中更改它,或者是否有可能采用等距样式?

再次感谢您。

2 个答案:

答案 0 :(得分:1)

我一直在这条道路的深处,我可以说实施自己的命中检测比试图强制spritekit做你正在计划的事情要容易得多。

这并不困难。只需在你的瓷砖上做一个自定义的hittest功能,然后在鼠标按下时全部循环测试它们。

有一种非常简单的测试形状的算法,但公平地说,你可以只测试钻石形状的内圆,所以只需测试到精灵中心的距离是否为<点击圆的半径。容易腻。

答案 1 :(得分:0)

SKPhysicsBody可以通过路径创建[SKPhysicsBody bodyWithEdgeLoopF​​romPath:(CGPath)]; 您将不得不调整路径以获得所需的形状,但如果您仅将其用于瓷砖,则应该没问题。

检查Node.PhysicsBody是否包含接触点。

如果您需要该方法,请告诉我。