Сегодня мы разберём, как создать кликер с улучшениями.
В начале создаём проект. Добавляем объект в качестве кнопки и добавляем к нему ещё 2 образа, в скриптах у него пишем
Там создаём переменную «клик» (можно назвать переменную и по другому) и присваиваем ей значение 0
- Как только становится истинным (Событие)
В них пишем «устройство» >> «касается пальца» = 1
- Изменить размер на -100
- Как только становится истинным (Событие)
В них пишем «касается пальца» = 0
- Изменить размер на 100
На данном этапе мы сделали кнопку которая при нажатии уменьшается
Пока оставим кнопку и сделаем улучшение
Создаём объект, добавляем 2 образа и пишем код
Создаём переменную «уровень кнопки» и присваиваем ей 1
- При нажатии
- Если истина, то (управление)
«Уровень кнопки»(переменная) = 1
Скрипт «если истина, то» совершает действие внутри себя, если соблюдаются условия
- Если истина, то
Данный значок _> обозначает больше или равно, и находится он во вкладке
«Логическое»
- Изменить значение
«Клик»(переменная) на -10
Как в Scratch 3 сделать игру-кликер?
- Следующий образ
- Вещать всем (события)
Создаем команду «улучшение»
«Вещать всем» — данный скрипт позволяет передавать команды скрипту «когда я получу»
- Присвоить
«Уровень кнопки»(переменная) 2
«Остановить» — данный скрипт позволяет остановить данную часть кода
- Если истина, то
«Клик»(переменная) _> 20
- Изменить значение
Источник: dzen.ru
Создание простой кликер-игры с нуля
В последние несколько лет набирают большую популярность игры такого жанра, как «кликеры». Мне самому очень интересно играть в них, но не менее интересно создавать игру — кликер самому. Благодаря такому движку как Unity, создать свой шедевр не составит труда даже простому новичку. Давайте перейдем к делу.
Что нужно сделать?
- Подумать, почему и на что мы должны кликать?
- Что должно произойти, когда мы кликнем?
- Что должно произойти, если не кликнем?
- Мы должны кликать в любое место на экране.
- При клике должен смениться объект.
- При игнорировании — проигрыш.
О чем будет игра?
Игроку нужно вовремя выбрать либо меч, либо щит, в зависимости от того, что будет падать сверху. То есть, падает меч — выбираем меч, падает щит — выбираем щит. При неправильном выборе игрок просто проиграет. На словах всё довольно просто, а в реализации еще проще.
Откуда мне новичку брать красивый спрайт и фон? Ответ: нарисовать самому.
Тут нет ничего сложного, так как мы рисуем в Adobe Illustrator. Даже если у вас нет опыта в рисовании, то опять же не расстраиваемся, так как я покажу вам всё по деталям.
- Меч
- Щит
- Задний фон
- Ветка с листьями
Техника проста и покажу на примере меча:
- Рисуем контур
- Заливаем цветами
- Рисуем тени
И всё, наш меч готов!
Также проделываем и с другими. Не пугайтесь, если в начале одно ваше творение покажется вам далек от идеала, ведь в совокупности они будут смотреться, как картина Ван Гога. Шутка. А может и нет.
Задний фон сделаем еще хитрее.
Нарисуем зеленый прямоугольник и используем градиент. Выглядит вот так:
Можно сказать, что уроки художества на этом закончены и мы наконец идем в Unity.
В первую очередь закинем наши спрайты, а меч и щит перетащим в окно иерархии, так как нам нужно будет создать из них префабы и не только.
- Добавляем Rigidbody 2D и установим значение “0” в поле Gravity Scale, чтобы щит стоял на одном месте.
- Добавим Circle Collider 2D и установим галочку в Is Trigger, чтобы отслеживать действия.
Далее украсим игру спрайтами, нарисованными ранее. Первым делом кидаем фон.
- Размещаем ветки сверху
- Добавим снизу бревно
- Посередине разместим мост
Основной секрет дизайна такой: сверху и снизу разместим ветки, а у лесенки уменьшим значение прозрачности. Зачем это делать?
Дело в том, что таким образом мы создаем некую иллюзию пространства. Игроку будет казаться, что есть передний объект, задний и горизонт. И это классно!
Теперь создадим кнопку, которая будет занимать весь экран. Чтобы создать кнопку нужно в иерархии нажать на UI -> Button. Далее:
- Нажимаем на Color.
- Устанавливаем значение «0» в поле А, которая отвечает за прозрачность нашей кнопки.
- Убеждаемся, что кнопка стала такой, какой мы хотели.
Таким же путем создаем текст, чтобы показывать наш текущий счет и рекорд.
И наконец, мы дошли и до программирования.
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class MainScript : MonoBehaviour < public GameObject[] prefabs; //массив префабов public GameObject[] players; //массив объектов public static int score,record,n,k = 0; //счёт, рекорд, «n,k» — счетчики public Text scoreT; //текст на экране void Start() < score = 0; Time.timeScale = 1; StartCoroutine (PrefabsCreate ()); scoreT = scoreT.GetComponent(); record = PlayerPrefs.GetInt («Record»); > void Update() < n = Random.Range (0, prefabs.Length); // генерация случайных чисел //от 0 до кол-ва префабов scoreT.text = score + «/» + record; // вывод счета и рекорда if (score >= record) < record = score; PlayerPrefs.SetInt («Record», record); // сохранение рекорда >> IEnumerator PrefabsCreate() < // создание случайного префаба while (true) < Instantiate (prefabs [n], new Vector2 (0, 6.5f), Quaternion.identity); yield return new WaitForSeconds (0.5f); >> public void BtnClick(string btn)< // метод для кнопок if(btn == «Click»)< Time.timeScale = 1; players [k].SetActive (false); // отключаем активный объект(меч, щит. ) k++; if (k >= prefabs.Length) < k = 0; // обнуляем счетчик, если k превышает кол-во префабов >players [k].SetActive (true); // активируем объект (меч, щит. ) > > >
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerScript : MonoBehaviour < void OnTriggerEnter2D(Collider2D other)else < MainScript.score++; Destroy (other.gameObject);// уничтожение префаба >> >
Что творится в этих методах?
Start (). Он запускается каждый раз, когда мы запускаем игру или же перезапускаем сцену. Всё что прописано внутри этого метода выполняется только один раз. Поэтому мы туда записываем: счет равный нулю, запуск корутины (то, что отвечает за создание префабов), значение времени.
Update (). Выполняется раз за кадр. Сюда удобно записать то, что постоянно должно обновляться. В нашем случае: показатель счета и рекорда, рандомное значение n от которого зависит что создастся – меч или щит.
BtnClick (). Вы спросите, почему перед этим методом стоит «public»? Нам необходимо, чтобы он отражался в самом Unity и мы могли прописать слово «Click», чтобы отследить, на какую именно кнопку мы нажимаем, хотя и кнопка всего одна, знать чуточку больше никому не помешает.
Сюда запишем то, что должно произойти после нажатия на кнопку. При нажатии должно меняться с меча на щит и наоборот, устанавливать значение времени «1», так как при проигрыше она обнуляется.
OnTriggerEnter2D (). Проверяет столкновение объекта. Если теги обеих объектов совпадает, то счет увеличивается на единицу, а префаб уничтожается. Если теги разные, то проигрыш – останавливается время и обнуляется счет.
Осталось добавить эти самые теги. И тут всё очень просто:
- В окне Inspector нажимаем на Tag.
- В выпавшем списке в самом низу нажимаем на Add Tag.
- Жмем на плюсик и называем тег как хотим.
После создания также нажимаем на Tag и выбираем нужный.
Осталось перенести скрипты нужным объектам и заполнить некоторые поля. Создадим пустой объект и добавим скрипт «Main Script», а «Player Script» добавим в наш меч и щит.
С полной уверенностью могу сказать, что игра готова. Запускаем и наслаждаемся своим первым творением.
Всем добра и удачи в геймдеве!
- кликер
- игра с нуля
- юнити
- unity
- создание игр для android
- adobe illustrator
- простая игра на юнити
Источник: habr.com
Разработка игр для детей с нуля: как сделать Кликер на Юнити
Какие игры вы любите больше всего: бродилки, стрелялки, лабиринты или кликер? Предлагаем сегодня остановиться более подробно на таком жанре, как кликер на Юнити. Что это такое узнаем из статьи.
А пока советуем подписаться на Youtube-канал школы “Пиксель” . В нем огромное множество бесплатных уроков программирования для детей и подростков на различные темы: Scratch, Python, Lua, Си Шарп, HTML, CSS, JavaScript, веб-программирование, компьютерная грамотность и другие.
Создадим с помощью языка программирования Си Шарп Кликер на Unity (Кликер на Юнити). Кликер — это игра в которой нужно многократно нажимать на экран для получения очков. Самый известный представитель жанра — Кукикликер (Cookie Clicker). Кукикликер — компьютерная игра, которую в 2013 году создал французский программистом Ж. Тьенно.
Приступим к созданию своего собственного кликера.
Этап I. Создание проекта “Кликер на Юнити”
Запускаем Unity Hub. Создаем новый проект и выбираем шаблон 2d игры. Нажимаем File, Build Settings. Если вы уже создавали проект под андроид, то выбираем Android и нажимаем Switch Platform. Если же у вас не установлена данная платформа, как у меня допустим IOS, то нужно нажать Install with Unity Hub, а потом перезапустить проект.
Дожидаемся компиляции скриптов. Переходим во вкладку Game и меняем Free Aspect на портретный режим с вашим разрешением экрана.
Этап II. Создание интерфейса игры Кликера на Unity
Создаем канвас, а в нем Button — TextMeshPro. Импортируем необходимые компоненты для кнопки. Двойным кликом переходим к ней и настраиваем размер. Для кнопки я нашел в интернете картинку пиксельного сердечка и пиксельный шрифт. Элементы внешнего вида конечно же можете выбрать самостоятельно. Удаляем текст из кнопки и подключаем картинку.
Подкорректируем размеры. Создадим текст в котором будут отображаться наши очки. Изменим размер и положение так, как нам нужно и привяжем положение этого элемента вот здесь с зажатой клавишей shift. Это нужно, чтобы при изменении размера экрана кнопка оставалась в том же положении как мы и задумали.
Впишем начальное значение очков, подключим шрифт, выставим выравнивание по середине, изменим размер и поменяем цвет. Также я поменяю цвет заднего фона. Посмотрим на получившийся результат в окне Game.
Этап III. Создание скрипта для игры Кликера на Юнити
Переходим в камеру и прикрепляем к ней новый скрипт, называем его GameManager. Нажимаем на New script, а затем на кнопку создать и добавить. Заходим в него. Пока что удалим функции, которые здесь есть. Добавим их при необходимости. Для того чтобы видеть переменную в инспекторе напишем SerializeField. Объявляем переменную, в которой будем хранить наши очки.
Далее создадим переменную, которая будет хранить количество очков, прибавляемое при каждом клике. В начале игры будет равняться единице. Теперь объявим переменную, к которой будем подключать текст в Unity. Чтобы это сработало нужно подключить библиотеку UnityEngine.UI.
Создаем функцию Update, вызываемую каждый кадр игры, в ней будем обновлять текст очков в Unity в соответствии с числовым значением в скрипте. Чтобы число перевести в строковое значение воспользуемся методом ToString. Далее напишем метод клик, в котором будем увеличивать счет игрока при клике на значение соответствующей переменной.
Переходим в Unity и подключаем объект на котором висит скрипт с методом Клик и в выпадающем списке выбираем его. А также не забываем подключить текст со счетом игрока к скрипту, чтобы он менялся в игре. Запускаем и проверяем. Как мы видим все работает.
Этап IV. Улучшение клика в проекте “Кликер на Unity”
На канвас добавляем кнопку, при нажатии на которую игрок усилит свой клик. Даем ей соответствующее название и настроим размер и положение, а также перепишем текст на кнопке. Кроме того создадим текст в котором будет написана цена за улучшение. Для того чтобы игру было легче тестировать задам цену в 10 кликов. Настроим внешний вид текста аналогично тексту счета игрока.
Перейдем в скрипт для реализации улучшения. Создадим переменную, которая будет хранить цену за улучшение клика. А также переменную текста цены из Unity. В Update будем обновлять надпись в соответствии с числовым значением скрипта.
Объявим функцию прокачки клика. Начнем с условия. Если счет игрока больше или равен цене апгрейда, то это значит что игрок может купить его. Внутри условия отнимем от счета игрока цену за улучшение, увеличим цену на следующую покупку, а также усилим клик на один. Если же у игрока не хватило очков, то пишем в консоль об этом.
В дальнейшем можно заменить вывод в консоль на вывод сообщения прямо в игре. Сохраняем и переходим в Unity.
Подключаем объект со скриптом к кнопке. И выбираем соответствующий метод. Запускаем и проверяем. Так как нем не хватает очков, нам вывелось сообщение, и улучшение не произошло. Наберем нужное количество очков и попробуем улучшить.
Все работает.
Созданную игру можно улучшить, добавив дополнительные функции, которые рекомендуем попробовать реализовать самостоятельно. Видеоурок по созданию кликера в Unity можно посмотреть на Youtube-канале .
Школа программирования для детей “Пиксель” приглашает школьников10-14 лет пройти курс с нуля Unity и Cи Шарп . Попробуйте себя в роли разработчика и создателя компьютерных игр. Приблизьтесь к миру IT под руководством практикующих программистов.
Для создания Кликера на Юнити потребуются пиксельные сердечко и шрифт. Скачать сердечко можно по ссылке, а шрифт доступен здесь. За основу не обязательно брать именно эти составляющие. Можете выбрать что-то другое, более подходящее на ваш взгляд.
Скрипт Кликера на Юнити:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
IEnumerator AutoClickCorutine()
<
while (true)
<
score += autoClickGain;
yield return new WaitForSeconds(1);
>
>
>
Источник: clubpixel.ru