Создание 2D-игр с Tiniest2D
Функции игрового цикла
Lesson 7 of 11 • 10 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
Ваш скрипт может определять эти специальные функции, которые движок вызывает автоматически:
start()
Вызывается один раз, когда игра начинается. Используйте его для инициализации.
func start() {
setScene(level1)
setX(player, 100)
setY(player, 100)
print("Игра началась!")
}
onUpdate(dt)
Вызывается каждый кадр. Параметр dt — это дельта-время (время с последнего кадра в секундах).
var speed = 100
func onUpdate(dt) {
if (isKeyHeld(KEY_RIGHT())) {
setX(player, getX(player) + speed * dt)
}
if (isKeyHeld(KEY_LEFT())) {
setX(player, getX(player) - speed * dt)
}
}
Также UI рисуется из onUpdate(dt). Координаты UI используют виртуальное разрешение экрана. По умолчанию это пространство UI 100 x 100, и вы можете изменить его с помощью setUIResolutionX() и setUIResolutionY(). Размер шрифта, цвет шрифта и цвет элементов могут быть помещены в временные стековые кадры, пока вы создаете текущий интерфейс.
var musicOn = true
var volume = 5
func onUpdate(dt) {
uiPushElementColor(28, 40, 70, 220)
uiBox(3, 3, 30, 26)
uiPushFontSize(3)
uiPushFontColor(255, 220, 120)
uiLabel("ПАУЗА", 6, 6)
uiPopFontColor()
uiPopFontSize()
uiPushFontSize(2)
uiPushFontColor(240, 245, 255)
if (uiButton("ПРОДОЛЖИТЬ", 6, 12, 20, 6) == UI_CLICKED()) {
paused = false
}
musicOn = uiToggle("МУЗЫКА", musicOn, 6, 20, 22, 6)
uiPopFontColor()
uiPopFontSize()
volume = uiSlider("ГРОМКОСТЬ", volume, 0, 10, 6, 28, 24, 6)
uiPopElementColor()
}
onCollision(objA, objB)
Вызывается, когда два объекта сталкиваются. objA всегда является динамическим или триггерным объектом (см. Система столкновений для деталей).
func onCollision(objA, objB) {
var nameA = getName(objA)
var nameB = getName(objB)
if (nameA == "Игрок" && nameB == "Монета") {
removeObject(level1, objB)
score = score + 1
}
}
end()
Вызывается, когда игра завершается.
func end() {
print("Спасибо за игру!")
}