0

作成時に形状が床に落ちるのではなく、ウィンドウの端を衝突可能にしようとしています。

サイトのデモを見ていると、スペースの境界を定義するための次のコード行が表示されました。

[_space addBounds:CGRectMake(130, 139, 767, 1500) thickness:20 elasticity:1.0 friction:1.0 layers:PhysicsEdgeLayers group:CP_NO_GROUP collisionType:nil];

これにより、スペースの周りに衝突可能な境界が割り当てられ、スペースが囲まれていると思います。

Objective-C に関する多少の知識があるため、addBounds がスペースの境界を作成できるスペースのメソッドであることを知っています。

しかし、chipmunk の ruby​​ バインディングを調べたところ、 AddBounds メソッドが見つかりませんでした。

さらに、関連する問題で、cpShapeSetFriction と同等のルビが見つかりませんでした。

これらの方法を見つけることができましたか? できない場合、代替手段はありますか?

4

2 に答える 2

1

addBounds疑問に思っている人のために、メソッドのルビバインディングはありません。

ウィンドウの境界を構成する 4 つの静的なセグメント シェイプを作成することで、これを回避しました。

境界を作成するために必要なセグメントは次のとおりです。

    CP::Shape::Segment.new(YOUR_STATIC_BODY, CP::Vec2.new(0, 0), CP::Vec2.new(WIDTH, 0), 1.0)
    CP::Shape::Segment.new(YOUR_STATIC_BODY, CP::Vec2.new(0, 0), CP::Vec2.new(0, HEIGHT), 1.0)
    CP::Shape::Segment.new(YOUR_STATIC_BODY, CP::Vec2.new(WIDTH, 0), CP::Vec2.new(WIDTH, HEIGHT), 1.0)
    CP::Shape::Segment.new(YOUR_STATIC_BODY, CP::Vec2.new(0, HEIGHT), CP::Vec2.new(WIDTH, HEIGHT), 1.0)

それらをスペースに追加することを忘れないでください@space.add_static_shape(THE_SEGMENT)

ruby の形状摩擦は次のように設定できます。shape.u = 0.1 #Shape friciton of 0.1

于 2014-12-27T03:57:13.010 に答える