問題タブ [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 投票する
1 に答える
1109 参照

ios - 物理ボディがビットマスク設定に応答しない

衝突しないように物理ボディに衝突ビットマスクを設定していますが、衝突はまだ発生しています。

ホイールとプレーヤーが衝突するべきではありませんが、衝突しています。私

0 投票する
0 に答える
129 参照

ios - 別のクラスで初期化するとphysicsBodyが機能しませんか?

なんらかの理由で、メイン プレーヤーの物理ボディがシーンで実際に機能していません。シーンでは、プレーヤーを初期化します

私のエスキモークラスの初期化は次のとおりです。

これが私の物理クラスの初期化の一部です。

物理ボディが存在するかどうかを確認するためだけに、シーン クラスでランナーの復元を出力し、適切に出力されました。ただし、重力ベクトルを設定しても、ランナーはその影響を受けず、適用する力もありません。Physics クラスがなくても、Eskimo クラス自体にphysicsBody があったときは以前は機能していたので、理由はわかりません。私がここに欠けているものはありますか?私がエスキモーのクラスでやったように、physicsBodies を同一視することはできませんか?

0 投票する
3 に答える
413 参照

ios - contactDelegate が設定されていないのはなぜですか?

行から次の警告が表示されます

互換性のないタイプ 'PlayLevel *__strong' から 'id' に割り当てています

何が原因なのかまったくわかりません。これは私のヘッダーがどのように見えるかです:

何が原因なのですか?contactDelegate が必要です。ありがとう!

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

sprite-kit - SKPhysicsJoint は固定点の周りの軌道を許可します

スプライトキットの物理ジョイントを使用して、オブジェクトを一定の距離で別の軌道に乗せるにはどうすればよいでしょうか?

オブジェクト A は、オブジェクト B を動かしてはならず、力が加えられたときにオブジェクト A を周回する必要があります。

これを実現するために、2 つの物理体の間に SKPhysicsJointLimit 制限を追加してから、オブジェクト B に力を適用してみました。結果として生じる動作は奇妙だと思いますが、そうではないかもしれません... その結果、オブジェクト B はぐらつきますが、永遠にオフになり続け、まったく移動していないオブジェクト A によって拘束されているようには見えません。 .

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

sprite-kit - 同じ SKPhysics ボディ オブジェクトを持つ複数のスプライト

スプライトキットを使って空港シミュレーションゲームを作っています。SKPhysics ボディを追加する前のゲーム状態のレイアウトはそのままで、SKPhysicsbody がノードに設定されると、スプライト ノードが警戒します。

これは、SKPhysicsBody なしでシーンに追加しているものです。多くのゲートがあり、ゲートの隣にフライトが立っている空港を想像してみてください。それが、以下のコードで達成しようとしていることです。

@実装 MyScene

メソッドのコード [self setupFlightAtPoint:xPos]

平面オブジェクト法

これまでのところ、すべて問題ないように見えます。添付の​​ Scene1 という画像を参照して、上記のコードで何が表示されるかを確認してください。ここに画像の説明を入力

物理ボディをプレーンスプライトに設定しようとすると、ここから問題が始まります。私の「newPlane」メソッドでは、以下のコードを追加しています

Physicsbodies を設定した後、私のシーンは次のようになります

ここに画像の説明を入力

現在、シーンに平面スプライトが 1 つしか表示されていませんが、その理由がわかりません。

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

sprite-kit - SpriteKit で L 字型の SKPhysicsBody ノードを構築するには?

L 字型の多角形がありますが、これは明らかに凹状であるため、複数SKPhysicsBodyの を使用する必要があります。スプライトを含むマスター ノードと、L を構成する物理ボディを持つ長方形のノードを持つ 2 つの子ノードを試しました。これを試してみましたが、オブジェクトは物理の影響を受けません。

私が見逃しているのは、マスターノードに物理ボディが接続されていないことです。これが問題になる可能性がありますが、そこに何を配置すればよいかわかりません。

シンプルな長方形のボディでスプライト ノードをテストしたところ、問題なく動作しました。

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

ios - SKPhysicsWorld スケーリングされたノードで物理をシミュレート

ズームインおよびズームアウトできる物理体のレベルを含む SpriteKit ゲームを構築しようとしています。ズーム レベルを変更すると、物理の世界が期待どおりに動作せず、奇妙なことが起こります。

物理ボディを持つノードがアニメーション化し、期待どおりに動作します。レベルのズームは、すべてのゲーム要素を含む単一の「ワールド ノード」のスケールを調整するピンチ ジェスチャで処理されます。これは、シーンのスケーリングが恐ろしいことを行うように見えるため、これを処理する便利な方法であり、ワールド ノードの上に任意のゲーム インターフェイス要素用の個別のスケーリングされていないノードを簡単に追加できます。

ズームは次のように機能します。

通常のズーム レベルでは、すべてがうまく機能し、視覚的には、さまざまなズーム レベルでもすべてがうまく見えます。問題は、ズームが変更されると、物理体が他のオブジェクトに対して同じ速度ではなく、同じ速度で移動し続けることです。その結果、シーンをより多く表示するためにズームアウトすると、すべてがはるかに速く移動します。

これは、物理ワールドがシーンにのみ接続されており、「ワールド ノード」の調整されたスケールを認識していないという事実の副作用のようです。ただし、物理体は相対空間内でノードを同じ速度で移動し続ける必要がありますか?

SpriteKit がそのように動作する理由、またはこれを回避する方法について、誰かが洞察を提供できますか?

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

ios - SKNodeの「原点」とは?

Docs forSKPhysicsBody bodyWithCircleOfRadius:は次のように述べています。

所有ノードの原点を中心とする円形の物理ボディを作成します。

原点はノードの位置ですか?もう見つかりませんでした。

0 投票する
3 に答える
1997 参照

sprite-kit - 反転した x スケールが衝突処理を中断する (SpriteKit 7.1)

SKNode の xScale プロパティを使用して、スプライトを水平方向に反転します。現在、iOS をバージョン 7.1 に更新した後、水平方向のフリップにより、オブジェクトが地面の中に沈みます。(下のアニメーションを参照)。この問題は、xScale プロパティでのみ発生します。垂直方向のフリップは正常に機能します。

Xスケールフリップ問題

0 投票する
0 に答える
157 参照

ios - SKPhysicsContact のクラッシュ - 不正なアクセス

さて、私はかなり混乱しています。viewcontroller をphysicsworld のデリゲートとして設定しました。Flappy Bird がコインと衝突すると、次のメソッドが実行されます。

鳥がコインに触れたときに badaccess コールが発生することがあるため、これは私には意味がありませんが、95% の確率で期待どおりに動作します。シーンからコインが削除されるのは、鳥がコインに触れたときか、coin.position.x < (0.5 * coin.size.width); のときだけです。

特に if (contact != nil && contact.bodyA != nil) と書いたので、なぜ badaccess になっているのかわかりません。さらに、代理人が「ヘイ! この SKPhysicsContact でこのメソッドを実行しますか?

誰からの助けはありますか?