Среда, 07 Декабря 2022, 18:47

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Скриптовые языки программирования » [Lua] Ошибка при использовании физики
[Lua] Ошибка при использовании физики
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-ой строке, код после комментария пернеси на новую строку.

Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
Форум игроделов » Программирование » Скриптовые языки программирования » [Lua] Ошибка при использовании физики
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2022 Рейтинг