问题标签 [skphysicscontact]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
202 浏览

ios - 使用 PhysicsKit 类型调用的 SKPhysicsContactDelegate 方法?

我在类的方法中添加了一些方便的方法来SKPhysicsBody更容易地处理它们。didBeginContactSKPhysicsContactDelegate

看来委托使用不同的类型,然后记录在案。当我尝试在 didBeginContact 中使用这种便捷方法时,出现异常。

尝试以下测试代码时

它会记录

PKPhysicsBody 是(私有)PhysicsKit 框架的一部分。

虽然SKPhysicsContact文档明确指出

有没有办法解决这个问题,所以我仍然可以使用 SKPhysicsBody 类类别?还是我误解了某些东西,这是预期的行为吗?

0 投票
2 回答
360 浏览

sprite-kit - SPriteKit 处理不同角度的碰撞行为

我正在开发游戏,其中我需要来自不同方面的不同碰撞行为,

假设有一个角色从下方碰撞到任何其他障碍物,它的行为会
有所不同。

当它在顶部与任何其他障碍物或物体碰撞并且障碍物或物体在其下方时,我需要不同的行为,

实现它的最佳方法是什么。-(void)didBeginContact:(SKPhysicsContact*)contact它对
我的场景有什么帮助

谢谢

0 投票
3 回答
4060 浏览

swift - 初学者 swift sprite 工具包 - 节点碰撞检测帮助 (SKPhysicsContact)

我希望一个精灵在触摸另一个精灵时自行删除。现在,当他们接触时,他们只是互相推挤。

我有这个:

我使精灵动态化并且不受重力影响

我找不到任何对我有意义的东西,但我认为问题就在这里

0 投票
0 回答
80 浏览

ios - 在 didBeginContact 方法中未调用类方法

我创建了两个类:一个处理射弹和主场景本身。当我在 didMoveToView 或任何其他方法中调用类方法来生成弹丸时,它可以工作并且我能够看到弹丸。但是,当我希望弹丸在接触后产生时,它不起作用。我之前测试过触点,一切正常。我在这里想念什么?

didBeginContact 方法

类方法

0 投票
0 回答
90 浏览

sprite-kit - SpriteKit - 动态时无接触

我的问题是当我的英雄与他旋转的障碍物接触并受到该接触的影响时,如果我设置动态 = false,则停止检测到接触。这是我的英雄的样子:

0 投票
0 回答
153 浏览

sprite-kit - 如何在第一次联系时只调用一次方法?

我有一个游戏结束/停止功能的问题:

英雄.m

游戏场景.m

在英雄与障碍物发生的每一次碰撞中调用停止函数。我只希望它在英雄与障碍物的第一次接触时调用停止功能,并忽略以下接触。任何帮助都会很棒。

0 投票
1 回答
643 浏览

iphone - 应用程序在 iPhone 4s 上崩溃,但在其他设备上没有:SKPhysicsContactDelegate 可能存在问题?

我在以下设备上运行我的 spritekit 游戏:iPhone 5s、iPhone 4s、iPad air 和 iPad mini。该应用程序运行和除 4s 之外的所有设备。在 4s 上,当应用程序转换到包含 SKPhysicsContactDelegate 的场景时应用程序崩溃,例如:

应用程序崩溃时出现的错误消息是:thread 1 exc_breakpoint (code=exc_arm_breakpoint, subcode = 0xe7ffdefe)

最初,错误在我添加背景音乐的这一行停止了应用程序(这对我来说没有任何意义,因为这一行也在没有 SKPhysicsContactDelegate 的其他场景之一中,但它运行顺利):

当我注释掉背景音乐时,应用程序在这一行崩溃了

在我再次将其注释掉后,错误跳转到这一行

那么这个

当我注释掉它之前崩溃的任何行时,错误一直在移动。一旦我删除了背景音乐和我调用到我的 didMoveToView(view: SKView) 中添加或修改新的或现有的 spritenodes 的所有函数,应用程序就会停止崩溃,这些函数之一的示例如下:

这是在 viewdidload 中使用下面的行添加的

不使用 SKPhysicsContactDelegate 的场景在 4s 上运行良好。我还在模拟器上测试了 4s,当您使用 SKPhysicsContactDelegate 进入场景时,它似乎崩溃了,但与设备不同的是,不会出现错误,设备只是黑屏并崩溃,而 xcode 上没有任何调试会话......有人有吗关于这里发生了什么的最微弱的想法?

0 投票
1 回答
136 浏览

ios - didBeginContact 方法未按预期工作

我有两个节点和一个布尔值。很简单。当节点 A 联系节点 B 并且布尔值为 0 时,什么也没有发生。但是,如果布尔值为 1,则通过 didBeganContact 方法删除节点 A。

非常简单,但是当我想要删除节点 A 时,我遇到了一个烦人的问题。

节点 B 是一个矩形,节点 A 是一个位于矩形中间的正方形,当我使用 touchesBegan 方法点击并按住节点 B 时,布尔值被调用并变为 1。现在在节点 A 接触节点 B 之前,我点击并按住节点 B,当节点 A 接触时,它被移除,但是当节点 A 已经在中间时,我点击节点 B,没有任何反应,我不知道为什么。

矩形法

touchesBegan方法

接触结束

方法

开始联系

0 投票
1 回答
150 浏览

ios - Collision Bit Mask Hero 穿过一切,甚至是地面

我试图避免英雄和硬币之间的碰撞,但不是英雄和草地之间的碰撞。一旦我对英雄应用碰撞位掩码,我的英雄就会通过一切。我希望它通过硬币而不是草地。这是代码,有什么想法吗?

0 投票
3 回答
923 浏览

iphone - 在 SpriteKit 中改变方向而不是速度(快速)

在我的游戏中,我有 2 个精灵,一个球和一个桨。我试图限制反射的角度,这样它就不会撞击并水平移动。我正在使用此代码检查接触角:

如何在不改变速度的情况下改变球反弹时的角度?

(我是精灵套件的新手,所以如果我遗漏任何细节,请告诉我)