2017-01-25 7 views
1

В моей игре, когда пользователь прикасается к экрану, пуля создается с помощью func fire(), но ничего не происходит.Почему applyImpulse не работает в быстром spritekit?

Ниже мой код:

private func fire(position: CGPoint) { 
     let bullet = SKShapeNode(circleOfRadius: 2) 
     bullet.strokeColor = SKColor.darkGray 
     bullet.fillColor = SKColor.darkGray 
     let posX = (position.x) * -1 
     let posY = (position.y) * -1 
     let pos = CGPoint(x: posX, y: posY) 
     let theta = atan2((pos.y - player.position.y), (pos.x - player.position.x)) 
     let finalPos = CGPoint(x: (player.position.x) + (CGFloat(playerRadius) * cos(theta)), y: (player.position.y) + (CGFloat(playerRadius) * sin(theta))) 
     bullet.physicsBody = SKPhysicsBody(circleOfRadius: 2) 
     bullet.position = finalPos 
     bullet.physicsBody!.affectedByGravity = false 
     bullet.physicsBody!.isDynamic = false 
     bullet.physicsBody!.pinned = false 
     numberOfBullets += 1 
     bullet.name = String(numberOfBullets) 
     bullet.physicsBody!.collisionBitMask = bodyType.enemy.rawValue 
     bullet.physicsBody!.categoryBitMask = bodyType.bullet.rawValue 
     bullet.physicsBody!.contactTestBitMask = bodyType.enemy.rawValue 
     bullet.physicsBody!.usesPreciseCollisionDetection = true 
     world.addChild(bullet) 
     bulletForce(bullet: bullet) 
    } 

    private func bulletForce(bullet: SKShapeNode) { 
     let dx = Double((bullet.position.x - player.position.x)) 
     let dy = Double((bullet.position.y - player.position.y)) 
     let vector = CGVector(dx: dx, dy: dy) 
     bullet.physicsBody!.applyImpulse(vector) 
    } 

Спасибо заранее.

+0

динамических = ложь, прочитать https://developer.apple.com/reference/spritekit/skphysicsbody – Knight0fDragon

+0

поблагодарить I полностью забыл. я лучше удаляю вопрос? –

+1

Нет, удаление вопроса причиняет вам боль, я делаю быстрый ответ – Knight0fDragon

ответ

1

Причина в том, что у вас есть isDynamic = false.

isDynamic означает, что силы могут быть применены к телу.

Для более чтений, см: читать developer.apple.com/reference/spritekit/skphysicsbody

 Смежные вопросы

  • Нет связанных вопросов^_^