Пятница, 19 Апреля 2024, 02:28

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум игроделов » Записи участника » KIRILART [25]
Результаты поиска
KIRILARTДата: Понедельник, 30 Октября 2017, 17:44 | Сообщение # 21 | Тема: Туториал как создать стратегию в construct 2
был не раз
Сейчас нет на сайте
Цитата GqqdArt ()
вот я если не понимаю в констаркте ничего из этого урока я точно ничего не пойму а тот кто разбирается в канстаркте этот урок тоже наврятли что то новое даст..

Я что? Зря рубрику сделал?


Жизнь боль...
KIRILARTДата: Суббота, 28 Октября 2017, 11:24 | Сообщение # 22 | Тема: Туториал как создать стратегию в construct 2
был не раз
Сейчас нет на сайте
Цитата maker-rus ()
очень не читабельно,

Что ты имел в виду под "нечитабельно?"


Жизнь боль...
KIRILARTДата: Пятница, 27 Октября 2017, 22:00 | Сообщение # 23 | Тема: Элементарные ошибки, которые допускают новички.
был не раз
Сейчас нет на сайте
Здесь будут примеры как НЕЛЬЗЯ делать в construct 2 при создании проекта.
1. Создание спрайта, и его размер.
Ни в коем случае не загружайте спрайт с разрешением к примеру: 1850x1200 не изменяя его размер. Размер нужно изменять в самом редакторе спрайта, ане на сцене. Почему? Да потому что оригинальное разрешение спрайта останется прежним, а только когда началась сцена, спрайт уменьшается. Следовательно, спрайт загружаеться с оригинальным разрешением, что сильно влияло на размер игры. Например: 1 спрайт с разрешением 2300x2100 весит около 4 мб. А представьте сколько будет весить игра, если их будет много?
2. Оформление меню.
Многие новички делают меню загружая отдельные спрайты. Как сделать меню, и почему так делать нельзя? Игра увеличивает свой размер за счёт количества спрайтов на уровне. Лучше меню сделать в отдельном редакторе, и загрузить в формате BMP в форме спрайта.
3. Количество Particles на уровне.
Если наш юный новичок не знает, что огромное количество объекта particle на уровне сильно снижает производительность. Я 1 раз наткнулся на исходник с душем, где каждый объект particle имел голубой цвет продублирован был 3 раза. А тот чувак, который сделал исходник, их ещё и по 7 раз создавал! Хотите узнать что из этого получилось? Как только я зашёл в режим Debug, то я реально был в шоке! МАМА! КАРАУЛ! 638 объектов, 1 из них душ, и это понижало производительность CPU аж на 50%.
4. Удаление спрайта со сцены.
Редко, но всё же встречаются люди, которые случайно удаляют объект со сцены. А он не удаляется с проекта, и при экспорте будет загружен. Как в то время новичок создал новый спрайт точно такой же надобности, думая что удалённый спрайт уже не вернуть. Он не удаляется с проекта. Чтобы полностью удалить спрайт, вам надо перейти во вкладку projects, и уже там его удалить.
5. Переименование всех и вся и всю.
Честно сказать, я тоже допускал эту ошибку, но уже понял, что так делать нельзя. Если вы будете каждый спрайт, каждый уровень, и каждый event sheet переименовывать, то это будет отнимать у вас очень много времени. Можете конечно переименовывать, но лучше делать это намного реже. Если вы хотите создать маленькую экспресс игру к примеру игру exe, то ничего не переименовывайте
6. Construct 2 не отвечает.
Если у новичка слабый комп, а игру он сделал насыщенную, то запустив её в браузере, проверил её и ушёл не закрыв вкладку с игрой. Обычно, из за этого construct 2 крашаеться, так как уж больно нагрузка большая
7. Кавычки.
Если вы создаёте любое выражение, то убирайте кавычки. Например:
Правильно: choose(1,3,4)
Неправильно: "choose(1,3,4)"
Вы наверное спросите: зачем нужны кавычки, если они только мешают? Дело в том, что в construct 2, и в многих языках программирования кавычки преобразовывают символам строковое значение, легче сказать просто делает обычный текст. Если поставлены кавычки, то выражения перестают выполнять какие либо действия или правила, так как являются обычным текстом
Без кавычек: 3
С кавычками: choose(1,3,4)
8. Цифровые значения.
Многие допускают постоянно эту ошибку, чаще всего в массивах.
Если у вас например есть какая то переменная, то запомните:
Цифра 0, и отрицательные числа не являются отсутствием данных, а тоже являются значением.
В дальнейшем я буду пополнять ошибки новичков и писать сюда)))


Жизнь боль...

Сообщение отредактировал KIRILART - Среда, 01 Ноября 2017, 14:17
KIRILARTДата: Пятница, 27 Октября 2017, 21:13 | Сообщение # 24 | Тема: Помогите сделать магазин:)
был не раз
Сейчас нет на сайте
лол. глобальная переменная сохраняеться, а личная нет.

