Создание "Крестики-Нолики". Занятие №1

уроки, мануалы, советы по Construct 2

Сообщение Создание "Крестики-Нолики". Занятие №1
» 31 мар 2014, 16:16

Всем привет! :hi:

Термины там ↓
 термины
►ПКМ -правая кнопка мыши
►ЛКМ -левая кнопка мыши
►Список событий -экран event list
►Рабочая область -там где вы спрайты ставите
►Команды - тот список где всякие условия или действия
►Событие - это вся строчка кода где и есть и условие и действие
►Условие - это первая (левая) часть события там где задаем как и когда, например: start of layout
►Действие - это вторая (правая) половина события так где задаем что делать, например set animation


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

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

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

Во первых добавляем глобальную переменную ХоД, которая указывает, чей сейчас ход (и не только).
Изображение
Далее добавляем событие которое отвечает за запуск игры(если она еще не запущена), по нажатию на спрайт "Старт".
Изображение
Теперь создаем событие: переменная Ход равняется 1 или 2,
Изображение
Далее делаем подсобытие и подсобытие этого подсобытия...
Изображение
В этом месте у многих бывает ошибка, в частности и мой друг столкнулся с ней...
Изображение
Изображение
эта ошибка возникает у людей которые не очень понимают принцип работы событий,
в первом случае если переменная ХоД равняется единице то она станет двойкой, а потом проверится второе условие и оно тоже окажется истинным и переменной ХоД установится значение 1, и всегда будет ходить только крестик... :blush: если кто нибудь что то из этого не понял то пишите мне, постараюсь объяснить попонятнее...

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

Если есть вопросы - можете их задавать мне в лс! Буду рад ответить всем.
Последний раз редактировалось Grib04eg 07 апр 2014, 16:23, всего редактировалось 2 раз(а).
Аватара пользователя

Участник
Сообщений: 44
Я тут с 20 янв 2014
Skype: kostya_kurt2
Репутация 16 [ ? ]

Сообщение Создание "Крестики-Нолики". Занятие №1
» 31 мар 2014, 21:42

Не читал урок, но выглядит хорошо..
Аватара пользователя

Участник
Сообщений: 134
Я тут с 09 фев 2014
Skype: yegorf1
Репутация 9 [ ? ]

Сообщение Создание "Крестики-Нолики". Занятие №1
» 01 апр 2014, 08:24

yegorf1 писал(а):Не читал урок, но выглядит хорошо..

Благодарствую :hi:

P.S. потратил около четырех часов... :blush:
Аватара пользователя

Участник
Сообщений: 44
Я тут с 20 янв 2014
Skype: kostya_kurt2
Репутация 16 [ ? ]

Сообщение Создание "Крестики-Нолики". Занятие №1
» 02 апр 2014, 17:29

Посмотрел итог.. Оптимизация, мой друг, оптимизация)
Аватара пользователя

Участник
Сообщений: 134
Я тут с 09 фев 2014
Skype: yegorf1
Репутация 9 [ ? ]

Сообщение Создание "Крестики-Нолики". Занятие №1
» 02 апр 2014, 17:54

yegorf1 писал(а):Посмотрел итог.. Оптимизация, мой друг, оптимизация)

А о каком месте ты говоришь?)) скажи, может исправлю, но это ведь можно сказать вырванный код из готового проекта, так что рано говорить о его оптимизации)
Аватара пользователя

Участник
Сообщений: 44
Я тут с 20 янв 2014
Skype: kostya_kurt2
Репутация 16 [ ? ]

Сообщение Создание "Крестики-Нолики". Занятие №1
» 03 апр 2014, 17:27

Grib04eg писал(а):А о каком месте ты говоришь?)) скажи, может исправлю, но это ведь можно сказать вырванный код из готового проекта, так что рано говорить о его оптимизации)

Событие номер 6 - куча ресурсов зря.
Аватара пользователя

Участник
Сообщений: 134
Я тут с 09 фев 2014
Skype: yegorf1
Репутация 9 [ ? ]

Сообщение Создание "Крестики-Нолики". Занятие №1
» 03 апр 2014, 17:47

yegorf1 писал(а):
Grib04eg писал(а):А о каком месте ты говоришь?)) скажи, может исправлю, но это ведь можно сказать вырванный код из готового проекта, так что рано говорить о его оптимизации)

Событие номер 6 - куча ресурсов зря.

Это знаю, у меня потом будет функция которая будет проверять выигрыш и заодно устанавливать фрейм анимации, в этот урок я не стал вставлять функцию)
Аватара пользователя

Участник
Сообщений: 44
Я тут с 20 янв 2014
Skype: kostya_kurt2
Репутация 16 [ ? ]

Сообщение Создание "Крестики-Нолики". Занятие №1
» 07 апр 2014, 10:55

урок перемещен из скрытого раздела для учителей -сюда в общий доступ
Аватара пользователя

Администратор
Сообщений: 5706
Я тут с 05 сен 2012
Двиг: Construct2
Лицензия: Personal
Skype: c2community
VK: gabrielsailergray
Репутация 377 [ ? ]

Сообщение Создание "Крестики-Нолики". Занятие №1
» 14 апр 2014, 13:43

Grib04eg хочет стать учителем. кто выполнял этот урок -напишите свое мнение. понравился ли вам урок? есть ли какиелибо ошибки или пожелания?
Аватара пользователя

Администратор
Сообщений: 5706
Я тут с 05 сен 2012
Двиг: Construct2
Лицензия: Personal
Skype: c2community
VK: gabrielsailergray
Репутация 377 [ ? ]

Сообщение Создание "Крестики-Нолики". Занятие №1
» 14 апр 2014, 14:16

Да понравился)Талантливый парень!) Давай еще уроки)
Аватара пользователя

Участник
Сообщений: 40
Я тут с 28 янв 2014
Лицензия: Personal
Репутация 15 [ ? ]



Вернуться в Уроки по Construct 2

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх