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);
}
블록이지면/블록에 닿아 서 자리를 유지할 때 isDynamic을 false로 설정하려고합니다.
어떻게하면됩니까?
당신은 당신의 클래스가SKPhysicsContactDelegate
입니다 확인해야
나는 그것을 시도했다. 그러나 문제는 객체가 충돌 할 때마다 isdynamic을 false로 설정할 때마다 미래에 생성 될 모든 다른 항목도 isdynamic 세트를 false로 설정한다는 것입니다. 내가 뭐라는지 알 겠어? – Chief
질문을 편집하여'didBegin' 함수의 코드를 게시 할 수 있습니까? –