小编Sif*_*eng的帖子

Sprite Kit physicsBody.resting行为

我正在使用Swift和Sprite Kit在XCode Beta 6上开发游戏.为了检测所有节点是否正在睡眠,我检查他们的physicsBody.resting属性.在更新方法中,我打印出结果.

import SpriteKit

class GameScene: SKScene, SKPhysicsContactDelegate {

    var hero:SKSpriteNode!

    override func didMoveToView(view: SKView) {
        self.physicsWorld.gravity = CGVectorMake(0, 0)
        self.physicsWorld.contactDelegate = self
        self.physicsBody = SKPhysicsBody(edgeLoopFromRect:self.frame)


        hero = SKSpriteNode(imageNamed: "Spaceship")
        hero.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame))
        hero.zPosition = 10.0
        hero.physicsBody = SKPhysicsBody(circleOfRadius: hero.size.width/2)
        hero.physicsBody.allowsRotation = false
        hero.physicsBody.linearDamping = 0.5
        self.addChild(hero)
    }

    override func update(currentTime: CFTimeInterval) {
        if hero.physicsBody.resting {
            println("resting")
        } else {
            println("moving")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,结果如下:

移动休息移动(n次相同)移动休息

那么为什么英雄在移动,尽管我没有做任何事情.节点移动N次并休息(休息),之后继续移动.

谁能解释这种行为?这是一个错误还是我错过了什么?提前致谢.

game-physics sprite-kit swift

7
推荐指数
1
解决办法
2914
查看次数

标签 统计

game-physics ×1

sprite-kit ×1

swift ×1