0
私は質問があります。衝突後のスウィフト設定はダイナミックになります
私のゲームでは、オブジェクト(ブロック)が空から落ちるようにして、地面や別のブロックにぶつかって凍っている/固定している/もう動かないようにします。
私はランダムにブロックを作成して空から落ちるような関数を作成しました。
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);
}
は今、私はそれが所定の位置にとどまるように、ブロックが地面/ブロックに当たると、falseにisDynamicを設定します。
どうすればよいですか?あなたは、あなたのクラスを確認する必要があり
はい私はそれを試みました。問題は、オブジェクトが衝突したときにisdynamicをfalseに設定するたびに、将来作成される他のすべてのアイテムもisdynamicセットがfalseに設定されるということです。分かりますか? – Chief
質問を編集して 'didBegin'関数のコードを投稿できますか? –