私はゲーム開発にまったく慣れていないので、Gosu、Ruby、Chipmunk を一緒に試すのは楽しいだろうと思いました。これまでのところ、2D トップダウン フィールドにプレーヤーとボールがあり、衝突しています。今の問題は、プレーヤーを正方形にしたいということです。
私は高校で数学が苦手でした。Chipmunk のドキュメントには、ポリゴンの描画について次のように記載されています。
# Create a poly collision shape attached to the given body at
# the given offset with the given vertexes. _verts_ must be an
# Array of CP::Vect with a counterclockwise winding.
def initialize(body, verts, offset); end
私は今私のポリゴンを取得するためのこのコードを持っています:
verts = Array.new
verts.push(CP::Vec2.new(0,32))
verts.push(CP::Vec2.new(32,32))
verts.push(CP::Vec2.new(32,0))
verts.push(CP::Vec2.new(0,0))
@shape = CP::Shape::Poly.new(@body, verts, CP::Vec2.new(0,0))
これにより、正方形の png に添付された形状が得られますが、0,0 が画像の左上隅であり、実際の Polygon は画像の左上のさらに上から始まるように見えます。
したがって、「オフセット」をポリゴンの幅の半分に設定する必要があると想定しましたが、正しい結果が得られません。
ここにいるほとんどの人にとって、これは初歩的なことだと確信しています。でも、ゲーム開発に関してはまだ小学生です。
誰かが私にこれを説明してもらえますか?
編集2011 年 5 月 28 日現在の私の完全なコードは次のとおりです
。