私はコインを永久に生み出す機能を作りました。 しかし、ボールに当たったコインを取り除くことができません。ちなみに、私はクラス内でfalseに設定された変数coinBooleanを持っています。ここに私のコードはあります:ブール値がtrueの場合、このノードを削除するにはどうすればよいですか?
func didBeginContact(contact: SKPhysicsContact) {
if ((contact.bodyA.categoryBitMask == groundGroup && contact.bodyB.categoryBitMask == ballGroup) ||
(contact.bodyA.categoryBitMask == ballGroup && contact.bodyB.categoryBitMask == groundGroup)) {
}
if ((contact.bodyA.categoryBitMask == ballGroup && contact.bodyB.categoryBitMask == coinGroup) ||
(contact.bodyA.categoryBitMask == coinGroup && contact.bodyB.categoryBitMask == ballGroup)) {
print("TRUE")
coinBoolean = true
}
else {
print("false")
coinBoolean = false
}
}
func addAndMoveCoins() {
let coin = SKSpriteNode(imageNamed: "Coin")
coin.zPosition = 55
coin.position = CGPoint(x: self.frame.size.width*0.9, y: randomY())
coin.physicsBody = SKPhysicsBody(rectangleOfSize: coin.size)
coin.physicsBody?.categoryBitMask = coinGroup
coin.physicsBody?.contactTestBitMask = ballGroup
coin.physicsBody?.affectedByGravity = false
coin.physicsBody?.dynamic = false
let moveCoinLeft = SKAction.moveByX(-self.size.height, y: 0, duration: 5)
let repeatAction1 = SKAction.repeatActionForever(moveCoinLeft)
let removeObstacle1 = SKAction.removeFromParent()
let moveAndRemove1 = SKAction.sequence([repeatAction1, removeObstacle1])
coin.runAction(moveAndRemove1)
self.addChild(coin)
if coinBoolean == true {
coin.removeFromParent()
}
else if coinBoolean == false {
}
}
func repeatCoins() {
let generateCoins = SKAction.sequence([SKAction.runBlock(self.addAndMoveCoins), SKAction.waitForDuration(1.3)])
let endlessAction = SKAction.repeatActionForever(generateCoins)
runAction(endlessAction)
}
のコインオブジェクトである場合にも、私は))(関数repeatCoinsを走っdidMovetoViewにし、(addAndMoveCoinsを実行didntはチェックする必要があります –