ios - didBeginContact() 在接触发生之前调用

标签 ios swift sprite-kit

我有两个 Sprite 节点,我已确保 self.size 和它们各自物理体的大小相同,但我仍然得到一个非常奇怪的行为,如下所示: Odd behaviour

这张照片是在检测到碰撞后拍摄的,我暂停了场景。为什么会出现这种情况?

以下是设置不同尺寸的代码: 在我的 Player 类的 init() 内部(圆形节点):

 super.init(texture: texture, color: color, size: CGSize(width: 100, height: 100))

然后:

 self.physicsBody = SKPhysicsBody(circleOfRadius: self.size.width/2, center: self.position)

最佳答案

GameViewController.swift 中打开物理视觉表示,如下所示:

 skView.showsPhysics = true

self.size 在你的情况下可能指的是场景。您需要的是设置物理体的大小,如下所示:

yourNode.physicsBody = SKPhysicsBody(rectangleOfSize: yourNode.size)

另请记住,如果您更改节点的 anchor ,您可能会得到意想不到的结果。 anchor 定义如何相对于节点绘制纹理。对节点的物理体没有影响。

关于ios - didBeginContact() 在接触发生之前调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34224121/

相关文章:

iphone - 配置收到推送通知时播放的声音

ios - DynamoDB batchGetItem 返回错误 : "Supplied AttributeValue is empty"

sprite-kit - 无法使用游戏中心功能

ios - SpriteKit 中的多个按钮

ios - 通过 Storyboard 自定义键盘高度

iphone - 如何通过互联网将高质量的视频和音频从 iPhone 传输到远程服务器

objective-c - 如何在 objective-c 中创建 BOOL 实例变量?

ios - 如何使用 AppDelegate 在 View 之间共享 iAd 横幅

ios - Json 解码为具有动态值类/结构类型的 swift 类

ios - 相互交换 Sprite 位置