Я новичок в разработке игр, и я подумал, что было бы весело попробовать Gosu, Ruby и Chipmunk вместе.Пока у меня есть игрок и мяч на 2d поле сверху вниз, и они сталкиваются.Моя проблема сейчас в том, что я хочу, чтобы мой игрок был квадратным.
Я сосал математику в старшей школе, и это было слишком много лет назад, чтобы думать о ней.Документация для Бурундука говорит об этом при рисовании многоугольника:
# 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 - это верхний левый угол изображения, а фактический полигон начинается еще дальше к верху слева от изображения.
Поэтому я предположил, что должен установить «Смещение» на половину моей ширины многоугольника, но это не дает мне правильного результата.
Я уверен, что для большинства присутствующих здесь это элементарно.Но я все еще в начальной стадии разработки игры.
Может кто-нибудь объяснить мне, пожалуйста?
РЕДАКТИРОВАТЬ
Здесь - мой полный код на 5/28/2011