問題タブ [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.
swift - SKPhysics を使用して iPad Pro 12.9 で画面境界を設定する
iPad Pro 12.9の物理の境界を作成しようとしています
これが私がやっている方法です:
しかし、Y はランドスケープではかなりずれており (実際の画面よりもはるかに低く、高く)、ポートレートでは少しずれています。しかし、Xは両方で正しいです。
何が間違っているのかわかりません。
アップデート
上記にプリントを追加し、self.frame の maxX と maxY がそれぞれ 375 と 667 であることを示しています。横向きモード。私が知る限り、これらの数値はどちらも本来あるべきものではありませんが、Y が画面の上下から離れている間、X の値は正しく機能します。
この iPad モデルの画面解像度は 2732x2048 (ポイント単位で半分) であるため、これらの数値と報告されたフレーム サイズとの間に相関関係は見られません。
swift - didBeginContact が Swift と呼ばれていない
中央のボールの色が、中央のボールの色に向かって飛んでいる小さなボールと一致すると、プレーヤーがポイントを獲得するアプリに取り組んでいます。したがって、これが機能するには、「敵」と「メインボール」が衝突したときに呼び出す didBeginContact 関数が必要です。動いているのは、動かないメインボールに向かって飛んでいる敵のボールだけです。ビット マスクを正しく設定したと思いますが、didBeginContact 関数が呼び出されていません。誰か助けてくれませんか?
これが私のコードです
swift - スプライト キットでパーティクル エフェクトの物理ワールドの速度を変更するにはどうすればよいですか?
エディターを使用してパーティクル エフェクトを作成しましたが、アプリはすべてのコード (Swift) で作成されています。物理ワールドの速度を変更すると、すべての物理ボディの速度が正常に低下します。しかし、パーティクルを物理ボディにすると、同じ物理ワールドの一部であるはずなのに、速度の変化の影響を受けません。粒子を動的にして重力の影響を受けますが、それでも何もしません。実際に重力ノードの影響を受ける bitMaskCategory を与えようとしましたが、まだphysicsWorld.speedの影響を受けません。
これを行う方法を知っている人はいますか?私はそれが可能であることを知っていますが、何かが欠けています。パーティクルが他の世界の速度を模倣するために個別の重力ノードを作成したくありません。
sprite-kit - コリジョン ビット マスクが設定されていても、SpriteKit の物理ボディは互いに移動します
私は Doodle Jump を使用して、上に移動している場合はプラットフォームを通過できるジャンプのようなゲームを作成していますが、下に移動している場合はプラットフォームを通過できません。この地上のプラットホームの下に入ることができません。ただし、プレーヤーが十分に速く動いている場合、プレーヤーは図のように地上のプラットフォームを通過します。
さらに紛らわしいのは、これはジャンプの 5 回に 1 回しか発生せず、地上のプラットフォームでのみ発生することです。これは、より高いプラットフォームと同じです。もう1つ珍しいのは、プレイヤーが地下にいる場合、画像が完全に地下にあるにもかかわらず、敵が地面にいるかのようにヒットを適切に検出することです. t 同期。
そのプラットフォームと地面を表すためにstatic を使用し、プレイヤーを表すためにSKPhysicsBody
dynamicを使用しています。プラットフォーム用とプレーヤー用がありますSKPhysicsBody
。私も両方持っています。どちらも長方形を使用して物理ボディを実装し、プラットフォームの厚さは 2 です。platform.physicsBody?.collisionBitMask = PhysicsCategory.Player
player.physicsBody?.collisionBitMask = PhysicsCategory.Platforms
physicsBody?.usesPreciseCollisionDetection = true
私はすべてを試しましたが、これを修正できるものはないようです。これがdidSimulatePhysics()
.
didSimulatePhysics()
これがいつ発生したかを適切に検出しますが、player.position.y を調整しようとすると、まったく更新されず、地面の下に閉じ込められたままになります!
ここで何が起こっているかについてのアイデアはありますか?私は機知に富んでいます。前もって感謝します!