問題タブ [chipmunk]

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

objective-c - iterateFuncを使用してObjectiveCメソッドを呼び出す

spacemanagerを使用して、各ステップの後に選択したボディに対してアクションを実行する必要があるため、iterateFuncに対して独自のC関数を定義することが道であると考えました。

同じクラスでobjcメソッドを呼び出す方法がわからないことを除いて、すべてがうまく機能します。つまり、obj cクラスには、iterateFuncを置き換えるc関数と、呼び出す必要のあるメソッドの両方が含まれています。メソッドを呼び出すことができるように、c関数に「自己」が何であるかを伝える方法がわかりません。私の知る限り、新しいiterateFuncに追加情報を渡す方法はありません。

何かアイデア、または物事を進めるためのより良い方法はありますか?

アップデート:

返信ありがとうございます。新しいスペースマネージャーを宣言すると、そのiterateFuncを再定義できます。

同じクラスで、「doThisFunc」関数を宣言できます。

spacemanagerでは、これiterateFuncは「step」メソッドから呼び出されます。

したがって、私の最初の考えは、spacemanagerをサブクラス化することでした。カスタムステップメソッドではcpSpaceHashEach、self(つまり、spacemanager)ではなく、自分のクラスを使用して呼び出します。途中で、自分のステップメソッドをサブクラス化して定義するだけで十分だったので、それを行う必要さえないことに気づきました。私の新しいステップ方法:

あなたの答えと、将来もっと良い質問を作るのを手伝ってくれてありがとう。

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

iphone - Chipmunk Physics で衝突速度を確認する

Cocos2D を使用して、iPhone 用の Chipmunk 5 を使用しています。2 つの特定のオブジェクト間の衝突時に、その衝突の速度をチェックするメソッドを実行したいと思います。x を超えている場合は 1 つのコード セットを実行し、x の下にある場合は別のセットを実行します。

これで、基本は理解できましたが、衝突検出のメソッドを実行するコードと衝突速度をチェックするコードがわかりません。

どんな助けや指針も大歓迎です。

乾杯。

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

cocos2d-iphone - Cocos2D 小惑星

学校で iPod touch 用のゲームを作らなければならないので、小惑星ゲームをすることにしました。cocos2d を使い始めたばかりですが、wenderlich ブログを読みました。ゲームでシマリスを使いたかったのですが、船のリアルな動きが欲しいです。小惑星の動きを作成するチュートリアルはありますか?

ありがとう。

0 投票する
1 に答える
418 参照

c - How can I store SpaceManager cpShape's in something like an array?

I'm trying to create a squishy ball with Cocos2d and Chipmunk (via SpaceManager) using a bunch of rects all chained together then joined with springs to a central body.

Something like these examples

But in order to do this, i think I need to store all the cpShapes in an array after I've created them so I can then loop through the array to link them all together with constraints.

However, when i try to put cpShapes in an array, I get an error telling me it's an "incompatible pointer type". So... I either need to use something other than an array (I've tried a set, that didn't work either) or I need to do something to the shape to make it compatible... but what? OR I need another aproach.

Any ideas?

Here's the code so far should it be relevant...

0 投票する
1 に答える
555 参照

physics - パスの頂点での発射物のヒット座標

パスの頂点にある特定の座標を通過したい発射体があります。私は、ここで概説したgiogadiが生成する速度値を、シマリスのcpBodyApplyImpulse関数にプラグインすることにより、優れた方程式を使用してきました。

この方程式には、私が理解できなかった1つの欠点があります。これは、ヒットしたい座標のay値が大砲(発射物が始まる場所)よりも高い場合にのみ機能します。これは、下向きの角度で撮影できないことを意味します。

誰かが私が大砲に対してターゲットがどこにあるかに関係なく機能する適切な方程式を見つけるのを手伝ってくれますか?

0 投票する
1 に答える
4277 参照

cocos2d-iphone - 静的なボディにアタッチされている場合の CCSprite アンカー ポイントの変更