Жизнь боль...
KIRILARTДата: Пятница, 27 Октября 2017, 21:10 | Сообщение # 25 | Тема: Туториал как создать стратегию в construct 2
был не раз
Сейчас нет на сайте
Чему мы научимся?
Мы научимся создавать , создавать искусственный интеллект юнитов, добывать ресурсы, сделать врага и многое другое.

Урок 1. Ландшафт.
Ландшафт. Вы конечно можете создать деревья, водоёмы и т.д. Я этого делать не буду, чтобы экономить время. Я сделаю 2 вида камня. Первый камень = обычный камень. С помощью него мы научимся строить бараки, а второй камень = золото, на нём юниты будут добывать деньги.

Урок 2. Юниты и искусственный интеллект.
Для юнитов я создам спрайт, но не буду рисовать юнитов чтобы не заморачиваться. Юниты у меня будут черными квадратами. Далее я вам покажу таблицу событий. Слева будут номера событий. Я буду называть каждое событие по номеру, и что оно даёт.

29 событие отвечает за pathfinding юнита. Ах да! Забыл сказать, что юниту мы добавляем три поведения
1. Solid(солидный твердый объект.)
2. 8 directions(для управления с виду сверху. Во вкладке слева в свойствах 8 directions default control поставьте no.)
3. Pathfinding(основа интеллекта.)
Переходим к событию. Как только мы кликнули дважды куда-то, то наши юниты пытаются туда найти путь.
30 событие отвечает за то, что если наш юнит нашёл путь, то он по нему идёт.
31 событие мы ещё не разобрали. Указанные тут спрайты мы ещё не создали.
33 событии вам надо создать личную переменную юниту под названием HP. И если у нашего юнита less or equal меньше или равно 0 HP, то он уничтожаеться.
Урок 3. Добыча ресурсов.
Вот тут нам надо попотеть. Вам надо создать новый спрайт. Я назвал его zonestone. Она будет отвечать за зону камня. И когда в нашей зоне находится наш юнит, он добывает ресурсы.
Создаём глобальную переменную назвав её stone. Это будет наличие камня.

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

Урок 4. Вражеские юниты и их искусственный интеллект.
Чтобы сделать какой либо объект вам нужно что? Создать новый спрайт! Ему мы добавляем
все поведения что и в наших юнитах то есть soid, 8dir, pathfinding.
Они у меня будут красными квадратами. Я создам отдельную группу с юнитами врага.
Не забудьте у врага во вкладке properties поставить default control: no!
Давайте дальше. Поработаем над их мозговыми частями.

Вам придётся создать 2 личные переменные врагу.
1 личная переменная будет называться move тип у неё будет number, а число 1.
2 личная переменная будет называться moveex тип boolean а число true
Перейдем к событиям.
13 событие значит, что как только наш враг появился на свет, у него личная переменная move ставиться на
Код
choose(1, 2)

Choose= Команда позволяющая выбирать число в скобках случайно. В замену ему есть random,
но там он выбирает с сотами
например:
Choose выбрала 3, 5, 78
Random выбрал 3.348598954, 5.934829347285 74.4456456456456.
Что наше событие значит? Когда наш враг заспавнился, он будет идти к случайному камню, либо к случайному
золотому камню. Чтобы это реализовать вам надо посмотреть на следующие 4 события. Вообще их 2 а остальные
2 это подсобытия.
Если move равно 1, и moveex true, то каждую 1 секунду он ищет путь к stone
Код
stone.X stone.Y

Дальше, если move равна 2 и moveex true. То каждую 1 секунду ищет путь к stone 2
Код
stone2.X stone2.Y

18 событие отвечает, за то, что если наш враг найдет путь то он по нему пойдет.
19 событие каждые 15 секунд move у врага ставится на
Код
choose(1, 2)

Не в коем случае не ставьте moveex на false! Я вам скажу где можно будет отключать.
Урок 5. Вражеские юниты дерутся с нашими.
Это сложно, но возможно.

5 событие создаём новый спрайт zoneenemy, заливаем голубым цветом, и делаем его invisible невидимым.
Он будет чуть больше врага. Это будет зона действия врага. Если до неё докасаеться наш юнит, то у юнита каждую
секунду будет -10 HP.
Вернёмся к 5 событию. Когда наш враг создался, то у него появляеться zoneenemy
6 событие every tick каждое мгновенье. Если кто не знал мгновенье = 0.016 секунды.
Every tick у нашей zoneenemy set pozition ставиться позиция на
Код
solderenemy.X solderenemy.Y

