問題タブ [skphysicsjoint]
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.
ios - SKPhysicsJointPin の lowerAngleLimit は壊れていますか?
SKPhysicsJointPin オブジェクトで角度の上限/下限が適切に機能するようになったことは一度もありませんが、その理由がようやくわかったと思います。lowerAngleLimit が負の値に設定されていると、毎回壊れます。正の値でのみ正しく機能します。
たとえば、この 90º ピンを設定するとします。
次に、スプライトをその下限に向かってゆっくりと回転させます。-90° に達した瞬間に、スプライトが突然 0° までズームします。-90º で固定されることはありません。どのような負の値を試しても問題ありません。-1.0 はまったく同じことを行います。SpriteKit のバグのようです。他の誰かがこれを機能させたり、回避策を見つけたりしましたか?
sprite-kit - シーンに 3 つのアンカー ポイントを作成する SKPhysicsJointLimit
SKPhysicsJointLimit を使用して、シーン内で 2 つの SKSpriteNode を接続しようとしています。一方のノードは物理シミュレーションの影響を受けず、もう一方のノードは影響を受けます。これにより、振り子の動きが発生するはずです。ただし、SKPhysicsJointLimit を使用してノードを接続すると、3 つのアンカー ポイントが作成されるように見えます。
ここで見ることができますhttp://imgur.com/a/hQqVP緑のノードは物理シミュレーションの影響を受けません。
シーンのアンカー ポイントは (0.5, 0.5) ですが、(0, 0) に設定すると物理シミュレーションは機能しますが、正しい位置にありません。もう 1 つの回避策は、スケールされたシーンの幅と高さによってオフセットされる一時的な代替位置を作成し、それらをジョイントの作成に使用することです。以下のコードはこれを示しています。
まず、なぜこれが機能するのかわかりません。結果のポイントはシーン座標にありません。また、たとえばスプライトがワールド ノードに含まれていて、ワールド ノードがシーン内で位置を変更している場合、この「解決策」は機能しません。シーン内のノードの位置が SKPhysicsJoint で使用されている場合でも。
したがって、ノードの位置をオフセットすることなく、アンカーが (0.5,0.5) のシーンで SKPhysicsJointLimit を適切に機能させる方法はありますか。
swift - node.physicsBody.joints ダウンキャスト エラー
次のコードではエラーが発生します。物理ジョイント配列にクラス PKPhysicsJoint があるようです。Swift でジョイントを反復処理する方法を知っている人はいますか?
ドキュメントには、physicsBody.joints が SKPhysicsJoint の配列を返す必要があると記載されています。
エラーが発生します:
sprite-kit - pinned=true および allowRotation=false で SKNode zRotation 値がジャンプする
この問題は、この問題に関連している可能性があります。しかし、私はその議論に追加するのに十分な評判を持っていません.
固定されたノードの zRotation がシーン スペースで正または負の PI に達する (または近くなる)と、node.physicsBody.allowRotation = false の場合、ノードのローカル zRotation は即座に負または正の 5.497... ラジアンにジャンプします。回転方向について。
ノードが移動している場合、視覚的な結果として、ノードのチェーンが反転したり、ジッターしたり、一般的に誤動作したりします。
ノードが動いていない場合でも、結果は発生しますが、目立った視覚効果はありません。
以下の小さなテストケースで問題を再現しました。
編集:この問題は、一連のボディが固定されている場所に限定されているようです。ここでは、ノードがネストされている場所と、ノードが同じ親を持ち、手動でシリーズに固定されている場所の両方を見てきました。
編集 2:更新シーケンスの過程でノード zRotation 値を出力するようにテスト ケースを変更しました。
編集 3: Apple に確認したところ、これはバグです。
出力:
swift - Swift SpriteKit SKPhysicsJointPin
私は Swift SpriteKit にロープを実装しようとしていて、それに物理学を追加しようとしています。位置はすべてに適していますが、接続しません。プレイすると、「ホルダー」である最初のものを除いてすべて落ちます。これが私のコードです:
swift - 横スクロール Swift SpriteKit ゲームの SKPhysicsJointPin
SpriteKit で横スクロール ゲームを開発しようとしています。私の問題は次のとおりです。
- ゲームにロープを追加しようとしていますが、ゲームを開始するとロープが切れます。このロープを非スクロール ゲームに追加すると、完全にうまく機能します。問題はシーンのアンカーポイントか何かにあると思いますが、わかりません。私はすでにこの「ハードワーク」の1週間を過ごしています。「world」という名前の SKNode があり、すべてのオブジェクトがそれに接続されています。「world」を左に移動し、「カメラ」をプレーヤーの中央に配置すると、プレーヤーが右に移動し、他のすべてのオブジェクトが取り残されました。
これが私のコードです:
これが「世界」の機能です
/li>そして、これがロープの機能です
/li>
このロープが切れないようにするにはどうすればいいですか?どんな助けでも大歓迎です。ありがとう!
ios - ノード外に SKPhysicsJoint のアンカーポイントを設定できますか?
(0,0) と (0,1) にそれぞれ 2 つの円があるとします。
それらの間に SKPhysicsJoint があり、うまく機能しています。実行時に 2 の距離でそれらを分離したいと考えています。つまり、物理がゲーム内で動作している間です。どうすればこれを達成できますか?
アンカー ポイントを (0,0) と (0,2) に設定しようとしましたが、ジョイントには何の影響もありませんが、何かバグがあります。
まるでバネの長さが伸びたかのように、円がスムーズに押し合います。
円を 2 の距離に「テレポート」してからスプリングをそれに固定すると、すべてが機能しますが、物理オブジェクトをテレポートさせると、ご想像のとおり他のバグが発生します。