目前我的应用程序有一个敌人,射击子弹从敌人的任何X和Y位置,可能是朝着屏幕的底部 - 子弹的大小旅行。这是从上到下在敌方轨道上只发生一次的SKAction,这个轨迹都是随机的X位置。Swift3 SpriteKit:角度射击子弹
我想要做的是在4个不同的角度拍摄4发子弹。 45度,135度,225度和270度。
目前我fireBullet功能如下:
func fireBullet() {
let bullet = EnemyBullet(imageName: bulletImage, bulletSound: bulletSound)
bullet.name = "Bullet"
bullet.setScale(1)
bullet.position = CGPoint(x: enemy.position.x, y: enemy.position.y - bullet.size.height)
bullet.physicsBody = SKPhysicsBody.init(rectangleOf: bullet.size)
bullet.physicsBody!.affectedByGravity = false
bullet.physicsBody!.categoryBitMask = PhysicsCategories.enemy
bullet.physicsBody!.collisionBitMask = PhysicsCategories.none
bullet.physicsBody!.contactTestBitMask = PhysicsCategories.player
gameScene.addChild(bullet)
let moveBullet = SKAction.moveTo(y: -gameScene.size.height * 0.1, duration: bulletTimeInScreen)
let deleteBullet = SKAction.removeFromParent()
let bulletSequence = SKAction.sequence([moveBullet, deleteBullet])
bullet.run(bulletSequence)
}
我假设我可以改变子弹bullet1和重复的文档bullet2,3和4。随着我大概可以使用zRotation旋转每颗子弹到那个特定的角度。
我无法弄清楚是在哪个方向移动子弹。具体来说,如何从当时敌人的位置找出SKAction.moveTo的X和Y.
我已经搜索并阅读了很多文章,但没有一篇能够指出我正确的方向。
您想了解如何工作ATAN2,基本上你要转换矩形坐标到极坐标 – Knight0fDragon
@JoseCarrillo我建议你读raywenderlich.com HTTPS的精彩教程:// WWW。 raywenderlich.com/57368/trigonometry-game-programming-sprite-kit-version-part-1 –