問題タブ [skphysicsbody]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
970 参照

dynamic - スプライト キットのアサーションの失敗: (typeA == b2_dynamicBody || typeB == b2_dynamicBody)

これは以前に質問されましたが、元の質問者は動的プロパティを変更する必要がなかったため、質問を解除して自分の質問に答えました。

iOS7 でスプライト キットを使用しています。実行時に SKPhysicsBody の動的プロパティを変更できるようにしたいと考えています。もともと私は touchesBegan: メソッドでそれを変更していました。Apple Dev フォーラムの誰かが変更を didSimulatePhysics: メソッドに移すことを提案しましたが、それも役に立ちませんでした。

このコードはエラーを引き起こします:

}

デバッガーに表示されるエラーは次のとおりです。

アサーションに失敗しました: (typeA == b2_dynamicBody || typeB == b2_dynamicBody)、関数 SolveTOI、ファイル /SourceCache/PhysicsKit/PhysicsKit-4.6/PhysicsKit/Box2D/Dynamics/b2World.cpp、行 670。

私は他の場所を見回しましたが、これは Sprite Kit の Box2D の実装 (およびカバー) に問題があるようです。

多分?

0 投票する
1 に答える
863 参照

ios - SKSpriteNode をサブクラス化するときの物理体の問題?

SKSpriteNode のサブクラス化中に問題が発生しました。サブクラスの実装は次のとおりです。

次に、メインのゲーム シーンでリスを次のように作成しています。

すべてがうまく作成されます。ただし、ゲームプレイ中は、タッチの開始時にリスの物理ボディを「一時停止」し、タッチの終了時に再度有効にします (tempSquirrelBody はシーンの SKPhysicsBody インスタンス変数です)。基本的に、ユーザーが画面に触れている間、リスがユーザーに向かって移動し、他のオブジェクトの上を移動しているという錯覚を与えようとしています。

残念ながら、これは機能していません。物理ボディが中断されず、物理ボディが nil に設定されているはずのときに、リスが他のオブジェクトと衝突します。SSSquirrel クラスからゲーム シーンにコードを移動すると、動作します。私は間違って何をしていますか?

ありがとう!

0 投票する
2 に答える
1277 参照

ios - UIPanGestureRecognizer を使用して SpriteKit スプライトをフリックする

UIGestureRecognizers を使用して、SpriteKit シーン内でスプライトを移動できるようにしようとしています。今のところ問題なく動きますが、画面から指を離すとすぐに止まります。ここでやりたいことは、ジェスチャの終了をスプライトのフリック スタイルのモーションに変換して、その動きに基づいたある程度の力で指を動かしていた方向に継続するようにすることです。

これは私がこれまでに持っていたもので、水平方向の動きではうまくいくようですが、スプライトを Y 軸の間違った方向に送り続けています。

更新 - 現在スワイプするとどうなるかについてもう少し。パンとリリースによって生成される効果により、スプライトは正しい方向に移動しますが、下向きの角度が追加されます。下にスワイプすると上に移動し、上にスワイプすると下に移動します。

更新 2 - このコードは私が達成したいことに対して単純すぎる可能性があります。その動きに基づいて特定の速度ベクトルを与えることができるように、力を適用する前にスプライトがどれだけ移動する必要があるかを計算する必要がありますか?

0 投票する
1 に答える
871 参照

ios - - (void)didBeginContact:(SKPhysicsContact *) 発砲を拒否

1) SKScene ヘッダーにデリゲート プロトコルを設定します。

2) デリゲートを物理世界に設定します。

3) ビットマスクを設定します。

4) 私は自分のプレーヤーを作ります:

5) エンド タイルを作成します。

6) しかし、これは決して呼び出されません! :(

迷路ゲームを作っています。プレイヤーは現在、すべての壁に問題なく衝突していますが、最後のタイルに到達したときにゲームを終了させたいです。現在、連絡先イベントは呼び出されていません。何が問題なのかよくわかりません。デバッガーの出力をすべての出力を表示するように設定しています (とにかくイベントに到達した場合は、すべての子を削除する必要があります)。

どうして

0 投票する
1 に答える
590 参照

ios - スプライト キットの物理演算のクロックを高速化する

スプライトキットの物理世界を使用したアニメーションがあります。物理を「早送り」して、アニメーションを表示せずに結果またはパスを取得する方法があるかどうかを調べていました。私はphysicsWorldを見ましたが、これについて何も見ませんでしたか? どうすればこれを行うことができるかについてのアイデアはありますか?

基本的に、ユーザーが実行を決定する前に、アニメーションの結果の場所をユーザーに表示したいと考えています。