問題タブ [skphysicsworld]

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 に答える
140 参照

swift - SKPhysics を使用して iPad Pro 12.9 で画面境界を設定する

iPad Pro 12.9の物理の境界を作成しようとしています

これが私がやっている方法です:

しかし、Y はランドスケープではかなりずれており (実際の画面よりもはるかに低く、高く)、ポートレートでは少しずれています。しかし、Xは両方で正しいです。

何が間違っているのかわかりません。

アップデート

上記にプリントを追加し、self.frame の maxX と maxY がそれぞれ 375 と 667 であることを示しています。横向きモード。私が知る限り、これらの数値はどちらも本来あるべきものではありませんが、Y が画面の上下から離れている間、X の値は正しく機能します。

この iPad モデルの画面解像度は 2732x2048 (ポイント単位で半分) であるため、これらの数値と報告されたフレーム サイズとの間に相関関係は見られません。

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

swift - didBeginContact が Swift と呼ばれていない

中央のボールの色が、中央のボールの色に向かって飛んでいる小さなボールと一致すると、プレーヤーがポイントを獲得するアプリに取り組んでいます。したがって、これが機能するには、「敵」と「メインボール」が衝突したときに呼び出す didBeginContact 関数が必要です。動いているのは、動かないメインボールに向かって飛んでいる敵のボールだけです。ビット マスクを正しく設定したと思いますが、didBeginContact 関数が呼び出されていません。誰か助けてくれませんか?

これが私のコードです

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

swift - スプライト キットでパーティクル エフェクトの物理ワールドの速度を変更するにはどうすればよいですか?

エディターを使用してパーティクル エフェクトを作成しましたが、アプリはすべてのコード (Swift) で作成されています。物理ワールドの速度を変更すると、すべての物理ボディの速度が正常に低下します。しかし、パーティクルを物理ボディにすると、同じ物理ワールドの一部であるはずなのに、速度の変化の影響を受けません。粒子を動的にして重力の影響を受けますが、それでも何もしません。実際に重力ノードの影響を受ける bitMaskCategory を与えようとしましたが、まだphysicsWorld.speedの影響を受けません。

これを行う方法を知っている人はいますか?私はそれが可能であることを知っていますが、何かが欠けています。パーティクルが他の世界の速度を模倣するために個別の重力ノードを作成したくありません。

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

sprite-kit - コリジョン ビット マスクが設定されていても、SpriteKit の物理ボディは互いに移動します

私は Doodle Jump を使用して、上に移動している場合はプラットフォームを通過できるジャンプのようなゲームを作成していますが、下に移動している場合はプラットフォームを通過できません。この地上のプラットホームの下に入ることができません。ただし、プレーヤーが十分に速く動いている場合、プレーヤーは図のように地上のプラットフォームを通過します。

ここに画像の説明を入力

さらに紛らわしいのは、これはジャンプの 5 回に 1 回しか発生せず、地上のプラットフォームでのみ発生することです。これは、より高いプラットフォームと同じです。もう1つ珍しいのは、プレイヤーが地下にいる場合、画像が完全に地下にあるにもかかわらず、敵が地面にいるかのようにヒットを適切に検出することです. t 同期。

そのプラットフォームと地面を表すためにstatic を使用し、プレイヤーを表すためにSKPhysicsBodydynamicを使用しています。プラットフォーム用とプレーヤー用がありますSKPhysicsBody。私も両方持っています。どちらも長方形を使用して物理ボディを実装し、プラットフォームの厚さは 2 です。platform.physicsBody?.collisionBitMask = PhysicsCategory.Playerplayer.physicsBody?.collisionBitMask = PhysicsCategory.PlatformsphysicsBody?.usesPreciseCollisionDetection = true

私はすべてを試しましたが、これを修正できるものはないようです。これがdidSimulatePhysics().

didSimulatePhysics()これがいつ発生したかを適切に検出しますが、player.position.y を調整しようとすると、まったく更新されず、地面の下に閉じ込められたままになります!

ここで何が起こっているかについてのアイデアはありますか?私は機知に富んでいます。前もって感謝します!