
Термины там ↓
В этом уроке я расскажу о том, как создать основную механику игры "Крестики-нолики".
Итак, приступим же...
Для начала нужно создать новый проект.
Так как у меня руки не из того места растут, я совсем не умею рисовать, и делаю все в пиксельном стиле, именно поэтому я выбираю Retro style project предназначенный специально для пиксельных игр.

Так, проект создан, теперь надо в нем так сказать "прибраться", убрать все что нам не пригодится.

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

Далее добавим еще один спрайт - ячейку.

Теперь этому спрайту добавляем в анимацию еще 2 фрейма, крестик и нолик.

И обязательно устанавливаем скорость анимации на ноль.

И подгоняем по размеру ячейку к полю.

Добавляем 3 приватных переменных ячейке -

Stat - эта переменная отвечает за состояние ячейки, всего у ячейки три состояния и три фрейма анимации, 1 - Спокойствие, 2 - Крестик, 3 - Нолик.
X1 - переменная которая обозначает положение ячейки в нашем поле по горизонтали.
Y1 - переменная которая обозначает положение ячейки в нашем поле по вертикали.

Так, теперь нужно скопировать ячейку 8 раз и разместить их в поле как показано на картинке:

далее нужно для каждой ячейки установить переменные X1 и Y1 как показано на рисунке,
первая цифра означает переменную X1 вторая - Y1.

И последнее - добавляем спрайт "старт", который просто будет запускать игру.

Переходим к листу событий...
Во первых добавляем глобальную переменную ХоД, которая указывает, чей сейчас ход (и не только).

Далее добавляем событие которое отвечает за запуск игры(если она еще не запущена), по нажатию на спрайт "Старт".

Теперь создаем событие: переменная Ход равняется 1 или 2,

Далее делаем подсобытие и подсобытие этого подсобытия...

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


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

Идем дальше, я уже говорил "всего у ячейки три состояния и три фрейма анимации, 1 - Спокойствие, 2 - Крестик, 3 - Нолик.", так вот теперь создаем событие которое будет проверять переменную Stat и устанавливать фрейм ячейки на нолик или крестик.

Почти все готово, но у нас есть одна ошибка, мы можем ставить крестик или нолик там где уже есть крестик или нолик...
Исправляем это путем добавления дополнительного условия:

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


Если есть вопросы - можете их задавать мне в лс! Буду рад ответить всем.