問題タブ [pymunk]
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.
python - Pymunk(シマリス)-コンクリートオブジェクトの物理/衝突を一時的にオフにする方法
一部のオブジェクトの衝突をオフにしてから、Pythonでpymunk libを使用して再度オンにする方法は?
以下のコードに基づいて、例を示します。すべての赤いボールが線の最初の境界を通過し、下の境界で停止するようにします。青いボールはまだ上部の境界線と衝突するはずです。
コードで何を変更する必要がありますか?
python - 動的ボディと移動静的ボディの間の pymunk で DampedRotarySpring を作成する
タイトル通りのことをやってみました。手に拘束された銃を持つキャラクターがいて、銃をカーソルに向けようとしています。DampedRotarySpring が良い方法だと思いましたが、それほど単純ではないことがわかりました。銃はセグメント形状の動的ボディであり、カーソル用に、各ステップで pygame を使用してその位置をマウスの位置に設定する静的ボディを作成します。
プログラムを実行すると、重力または衝突の影響を除いて、銃はまったく動きません。
関連するコードは次のとおりです。
編集:
ここに私のすべてのコードの Gist リポジトリがあります: https://gist.github.com/4470807。メイン ループは ragdoll.py にあります。
python - Pymunk を Pyinstaller で使用する
文字通り、役立つグーグル検索は何も見つかりませんでした。py2exe でも pyinstaller を使いたいです。
私の問題は、モジュール (pymunk[aka Chipmunk]) が exe ビルドに完全に含まれていないことです。ある種のdllが欠落している可能性があります。基本的に、解決方法がわからない依存関係がありません。
Chipmunk ライブラリは ctypes モジュールを介してラップされているため、これらのメッセージが Chipmunk から送信される限り、コンパイルされていると想定されます。これは、Pythonの観点では役に立ちません。そうでないかもしれない。
pyinstaller のこの依存関係を修正する方法を教えてもらえますか?
c++ - ポインターの配列を他のオブジェクトにキャストしますか?
オブジェクトの配列を C ライブラリに送信しようとしています。
送信しようとしているオブジェクトは pymunk Body です。ポインター オブジェクトが埋め込まれていBody._body
ます。関数に 1 つを渡すだけで、必要なものをすべて Chipmunk 関数で抽出することができました。cpBodyGetMass
テストとして使用しましたが、うまくいきました。
これらの配列を作成する場合。機能するのは最初のものだけです。
Body._body
アドレスを配列として dllに送信できるようにしたいと考えています。ポインターをc_int
orc_long
配列に格納し、それらのアドレスをcpBody
Chipmunk が必要とする に変換できると考えました。
これが私のカスタム関数です
私の C++ には Python ラッピングがないため、C オブジェクトしか送信できません。私がこれまで行ってきた方法は...
と
ここで、ポインターの配列を送信するとします。基本的には 4 バイトの int の配列です。はcpBody body[]
、次のオブジェクトに到達するには、配列内の sizeof(cpBody) のバイト単位でジャンプする必要があると想定しています。しかし、それらはインラインではありません。すべてのボディへのランダムなポインターのリストです。各配列要素のアドレスを読み取り、その場所に があると仮定する必要がありcpBody
ます。
2番目の例を見ると。単一のポインターを介して配列を送信しました。ポインターの配列にポインターを送信し、それぞれから cpBody を取得する必要があります。つまり、配列が 4 バイトだけジャンプし、メモリ アドレスをcpBody
.
python - Pymunk-体に関連する形状と制約を見つける
pymunkの特定のボディに依存する制約を反復処理する方法を見つけようとしています。シマリスでそうする方法は複数あるようですが、シマリスで同等のものを見つけることができません。制約を手動で追跡する必要がないように、制約を検出する方法を見つけたいと思います。
また、体に関連する形状を検出する方法も見たいです。一般的に、スペースからボディを削除するときに、ボディの形状と制約を自動的に削除できるようにしたいと思います。それは可能ですか?
python - pymunkspace.removeメソッドのエラー
シミュレーションにボール(円)を「生成」して追加するボールジェネレーターがあります。
ボールがリスト内の静的ポリゴンに当たったときに、ボールが削除されますs_boxes
。
これは、衝突ハンドラーによって実行されball_wall_collision
ます。
エラー:
次のポップアップウィンドウは、その名前が示すとおりに実行され、ポップアップします
私のコード:
ボールジェネレーター
衝突ハンドラー
衝突処理で何が間違っているのですか?
- 私はへの呼び出しで何かが欠けてい
space.remove
ますか? - 機能が思い通りに機能していませんか?または、他の場所でのエラーです(私はそうではないと思います)...
python - pymunkで「複合」形状を作成するには?
タイトルが示すように、2 つのピムンク ボディ/シェイプを結合/拘束して、1 つのオブジェクトとして機能しないようにするにはどうすればよいですか??
たとえば、この場合、クリケットのバットがあり、2 つの別個のボディとポリゴンで構成されています。
バットの「ハンドル」をバットの「ブレード」に結合して、バットのようなオブジェクトを取得したい。
私のコード:
これ=============になります================>これ
には、体の位置に緑色の円を描く機能があります
python - ピムンク セグメントのトラブル?
Debian Wheezy 7.0 を実行している Raspberry Pi で Pymunk 3.0.0 を使用しています。「pymunk.Segment」関数を使用してシェイプを作成しようとすると、ポリゴンの最初の行だけになってしまいます。Flipper と BounceBalls の両方のデモで同じことが起こっているので、私のコードではないと確信しています。
例えば...
... 150,100 から 50,550 までの線のみを作成し、他の 4 は作成しません。
そして、PyGame を使用して線を描画しようとすると、最初の線は正常に描画されますが、残りは体の位置にある非常に短い細い線です。
これは例で発生しているため、Pymunk/Chipmunk/Linux のバグであると想定していますが、Google では何も見つかりません。
どんな助けでも大歓迎です(noob btw)
デイブ。
python - pymunk が終了するのはなぜですか?
この単純な pymunk コードが問題を引き起こしています。
上記のコードは、以下のようなダイアログを作成します
なぜこれが起こっているのですか、どうすれば解決できますか??