0
嘿傢伙我有一個問題。碰撞後迅速設置isdynamic爲false
在我的遊戲中,我想讓湯姆讓物體(塊)從天而降,然後當它們撞到地面或另一個塊凍結/保持原位/不再動態時。
我創建了一個函數,我隨機創建了一個讓它們從天而降的塊。
func spawnItems() {
var item = SKSpriteNode()
item = SKSpriteNode(imageNamed: "block3");
item.name = "block";
item.size = CGSize(width: 90, height: 90)
item.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: 89.8, height: 89.8))
item.physicsBody?.isDynamic = true
item.physicsBody?.affectedByGravity = true
item.physicsBody?.allowsRotation = false
item.physicsBody?.restitution = 0
item.physicsBody?.categoryBitMask = ColliderType.BLOCK
item.physicsBody?.collisionBitMask = ColliderType.PLAYER | ColliderType.BLOCK | ColliderType.GROUND
item.physicsBody?.contactTestBitMask = ColliderType.PLAYER | ColliderType.BLOCK | ColliderType.GROUND
item.zPosition = 30;
item.anchorPoint = CGPoint(x: 0.5, y: 0.5);
item.position.x = CGFloat(getKoordinates());
item.position.y = 800;
self.scene?.addChild(item)
}
override func didMove(to view: SKView) {
Timer.scheduledTimer(timeInterval: TimeInterval(1), target: self, selector: #selector(GameplayScene.spawnItems), userInfo: nil, repeats: true);
}
現在我想將isDynamic設置爲false,當塊撞擊地面/塊時,它會保持原位。
我該怎麼做?
是的,我試過。但問題是,當對象碰撞時,每次我將isdynamic設置爲false時,將來創建的每個其他項目也會將isdynamic設置爲false。你懂我的意思嗎? – Chief
你可以通過編輯問題發佈你的'didBegin'函數的代碼嗎? –