MrIncrof | Дата: Вторник, 20 Декабря 2011, 18:37 | Сообщение # 1 |
Lite Programmer
Сейчас нет на сайте
| Привет всем! Я решил сделать игру на луа, движок Love2D, так вот, при использовании физики из этого урока у меня возникает ошибка: Весь исходный код: Code function love.load() world = love.physics.newWorld(-650, -650, 650, 650) --Создаём «Мир», в котором и будет действовать физика с шириной и высотой равными 650 пикселям world:setGravity(0, 700) --Устанавливаем «Гравитацию» по координатной оси Х на 0, а по оси Y на 700 world:setMeter(64) --Устанавливаем масштаб «мира», 64 пикселя будут равны одному метру в реальном мире objects = {} --Массив в котором будет храниться перечень физических тел, созданных нами --Создаём «землю» objects.ground = {} --Массу «земли» нужно установить равной 0, тогда тело не будет двигаться objects.ground.body = love.physics.newBody(world, 650/2, 625, 0, 0) --Создаём новое тело на роль земли, размещаем его внизу экрана, с нулевой массой objects.ground.shape = love.physics.newRectangleShape(objects.ground.body, 0, 0, 650, 50, 0) –Создаём новую форму, прямоугольник, для земли с шириной 650 и высотой 50 пикселей --Ещё одно тело в форме круга, которое будет действующим лицом, ГГ objects.ball = {} objects.ball.body = love.physics.newBody(world, 650/2, 650/2, 15, 0) --Распологаем тело в середине экрана, с массой равной 15 objects.ball.shape = love.physics.newCircleShape(objects.ball.body, 0, 0, 20) --Создаём круглую форму для тела, с радиусом 20 --Инициализируем настройки графики love.graphics.setBackgroundColor(104, 136, 248) --Цвет фона устанавливается в режиме RGB, в нашем примере это будет светло-синий love.graphics.setMode(650, 650, false, true, 0) --Выставляем размер окна 650 на 650, полноэкранный режим отключен, vsync (вертикальная синхронизация) включён, антиалиасинг выключен end function love.update(dt) world:update(dt) --Эта команда приводит «Мир» в движение --Некоторые события клавиатуры if love.keyboard.isDown("right") then --Нажатие кнопки «Вправо» добавляет силу толкающую мяч вправо objects.ball.body:applyForce(400, 0) elseif love.keyboard.isDown("left") then --Нажатие кнопки «Влево» добавляет силу толкающую мяч влево objects.ball.body:applyForce(-400, 0) elseif love.keyboard.isDown("up") then --Нажатие кнопки «Вверх» добавляет силу толкающую мяч вверх objects.ball.body:applyForce(0, -500) end end function love.draw() love.graphics.setColor(72, 160, 14) -- Меняем основной цвет отрисовки на зеленый, для земли love.graphics.polygon("fill", objects.ground.shape:getPoints()) -- Рисуем закрашенный прямоугольник на месте «земли» love.graphics.setColor(193, 47, 14) --Меняем цвет отрисовки на красный, для рисования мяча love.graphics.circle("fill", objects.ball.body:getX(), objects.ball.body:getY(), objects.ball.shape:getRadius(), 20) -- Рисуем закрашенный круг, состоящий из 20-ти сегментов end
|
|
| |
allxumuk | Дата: Среда, 21 Декабря 2011, 11:56 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Закралась в код "опечатка", потерялся символ "конца строки" после комментария к созданию тела для земли/платформы. На 10-ой строке, код после комментария пернеси на новую строку.
Любой дурак может написать программу, которую поймёт компилятор. Хорошие программисты пишут программы, которые смогут понять другие программисты.
|
|
| |