1

シンプルなシーンでテストしました。

FuncdidBeginContactを呼び出すことができません。

と を使ってみましcollisionBitMasks1.physicsBody = SKPhysicsBody(circleOfRadius: 100)。問題は解決しませんでした。

修正するにはどうすればよいですか?

import SpriteKit

class Test2Scene: SKScene, SKPhysicsContactDelegate {
    override func didMoveToView(view: SKView) {
        physicsWorld.contactDelegate = self
        physicsWorld.speed = 0


        let s1 = SKSpriteNode(imageNamed: kImagePlayer)
        s1.position = CGPointMake(100, 100)
        s1.physicsBody = SKPhysicsBody(rectangleOfSize: s1.size)
        s1.physicsBody?.categoryBitMask = 1
        s1.physicsBody?.contactTestBitMask = 2
        //s1.physicsBody?.collisionBitMask = 2
        self.addChild(s1)


        let s2 = SKSpriteNode(imageNamed: kImagePlayer)
        s2.position = CGPointMake(100, 500);
        s2.runAction(SKAction.moveToY(0, duration: 1))
        s2.physicsBody = SKPhysicsBody(rectangleOfSize: s2.size)
        s2.physicsBody?.categoryBitMask = 2
        //s2.physicsBody?.collisionBitMask = 1
        self.addChild(s2);

        print("view did load")
    }

    func didBeginContact(contact: SKPhysicsContact) {
        print("aaa")
    }
    func didEndContact(contact: SKPhysicsContact) {
        print("bbb")
    }
}
4

2 に答える 2

0

理由を見つけてください。使用が必要

s1.physicsBody!.dynamic = true
s2.physicsBody!.dynamic = true
于 2016-04-22T02:34:21.130 に答える