Приветствую всех. Извиняюсь, что уроков долго не было, были проблемы с другими проектами, ну сейчас уже другие сайты работают сами по себе и я буду дальше обучать вас.На сей раз я хотел бы вам рассказать о физике в Love2D + Первый опыт с коллизиями.Без физики не обходится практически не одна игра, а в Love2D встроена отличная Box2D физика.Физика в движке начинается с пространства. Для начала нам нужно создать так называемый физический мир. Он может быть больше окна или меньше, это не важно. Он может использоваться только в каких-то моментах. Это несомненно удобно.И так создадим наш мир.world = love.physics.newWorld(-1,-1,1200,1200) -- Создадим мир
Эта команда означает, что мы создали мир, который начинается в координате -1,-1 и идет вплость до 1200,1200. Это прямоугольник.Наш мир в данном случае больше окна игры. Но работать будет везде отлично.Вот создали вы мир. Но пока это пустышка. Мир - это ничто. Простая пустота, тогда нам нужна гравитация.world:setGravity(0,0)-- гравитация
Гравитация в данном примере тоже пустая. Числа (0,0) можно заменить, и от них будет зависеть направление гравитации.Например: (0,50) - значит, что все объекты будут падать вниз. (50,0) - вправо. Числа так же могуть быть отрицательны.Впринципе дальше уже можно начинать работу с объектами. Давайте создадим физ. объектДля начала делаем массив. Я это делаю просто для того, чтобы дать вам пример аккуратного кодинга.man = {}
Далее обозначаем объект из массива.stupid.man = {} -- Вот вам объект-массив
Вот мы задали объект stupid из группы man. Зададим ему свойства.stupid.man = {} -- Вот вам объект-массив stupid.man.body=love.physics.newBody(world, x, y, 10, 0) stupid.man.shape=love.physics.newRectangleShape(stupid.man.body, 0,0, man_w,man_h, 0) stupid.man.shape:setData("This is a Stupid Man")
Давайте разберемся с синтаксисом. Вот мы использовали команду love.physics.newBody(pworld, x, y, m, i) pworld - это наш мир X и Y - координаты m - масса i - инерция
love.physics.newRectangleShape(body,dx,dy, w,h, angle) Этой командой мы создали физический прямоугольник. body - наше тело к которому его привязываем dx и dy - координаты столкновений w И h - ширина и высота angle - угол наклона Ну, а SetData - это просто дополнительная функция. В ней я задал название для нашего объекта. Она не обязательна.
Об остальном вы узнаете в следующей части. :)
Автор: Musicfuns
|