2016-09-25 6 views
0

私はSpriteKitとSwift 3を使用してゲームを作っており、ゲーム内のボールノードの速度を除いてゲームのすべての面を把握しています。私は両方のテストをしていて、実際にプログラムで設定されているスピードが本当にわからないので、異なる関数applyImpulse()とball.physicsBody.velocityと混同しています。私が何を使用すべきかについての明確化はすばらしいでしょうか?SpriteKit&Swift Ball Speed

ボールの速度をコンソールごとに衝突ごとに表示してテストしている間に、ボールの速度が、私が持っていなかったパドルのような他のノードに当たったときに、ボールとの衝突の際にボールのスピードで起こるものを具体的にコード化しています。要約すると

私は感謝:SpriteKitベースでのボールの速さとどのように私は(私が使用すべきかの方法/機能)

  • それに近づく必要がありますについて

    1. ただ、一般の明確化はどのようにでしょうそれはそうボールのスピードは、これらの非常に長いランダム小数に

    おかげ

    を持っていないことを確認します210
  • +0

    を助け

    applyImpulse... 

    希望を使用する必要があります非常に長く、非常に高く、腹腔前のよりもはるかに高いです。もしそうなら、それは衝突後のある時点で合理的な値に落ち着いたのでしょうか?衝突するとオブジェクトの速度に何か起こるようなコードは通常ありません。物理エンジンがそれを行います。 –

    答えて

    -1

    値に関しては、インパルスと力の値が何であるかという集合ルールは実際にはありません。それはあなたのスプライトの物理的なボディがどれほど大きいかによって決まります.80のインパルスは1スプライトサイズの完全なジャンプ値ですが、それを半分のサイズにして80を突然高くするよりも良いでしょう。重力、質量などの要因もこれに影響を与えることがあります。 通常は、目的の結果が得られるまで値を再生します。

    パドルとの衝突に関しては、ビットマスク値とダイナミックプロパティを確認する必要があります。デフォルトでSpriteKitはすべてのオブジェクトに衝突を設定します。したがって、パドル/ボールが互いに無視するように具体的に指示しないと、衝突することになります。 衝突時にスプライトがどのように振る舞うかに影響を及ぼすことがある反発、摩擦、減衰などのこともあります。 SpritKitの物理/衝突に関するチュートリアルが多数あります。また、Appleのドキュメントもあります。速度およびインパルス/力の差に関しては

    、リンゴのドキュメントまず

    」ごとに、あなたはその速度と角速度のプロパティを設定することで、直接物理体の速度を制御することができます。多くの他のプロパティと同様に、フィジカルボディが最初に作成されたときにこれらのプロパティを設定し、必要に応じてフィジックスシミュレーションを調整することがよくあります。たとえば、ロケットがミサイルを発射できるスペースベースのゲームを作成しているとします。ミサイルを発射するには、ミサイルの発射速度に発射方向に追加のベクトルを加えなければならない。

    Wh身体がシミュレーションにある場合、身体に加えられる力に基づいて速度を調整することがより一般的です。速度変化、衝突、別のソースは、後述する「

    https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Physics/Physics.html

    だから基本的には一般的な経験則では、これは次のとおりです。あなたは物理学のボディを作成するときに

    1)のみ速度プロパティを設定します。私はまだ私のゲームのためにこれを行う必要はなかった。私は本当に速度プロパティを使用 唯一の時間は、私は一貫性のあるダブルジャンプ

    ...velocity.dy = 0 
    ...applyImpulse( 
    

    2を持つように0に設定する必要があり、このようなダブルジャンプなどのもののためである)あなたはすでにゲームをプレイしているとき

    よりあなたが継続的にあなたのボールを移動しようとしている場合

    a)は、あなたのSKSceneの更新方法のようなもので

    applyForce... 
    

    を使用する必要があります。

    b)は、あなたのボールのジャンプをしたい場合は、その基本的に短い1時間の事は、あなたが意味するか、これは「長くてランダム小数点値」によって

    +0

    値はニュートン、https://en.wikipedia.org/wiki/Newton_(unit) – Knight0fDragon

    +0

    に基づいています。インパルスを直接速度に適用し、力を適用します速度に適用する前に物理的な一連の一連のテスト – Knight0fDragon

    +0

    すべての明確化のためにあまりにも多くのおかげで本当に男性を助けた –