シマリス (SpaceManager を使用) で静的な形状を作成し、それに cpCCSprite をアタッチしています。

ただし、スプライトのアンカー ポイントを中心からずらす必要がありますが、スプライトのアンカー ポイントを変更すると、シェイプとスプライトが整列しなくなります。

このようにアンカーポイントを変更すると

スプライトはそれに応じて描画されますが、形状が「動く」ことを期待していました。ここに私が意味するものの写真があります。

大砲の外観 http://www.tomelders.com/bin/cannon.png

左側はシェイプとスプライトが適切に配置されています。アンカーポイントを変更していません。

右側はアンカーポイントがccp(0.5, 0.3)

また、フレームごとに静的形状を再ハッシュしています。

作成方法はこちら

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

cocos2d-iphone - シマリスの体の位置を使用してCocos2D視差を駆動します

Cocos2D内でSpaceManagerを備えたChipmunkを使用しています。インパルスで動き回っているボディがあります。そのボディの位置を使用して、Cocos2Dの視差ノードを駆動できるようにしたいと思います。

So, when body 'a' moves to the left, the parallax follows but with a small time offset, or elastic effect. If you know AS3 and Flash, you can think of this as using a movieclip's x and y location to drive a constantly updating tween with an ease out effect. This is what I'd like to achieve, and after no sleep trying to work it out last night I've decided to ask you much more experienced people :)

Thanks.

0 投票する
1 に答える
569 参照

cocos2d-iphone - シマリスの体は視差で動く?

私はCocos2D、SpaceManager、Chipmunkを使用しています。4層の視差ノードがあります。これは、再生可能なシマリスの体の位置に関連付けられています。このボディは、視差レイヤーの1つにある静的オブジェクトと衝突する必要があります。静的ボディは、画面から開始してから画面に移動して衝突する必要があります。

再ハッシュしない限り、シマリスで静止体を動かすことは想定されていません。ただし、フレームレートに対応するために1秒間に60回再ハッシュするのは、面倒なようです。誰かがこれを行う別の方法を考えることができますか?

乾杯。

0 投票する
1 に答える
2298 参照

iphone - シマリス:形や体を取り除く方法は?

まず、私の英語でごめんなさい、私はアメリカ人ではありません。私の質問は、どうすれば空間から形状とボディを削除できるかということです。これは衝突検出とは関係ありません。タッチイベントでこれをやろうとしています。具体的には、ボールをクリアしようとしています。タッチ(スペースにボールがたくさんあります)ですが、方法がわかりません。インターネットとそれを行う方法に関する助けを見つけることができません、すべてが衝突に関連していて、それは私が必要としているものではありません。

ドキュメントを何度も読みましたが、これを行うための有用な情報は含まれていません。衝突で削除する方法だけがあります。私は衝突で削除する方法を知っています:

static void postStepRemove(cpSpace * space、cpShape * shape、void * data){

}

static int collission(cpArbiter * arb、cpSpace * space、void * data){

}

これを衝突で使用しますが、衝突のない例が必要です。

0 投票する
1 に答える
1011 参照

iphone - ボール転がり効果音

Chipmunk と openAL を使用して、iPhone 用の迷宮スタイルのアプリに取り組んでいます。ボールの転がる音以外はすべて動作しました。私が試したのは、ボールの位置が更新されるたびに小さな音を鳴らして、全体的な効果がボールが転がっているように聞こえるようにすることです。このフォーラムのアドバイスに基づいて、ボールの速度を使用して音の高さを調整することに疲れました。次の問題があります。

  1. シマリスのコールバックでこの音を鳴らしていると、音が全く聞こえません。他にも聞こえます。
  2. これが何とか機能したとしても、ボールが転がるのに時間がかかりすぎないため、再生する音は非常に短くなければなりません。別の方法が必要です。

誰でも助けてもらえますか?サウンドも含まれている場合、これを行う単純なアプリケーションの料金を支払うことさえできます.