Тепер, коли у нас є всі наземні штучки на місці, це досить просто, щоб вони рухалися. Ідея полягає в наступному: перемістіть штук справа наліво, а коли частина досягає лівого краю за межами екрана, перемістіть її до самого правого краю. Для переміщення всіх цих об'єктів гри вимагає сценарію Lua, так що давайте створимо його:
Тепер, коли у нас є файл сценарію, ми повинні додати посилання на нього до компонента об'єкта гри. Таким чином, сценарій буде виконуватися як частина життєвого циклу об'єктів ігрових об'єктів. Ми робимо це, створивши новий об'єкт гри в ground.collection, і додати компонент Script до об'єкта, що відноситься до файлу скрипту Lua, який ми щойно створили:
- Клацніть правою кнопкою миші головну папку в Провіднику проекту та виберіть Новий файл ▸ Сценарій. Назвіть новий файл ground.script.
- Двічі клацніть новий файл, щоб відкрити редактор скриптів Lua.
- Видаліть вміст за замовчуванням у файлі та скопіюйте в нього наступний код Lua, а потім збережіть файл.
-- ground.script
local pieces = { "ground0", "ground1", "ground2", "ground3",
"ground4", "ground5", "ground6" }
function init(self)
self.speed = 360 -- Speed in pixels/s
end
function update(self, dt)
for i, p in ipairs(pieces) do
local pos = go.get_position(p)
if pos.x <= -228 then
pos.x = 1368 + (pos.x + 228)
end
pos.x = pos.x - self.speed * dt
go.set_position(pos, p)
end
end
- Зберігайте id: s об'єктів наземних ігор у таблиці Lua, щоб ми могли прослідкувати над ними.
- Функція init () викликається, коли об'єкт гри виявляється в грі. Ми ініціюємо локальну змінну об'єкта об'єкта, що містить швидкість підстави.
- update () викликається після кожного кадру, як правило, 60 разів на секунду.
- dt містить кількість секунд після останнього дзвінка.
- Ітератуйте над усіма об'єктами наземних ігор.
- Зберігайте поточну позицію у локальній змінній, тоді, якщо поточний об'єкт знаходиться на лівому краю, перемістіть його до самого правого краю.
- Знизьте поточну X-позицію з заданою швидкістю. Помножте на dt, щоб отримати незалежну швидкість кадру в пікселях / с.
- Оновіть позицію об'єкта за допомогою нової швидкості.
Defold is a fast engine core that manages your data and game objects. Any logic or behavior that you need for your game is created in the Lua language. Lua is a fast and light-weight programming language that is great for writing game logic. There are great resources available to learn the language, like the book http://www.lua.org/pil/[Programming in Lua] and the official http://www.lua.org/manual/5.3/[Lua reference manual].
Defold adds a set of API:s on top of Lua, as well as a message passingsystem that allows you to program communications between game objects. See the Message passing manual for details on how this works.
- Клацніть правою кнопкою миші корінь колекції та виберіть Add Game Object. Встановіть ідентифікатор об'єкта в "controller".
- Клацніть правою кнопкою миші об'єкт «Контролер» і виберіть «Додати компонент з файлу», а потім виберіть файл ground.script.
Немає коментарів:
Дописати коментар
Kоментарі неуkраїнсьkою видалятимуться