小编All*_*ton的帖子

我的物理联系人没有在SpriteKit中联系

这是我在堆栈上发布的第一个问题.我正在使用Xcode 7.3.1,iOS 9.3和Swift 2.还在模拟器和我的iPad上直接测试.我做了大量的搜索,阅读了2本Spritekit Physics书籍,观看了大量的视频教程以及书面教程.我以前写的身体物理没有问题,而且很多时候都有较小的项目,但这个只是给我没有反馈.这个问题之前已在特定情况下提出过,即2次碰撞与相同spritenode或者collisionBitMask和contactTestBitMask之间有什么区别.我知道这些差异并且还意识到您希望联系的每个对象都需要categoryBitMask.首先,我已分配全局Physicsbody结构(试图直接二进制位掩码和对应于每个相应的Int32与或者没有成功),一个物理委托和每个SKSpritenode与其配对的接触/ s的对应.我已经尝试了很多方法来实现didBeginContact(关于它的结构方式),没有一种方法可以与另一方面有所区别.
之前我提到了反馈.除了我的主要球员,子弹,新敌人和敌人之外,我已经淘汰了所有人.当我尝试将接触或碰撞的结果打印到控制台时,就好像它甚至无法读取.我没有活动.这些spritenode都在1级(GameScene)中,我已经为每个功能spritenode尝试了单独的类,没有运气.此外,对于单独的类,它似乎会使事情变得更糟,即使有用于在类和子类之间进行通信的协议.哪些使用单独的类对我来说仍然是新的,尽管我知道它是首选的方式.我将只展示我认为可能需要被视为最小化的代码,但如果还有其他需要被看到的话,请告诉我.我只是希望子弹击中飞机,我可以从那里到我的其他物体.

import AVFoundation
import SpriteKit
import GameKit

// Binary connections for collision and colliding
struct PhysicsCategory {
    static let GroundMask : UInt32 = 1    //0x1 << 0
    static let BulletMask : UInt32 = 2    //0x1 << 1
    static let PlayerMask : UInt32 = 4    //0x1 << 2
    static let EnemyMask  : UInt32 = 8    //0x1 << 3
    static let EnemyFire  : UInt32 = 16   //0x1 << 4
    static let All        : UInt32 = UInt32.max …
Run Code Online (Sandbox Code Playgroud)

sprite-kit skphysicsbody skspritenode xcode7 swift2

4
推荐指数
1
解决办法
734
查看次数

标签 统计

skphysicsbody ×1

skspritenode ×1

sprite-kit ×1

swift2 ×1

xcode7 ×1