Я работаю над своей игрой, но у меня возникает проблема, когда я пытаюсь вызвать врага из сказанного, я могу порождать их только сверху и снизу сцены, которую я не знаю почемувызвать врага со стороны Sprite-kit
Это мой таймер:
override func didMoveToView(view: SKView) {
initialzeGame()
NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("spawnEnemy"), userInfo: nil, repeats: true)
}
И это все остальное:
func randomBetweenNumbers(firstNum: CGFloat, secondNum: CGFloat) -> CGFloat {
return CGFloat(arc4random())/CGFloat(UINT32_MAX) * abs(firstNum + secondNum) + min(firstNum, secondNum)
}
func spawnEnemy() {
//supposed to pick random point within the screen width
let Pos = randomBetweenNumbers(0, secondNum: frame.height)
//let PosTwo = randomBetweenNumbers(0, secondNum: frame.height)
let enemy = SKSpriteNode(imageNamed: "zombie") //create a new enemy each time
enemy.position = CGPointMake(CGFloat(Pos), self.frame.size.width/16)
enemy.physicsBody = SKPhysicsBody(circleOfRadius: 7)
enemy.physicsBody?.affectedByGravity = true
enemy.physicsBody?.categoryBitMask = 0
enemy.physicsBody?.contactTestBitMask = 1
enemy.size = CGSize(width: 80, height: 70)
let enmyact = SKAction.moveTo(hero.position, duration: 2)
enemy.runAction(enmyact)
addChild(enemy)
}
вы уверены, что враг не просто нерест в области, которая в настоящее время подстриженными, также, вы хотите использовать frame.width, не frame.height, так как высота> то ширина, ваши враги снова находятся в область, которая не находится на экране – Knight0fDragon
@AliMahdi Это: 'enemy.physicsBody? .affectedByGravity = true' в сочетании с этим:' enemy.runAction (enmyact) 'будет производить очень странные результаты. Я не уверен, как вы этого не заметили уже сами? Враг имеет динамическое тело, подверженное действию силы тяжести, означает, что мир физики применит определенную силу к этому телу (и потянет его в определенном направлении). Кроме того, в то же время вы используете 'SKAction' для перемещения врагов, где хотите. Это нарушит физическое моделирование, и у вас будет плохое вражеское движение. Наверное, вы хотите сделать врагов незатронутыми силой тяжести. – Whirlwind