問題タブ [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.
objective-c - 伸びるチェーンの作り方
さて、私は今stackoverflowの周りにいくつかの質問がありましたが、それらのほとんどはこの1つの質問に関連しています. 私は自分でそれを取得しようとしてきましたが、数回ありますが、結果は決して期待したものではありません. スプライトが投げることができるチェーンを開発しようとしています。
これまでのところ、フックのリードをスプライトの中心から外側に投げました。スプライトの位置から 10 ピクセル移動すると、チェーン内に別のリンクが生成されます。次に、リード チェーンの回転に合わせてチェーンを回転させ、ジョイント ピンを使用してチェーンを取り付けます。実際にはかなりうまく機能します。唯一の問題は、物理世界の速度を 0.01 に設定した場合にのみ機能することです。通常の物理演算に戻すと、リード リンクがチェーンにスローされますが、基本的には他のすべてがスキップされます。この前に、リード リンクを物理ボディに含め、didEndContact を呼び出して他のリンクをアタッチしようとしましたが、ほとんどうまくいきませんでした。
どうすればこれを達成できるかについて誰かアイデアがありますか? チェーンがスプライトの位置から最大の長さまで伸び、その後収縮する必要があるだけです。こんなに大変だとは思いませんでした。私のコードを投稿してほしい場合は喜んで投稿しますが、うまくいくとは思わないので、まだ追加していません。何週間も前から頭を悩ませてきましたが、スタックオーバーフローコミュニティに深く感謝している多くの貴重な概念を学びましたが、どこにも行き着いていないようです。
sprite-kit - shouldEnableLimits を使用せずに SKPhysicsJointPin 物理ボディの zRotation 範囲を制限する
SKPhysicsJointPin 物理ボディ オブジェクトの zRotation の「回転可能な範囲」を開始点から制限する方法を教えてください。
現在、shouldEnableLimits を使用すると問題が発生し、physicbody オブジェクトが +270 度から -90 度 (正から負など) に回転しているときに予期せず/グリッチを強制的に移動させるため、別の方法を使用してこの制限回転を達成する必要があります。 lowerAngleLimit と upperAngleLimit が提供されます。
画面全体を絶えず移動している物理体があり、次を使用します。
この体を左右に回転させます。体が動いているので、体が画面上を移動するときに、設定された量/「範囲」でのみ回転できるようにする必要があります。
どうすればいいのかわかりません。「オブジェクトの中心点がここにあります。中心点から -0.7 (左) または 0.7 (右) を超えて zRotate することはできません」など。
これを行う方法について1週間以上頭を悩ませてきました。どんな助けも素晴らしいでしょう
///////////// テストケースを実行するとどうなるか
//コンソールの出力はこちら
現在の zrotation 2.949927
現在の zrotation 3.002563
現在の zrotation 3.033562
現在の zrotation 3.061646
グリッチしないでください!
現在の zrotation -1.500000
現在の zrotation 0.212812
現在の zrotation 1.947406
現在の zrotation -0.485760
現在の zrotation -2.326967
現在の zrotation -2.381383
// エラーが発生しました。-1.5 を設定した後の数値は、-1.49 に戻り始め、-1.48 は 0 に戻ります。
//myobjectdegrees は myobject.zRotation に基づいてラジアンから度に変換された整数です
私は私が見つける
//if (myobject.zRotation > 4.6) {
このケースはめったにトリガーされません。オブジェクトは常に移動/回転しています。
ios - SKSpriteNode サブクラス: すべてのジョイントを削除するメソッド
SKSpriteNode のサブクラスを作成しました。そのクラスのインスタンスを SKPhysicsJointLimit 型のジョイントと一緒に接続します。GameScene の didEndContact (連絡先: SKPhysicsContact) 内でこれを行います。
これはこれまでのところうまくいきます。次に、ノードをジョイントから解放したいところまで来ました。SKPhysicsBody docs によると、SKPhysicsJoint オブジェクトを保持する配列である「ジョイント」と呼ばれるプロパティがあります。私はそれがまさに私が必要としているものだと思っていましたが、インスタンスのジョイントを反復してphysicsWorldから削除することはできません. 仕事をするために、カスタム SKSpriteNode サブクラスにメソッドを追加しました。
println() ステートメントの後でメソッドの呼び出しが失敗し、「Swift dynamic cast failed」というメッセージが表示されます。SKPhysicsBody の共同プロパティの操作方法について、ご意見をお寄せいただければ幸いです。より具体的には、配列内の項目を使用 (キャスト?) して、シーンの SKPhysicsWorld から項目を削除できるようにする方法です。
ios - SKPhysicsJointピンストレッチ
ここに投稿された解決策を試しましたが、問題は解決しませんでした。質問は既に回答済みとしてマークされているため、私のリクエストには誰も回答していません。
プレーヤーが画面を飛び越えてロープをつかみます。グラブはSKPhysicsJointPin
、ロープ セグメントとプレーヤーの間に確立することによって達成されます。ロープ自体は、s で互いに接続された多くのセグメントで構成されていSKPhysicsJointPin
ます。それらは期待どおりに動作します。ただし、プレイヤーは約 1 秒間結合しているように見えますが、その後、プレイヤーとロープが一緒にスイングすると、両者の間のジョイントが伸び、プレイヤーは完全に画面から外れます。
プレイヤー (サル) がシーンに追加される場所は次のとおりです。
連絡先イベントが分類される場所は次のとおりです。
プレーヤーとロープの間にジョイントが追加された場所は次のとおりです。
SKPhysicsJointPin
伸びる原因となるアイデアはありますか?
ios - ジョイントを使用した SKShapeNode の拡張
互いに接続したい 2 つの SKShapeNode ノードがあります。タップしてアクションを実行すると、2 つのノードの高さが拡張され、もう一度タップすると収縮します。問題は、2 つのノードが期待どおりにアニメーション化されないことです。
アニメ化前:(未展開)
アニメーション後: (拡大)
両方のノードが拡大していますが、一方が他方の下にあるように見えます。私が望んでいるのは、彼らがお互いを「押しのける」ことです。