私は、ゲームを開始する間に、ポンと似たゲームに取り組んでいます。スウィフト - SpriteKitを使用して動くノードの速度を上げます
func impulse(){
let randomNum:UInt32 = arc4random_uniform(200)
let someInt:Int = Int(randomNum)
//Ball Impulse
if someInt<49{
ball.physicsBody?.applyImpulse(CGVector(dx: ballSpeed+3, dy: ballSpeed-5))
}else if someInt<99{
ball.physicsBody?.applyImpulse(CGVector(dx: ballSpeed+5, dy: -ballSpeed+5))
}else if someInt<149{
ball.physicsBody?.applyImpulse(CGVector(dx: -ballSpeed-5, dy: -ballSpeed+5))
}else if someInt<200{
ball.physicsBody?.applyImpulse(CGVector(dx: -ballSpeed-3, dy: ballSpeed-5))
}
}
ここで、ballSpeedはボールの設定速度です。 動きのある時間にボールの速度を徐々に上げる方法はありますか?ボールはスクリーンの周りをバウンスし続けるので、dxとdyを使ってボールに力を加えるのは難しいです。
EDIT -
私はただのゲームの開始時にボールにランダム象限/方向を割り当てるための方法の上に使用しています。
インパルス法が実装されている場合、開始。 Game start image
そして、私はボールの速度をゲームプレイ中に時間の経過とともに所定の単位で増やしたいと思います。 Gameplay
スプライトがフィジックス経由で移動している場合、その 'velocity'プロパティは値を持ちます。これはベクトルなので、インパルスのベクトルとしてベロシティを使用して別のインパルスを適用するだけで、より高速にすることができます。 –
あなたの間隔にばらつきがあることをご存知ですか?最初の間隔は0から48、次の値は49から98、次の値は99から148、最後の値は149から200です。最初の3つの範囲は幅が49、最後は51です。 – user1118321
@ user1118321 - 実際には、試合開始時に第3象限にボールを入れるのが好きなので、ここで与えている2つの追加ポイントのボーナスのようになります。 –