現在、私のアプリには、敵から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のための弾丸を変更し、私はおそらく、各弾丸を回転させるzRotationを使用できるものとbullet2、3と4のために繰り返すことができることを仮定していますその特定の角度まで。
私が理解できないことは、どの方向に弾を動かすかである。具体的には、その時の敵の位置からSKAction.moveToのXとYを求める方法。
私は多くの記事を検索して読みましたが、正しい方向で私を指摘することはできません。
は、私はあなたがraywenderlich.com HTTPS上でこの素晴らしいチュートリアルを読んで推薦 – Knight0fDragon
@JoseCarrilloを調整します。 raywenderlich.com/57368/trigonometry-game-programming-sprite-kit-version-part-1 –