7 сложное событие 8 подсобытие тоже сложное.
Когда начался уровень, то наша 1 зона уничтожаеться. При удалении в редакторе, её UID меняеться имейте в виду!
Чтобы посмотреть UID зоны зайдите в properties и в самом верху написан UID объекта.
Дальше мы находим на редакторе зону по этому UID и уничтожаем.
9-10 связанные события. Если наш юнит периодически касаеться зоны врага, то у него каждую секунду отбираются
HP.
11 событие элементарное. Если у нашего врага less or equal меньше или равно HP, то он уничтожаеться
То же самое сделайте и с нашими юнитами, только зона будет другая.
Урок 6. UI User Interface.
1. Что такое UI? Это инвентарь, или панель действий.
Чтобы её сделать создаем новый layer под названием UI, и ставим Parallax 0, 0.
Чтобы сделать постройку барака вам придеться создать 2 спрайта с башней барака. 1 спрайт для уровня, а 2 для UI. Создайте 2 спрайту личную переменную под названием select. После, создаем событие. Если мы кликнули на 2 спрайт барака, то Select станет 1, аналогично 0. И создаем событие on click когда мы кликнули, и при этом личная переменная барака 2 стоит на 1, то на позиции мыши создаёться объект барак.
Урок 7. Стоимость постройки.
Мы можем создавать бесконечно бараки, но как сделать им определённую сумму?
В событии создания постройки добавляем ещё 1 событие, в моём случае 2.
В 1 событии я сравниваю глобальную переменную money Greater or equal (стоимость, в моём случае 150) т.е. больше или равно 0. Но деньги не отнимаются. В действиях, мы отбираем substract от глообальной переменной money нашу стоимость (150). Аналогично с другими ресурсами.

Область выделенная серым отвечает за то, что кликнули ли мы.
Черным выделено если у нас выбран спрайт 2 барака is sel.
Желтым есть ли у нас 300 денег, а красным есть ли 100 камня, но что это за событие выделенное коричневым??
Я просто создал новый спрайт, и новую глобальную переменную. Спрайт всегда на позиции курсора, а если он касается UI фона, то UICOL становится 1, аналогично 0.
То, что выделено коричневым, обозначает не касается ли наш спрайт UI, если нет, то всё ок.
Урок 8. Ценность постройки.
Зачем я покупал барак, если он ничего не делает? Сейчас мы сделаем барак полезным.
Заходим в редактор барака и создаём новый image point. Вот как это сделать:


Что такое Image Point. Есть 2 вида image point. 1 origin 2 просто image point.
Что такое Origin image point? Это центр оси вращения объекта. То есть в центре земли находится тот самый её origin. Расположение origin на земле = (Экватор От севера до юга) + (Экватор от запада до востока) : 2, и мы получим позицию ядра земли, или origin.
Что такое просто image point? Это точка объекта, не связанная с позицией, или вращением спрайта. Но на эту точку можно заспавнить объект.
И точно также мы сегодня заспавним на наш image point барака юнита. Переходим к событиям.
Каждые например интервал между спавнов юниты будет 10 сек. Каждые 10 секунд барак spawn another object выбираем юнита image point 1.
Урок 9. Барак врага, и автоматическое построение барака врага.
Я решил сделать барак врагу.

Пройдемся по номерам событий.
Событие под номером 79 обозначает то, что каждые 10 секунд, на image point 1 у вражеского барака спавниться враг.
Событие под номером 82 обозначает то, что если наш барак врага не до касается до его зоны хила врага, то он создаёт рядом с собой на image point 0 зону хила. Можно вместо этого поставить on created, но мы будем менять позицию барака (потом поймёте почему), и за счёт этого наша зона не меняет позицию, и остаётся в исходном положении. Можете ещё сделать событие если наша зона не до касается до барака врага, то она уничтожается. Но ведь враг очень пассивный, и он самостоятельно не спавнит как мы новые бараки. Чтобы это исправить вам надо положить глаз на события 80, и 81. 80 событие отвечает за то, что каждые 30 секунд наш барак врага спавнится на случайной области уровня.
Код
random(layoutwidth) random(layoutheight)

81 событие отвечает за то, что если наш барак заспавнился в текстуре, то он телепортируется опять по области уровня.
Код
random(layoutwidth) random(layoutheight)

А на этом пока всё! Скоро я буду ещё дописывать тему, а пока изучайте исходник сами. Всё что будет в этом исходнике, я допишу сдесь! Ждите...
Исходник
Пишите в комментариях, если чтото не получилось, или не понятно. Я лично попытаюсь объяснить подробнее.
рубрика "Объяснение уроков от подписчиков"


Добавлено (27 октября 2017, 11:40)
---------------------------------------------
Столько просмотров и 0 комментариев?

Добавлено (27 октября 2017, 21:10)
---------------------------------------------
Вы будете сегодня комментировать или нет? Ало 107 просмотров!


Жизнь боль...

Сообщение отредактировал KIRILART - Суббота, 28 Октября 2017, 13:18
Форум игроделов » Записи участника » KIRILART [25]
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг