Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Tiniest Engine использует простой язык сценариев, вдохновленный Lua и Python.

Переменные

Переменная — это именованный ящик, который хранит значение. Вы используете переменные, чтобы запомнить информацию и использовать ее позже. Например, игра может хранить здоровье игрока, скорость движения, счет или текущее количество предметов в инвентаре.

Используйте var для создания новой переменной. Имя идет слева, а значение — справа.

var name = "Игрок Один"    // Строка
var health = 100           // Число (целое)
var speed = 2.5            // Число (с плавающей точкой)
var isAlive = true         // Булев тип
var inventory = []         // Пустой список
var nothing = null         // Пустое значение (нет значения)

Комментарии

Комментарии — это заметки для людей. Движок игнорирует их при запуске игры. Используйте комментарии, чтобы объяснить, что делает часть кода, оставить напоминания для себя или временно описать сложную идею.

// Это однострочный комментарий
var x = 10  // Комментарий в конце строки

Операторы

Операторы — это символы или ключевые слова, которые объединяют значения. Арифметические операторы выполняют математические операции, операторы сравнения задают вопросы, а логические операторы комбинируют ответы true/false.

Большинство логики игры строится из небольших выражений, таких как "двигайтесь влево, если нажата клавиша A" или "соберите монету, если игрок ее коснулся". Операторы — это способ записи этих выражений.

// Арифметика
var sum = 5 + 3        // 8
var diff = 10 - 4      // 6
var product = 3 * 4    // 12
var quotient = 15 / 3  // 5
var remainder = 17 % 5 // 2

// Сравнение
var equal = (5 == 5)       // true
var notEqual = (5 != 3)    // true
var greater = (10 > 5)     // true
var less = (3 < 7)         // true
var greaterEq = (5 >= 5)   // true
var lessEq = (3 <= 5)      // true

// Логические (используйте ключевые слова 'and' и 'or', а не && или ||)
var both = true and false   // false
var either = true or false  // true
var not = !true             // false

Списки

Список хранит несколько значений в одной переменной. Это полезно, когда у вас много одинаковых вещей, таких как враги, пули, монеты, контрольные точки или варианты меню.

Используйте квадратные скобки для создания списков. [] создает пустой список, а [1, 2, 3] создает список с начальными значениями. Индексы списка начинаются с 0, поэтому первый элемент — это items[0].

var items = []
items.add("меч")         // Добавить в конец списка
items.add("щит")
items.add(42)

var numbers = [10, 20, 30]
var first = items[0]       // "меч"
numbers[1] = 99            // Перезаписать по индексу
var count = items.length() // 3

items.remove(0)            // Удалить элемент по индексу 0
items.clear()              // Удалить все элементы

Итерация по списку с помощью цикла по индексу:

for (var i = 0; i < items.length(); i = i + 1) {
    print(items[i])
}

Условные операторы If/Else

Оператор if позволяет игре выбирать, что делать. Если условие истинно, выполняется первый блок. Если оно ложно, блок else может выполниться вместо этого.

Так игры реагируют на состояние: если здоровье равно нулю, показывайте конец игры; если нажата клавиша, прыгайте; если счет достаточно высок, разблокируйте следующий уровень.

if (health <= 0) {
    print("Конец игры")
} else if (health < 25) {
    print("Низкое здоровье!")
} else {
    print("Здоровье в норме")
}

Циклы

Циклы повторяют код. Они полезны, когда вы хотите считать, обрабатывать каждый элемент в списке, создавать несколько объектов или продолжать делать что-то, пока условие остается истинным.

Используйте цикл while, когда хотите повторять, пока условие истинно. Используйте цикл for, когда знаете, что будете считать в пределах диапазона или проходить по списку по индексу.

Цикл While:

var i = 0
while (i < 10) {
    print(i)
    i = i + 1
}

Цикл For:

for (var i = 0; i < 10; i = i + 1) {
    print(i)
}

Оператор Break (быстрый выход из цикла):

for (var i = 0; i < 100; i = i + 1) {
    if (i == 5) {
        break  // Выйти из цикла, когда i равно 5
    }
    print(i)
}
// Печатает: 0, 1, 2, 3, 4

Оператор Continue (пропустить следующую итерацию):

for (var i = 0; i < 5; i = i + 1) {
    if (i == 2) {
        continue  // Пропускать печать, когда i равно 2
    }
    print(i)
}
// Печатает: 0, 1, 3, 4

Функции

Функция — это повторно используемый блок кода с именем. Вы вызываете функцию, когда хотите, чтобы этот блок выполнялся. Функции помогают поддерживать ваш скрипт в порядке, чтобы вы не дублировали одни и те же инструкции повсюду.

Функции могут принимать значения, называемые параметрами. Они также могут возвращать значение с помощью return. В приведенном ниже примере baseDamage и multiplier являются параметрами, а функция возвращает конечное значение урона.

func calculateDamage(baseDamage, multiplier) {
    return baseDamage * multiplier
}

var damage = calculateDamage(10, 1.5)  // 15