Найти тему

Самые базовые понятия из языка программирования, чтобы начать писать игры с нуля

Приветствую всех вас, друзья, на своем канале! Вы понятия не имеете, что такое язык программирования, и как вообще с помощью этой непонятной штуки создать игру? Тогда вы пришли по адресу. Я попробую максимально простым языком рассказать вам, подготовив к дальнейшему развитию.

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

Для начала, чтобы понять, что я пишу дальше, настоятельно рекомендую прочесть эти две статьи с моего канала, так как буду опираться на них.

Как устроены игры изнутри

Что такое язык программирования простым языком

Прочитали? Ок. Тогда мы можем двигаться дальше! В абсолютно каждом языке программирования встречаются одни и те же определения. Давайте попробуем разобраться в них максимально простым языком.

Итак, начнем мы с переменных.

Переменные

Упрощенное изображение переменной для понимания. Рисунок взят из интернета.
Упрощенное изображение переменной для понимания. Рисунок взят из интернета.

Переменные можно представить как ящики в которые мы что-то складываем. Это самое простое и самое распространенное сравнение для новичков. Например, в ящик с наклеенной на нем этикеткой "посуда" положим "кастрюлю", а в ящик с этикеткой "кол-во жизней", положим цифру "5".

В языке программирования это выглядит следующим образом:

lives = 5

Т.е. переменной с именем lives (по русски значит "жизни") мы присвоили значение равное 5. Знак "равно" в ЯП это оператор присвоения.

Обзывать переменные можно как угодно. Но делайте это так, чтобы вам самим было понятно и вы смогли разобраться какая переменная за что отвечает. В ЯП есть конечно свои устоявшиеся правила, как лучше называть переменные, но я не буду вдаваться в такие подробности. Можете почитать в Интернете сами.

Главное, что вам необходимо уяснить, что вся игра состоит из сотен переменных. И вы будете очень часто с ними работать.

Значения этих переменных можно менять, можно увеличивать/уменьшать, сравнивать их с другими переменными и т.д.

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

1) Строковые переменные

dialog = "Привет! Меня зовут Марио!"

Т.е. переменная dialog в данном примере содержит в себе строку.

2) Числовые

a = 200

Тут еще проще, переменной с именем a присвоено значение равное 200.

3) Булевы

go = true
stand = false

Такие типы переменных могут принимать лишь два типа значения: true (истина) или false (ложь). Они тоже довольно часто встречаются и я даже уже писал о них в одной из вышеуказанных статей, если вы внимательно их читали.

Условия

Схематичное изображение условия. Рисунок взят из интернета.
Схематичное изображение условия. Рисунок взят из интернета.

О них я так же рассказывал в одной из статей очень подробно. Большая часть игры - это как раз условия. Общий вид условия выглядит как:

if <что проверить> then <что сделать если условие соблюдается> else <что сделать если условие не соблюдается>

Т.е. если выражаться нашим языком, то это звучит примерно так:

Если условие верно, то выполнить то, иначе (если оно не верно) то выполнить это.

Вот пример написания в ЯП:

if x > 300 then distantion="Далеко" else distantion="Близко"

Т.е. тут мы проверяем, если значение переменной x больше 300, то переменная distantion принимает значение "Далеко", иначе, т.е. если x меньше или равно 300 значение переменной distantion будет равно "Близко".

Как видите, тут используются те же переменные и само условие. Вроде ничего сложного нет. Идем дальше.

Циклы

Схематичное иображение цикла. Изображение взято из интернета.
Схематичное иображение цикла. Изображение взято из интернета.

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

Так вот в этом цикле, т.е. в основной программе, можно сделать еще несколько циклов. Для этого у нас в ЯП имеется несколько команд.

Давайте вкратце рассмотрим самые распространенные:

1) While (переводится как "пока")

Имеет следующий вид:

while (какое-то условие)
{
какие-то действия, команды, инструкции
}

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

Тут нужно быть осторожным. Помните, что я говорил, что программа читается построчно. Так вот, дойдя до такого цикла, она остановится на этом моменте, и станет перечитывать сам цикл снова и снова, не переходя на чтение остальных команд в игре.

И т.е. в нашем случае, если условие будет выполнятья всегда, то игра просто "зависнет", она остановится, как бы задумается, потому что начнет выполнять данный цикл бесконечно, не обращая внимания на то, что было до него и что будет после него. По этому нужно ОБЯЗАТЕЛЬНО создать условия для выходка из цикла. Вот вам пример на ЯП:

i = 0
while ( i < 100)
{
i = i + 1
}
print "Поздравляем, программа выполнена!"

Поздравляю, это уже маленькая программа, написанная на ЯП! Так что же тут у нас.

Мы создаем переменную с именем "i" и присваиваем ей значение равное нулю.

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

Т.е. изначально i = 0.

Проверяется условие: 0 < 100. Да, конечно. По этому выполняем то, что ниже в скобках: i = 0 + 1, т.е. i стало равно 1. Ниже программа читать не станет, так как цикл еще не закончился. Она возвращается снова к проверке: 1 < 100. Да, конечно. Снова увеличиваем i на 1. И так до тех пор, пока i не станет равно 100. Тут проверка будет такой 100 < 100. Конечно нет! И прграмма уже наконец выходит из цикла и переходит к команде под ним, а именно print "Поздравляем, программа выполнена!" . Команда print выводит на экран сообщения. Вот как раз у нас на экране высветится следующий текст: Поздравляем, программа выполнена!

2) for (перводится как "для")

В предыдущем случае оператор while мог вгонять программу в бесконечное кол-во циклов, а мог и вообще подвесить ее, если бы условие выполнялось всегда.

А что если мы хотим создать кол-во циклов, которое нам необходимо?

Например, мы хотим создать на экране ровно 10 врагов. Тут на помощь приходит оператор for.

Он имеет следующий вид:

for (команда 1, условие, команда 2)
{
какие-то действия, команды и инструкции
}

Чаще всего, это выглядит так:

for (i = 0; i < 10; i++)

{

print i

}

Т.е. для начала мы задаем как бы переменную счетчик и ставим ему значение "0" (i = 0). Далее у нас идет условие выхода из цикла, т.е. выполнять все действия в скобках ниже, пока i меньше 20 (i < 20). А потом мы задаем на сколько изменять наш счетчик. i++ это тоже самое, что я писал выше i = i + 1, т.е. это увеличивает i на еденицу каждый раз.

А оператор print, как я уже сказал выводит на экран что-то. В данном случае он будет выводить значение этого самого счетчика.

Т.е. на экране будет 0,1,2,3,4,5,6,7,8,9

На этом цикл закончится и продолжится выполнение основной программы под ним.

Итог

Переменные, условия и циклы - это пожалуй самое основное, что вам нужно знать на самых первых этапах. И то в некоторых случаях можно будет обойтись даже без циклов. А вот где и как все это применяется в создании игр, поймете уже позже, по ходу дела.

Спасибо, что дочитали статью до конца! Делитесь, ставьте лайки, задавайте вопросы. Скоро мы уже начнем переходить от слов к практике, т.е. приступим непосредственно к созданию самой игры.