ONE WAY - Создание второй игры для Steam №2
Всем здравствуйте. Поздравляю всех с прошедшим НГ! Я всё еще делаю игру ONE WAY. За момент с последнего поста успел сделать следующее:
- Сделал движение платформы сверху вниз
- Сделал движение платформы по кругу
- Сделал движение платформы вокруг своей оси
- Нарисовал новых врагов
- Сделал ловушку со стрелой
Движение платформы сверху вниз
Для этого я написал скрипт Key. Он должен двигать объект по амплитуде сверху вниз с некоторой частотой. Для удобства можно регулировать эти показатели. Чтобы скрипт работал, нужно на объект кинуть BoxCollider2D.
Вот полный скрипт, если кому нужен. Если вдруг нужно сделать так, чтобы объект двигался не только сверху вниз, но и около своей оси, то после Vector3 в скобочках первый ноль меняем на необходимый вам показатель. Однако, после цифры нужна буква f, так как этот параметр типа float.
Вот примерно так это работает:
Движение платформы по кругу
Для удобства можно менять такие показатели как радиус и скорость вращения. В видео, которое будет ниже, у первой платформы показатели стоят по 1, на второй - по 2.
Также скину скрипт на случай, если кому-то нужен он. Чтобы он работал, необходимо чтобы у вашего игрока был тэг "Player"
По итогу получился такой результат:
Движение платформы вокруг своей оси
Сделать это было очень легко. Скрипт буквально состоит из одной строчки. В ней мы прописываем вращение объекта по оси Y. Скорость вращения можно поменять в большую или меньшую сторону. Также можно добавить вращение по другим осям.
Так это выглядит в игре:
Новые враги
Так главному герою наносят урон противники:
А так главный герой побеждает врагов. Нужно запрыгивать на них сверху, как в Марио.
Нарисовал вот такие модели врагов. В данное время думаю как делать Боссов и какие они будут.
Ловушка со стрелой
Для ловушки со стрелой я написал скрипт Trap. На модель стрелы положил 2 BoxCollider2D. Один из них будет по площади стрелы, а второй должен быть намного больше, чтобы считывать движения игрока. Поставил галочку "isTrigger", чтобы главный герой мог пройти сквозь коллайдер. Также я положил на объект Rigidbody2D и gravity scale опустил до 0. Таким образом, объект будет стоять на месте, но если игрок войдет в триггер, то у объекта gravity scale поднимется до 1 и стрела упадет камнем вниз.
Так это работает в самой игре. В будущем планирую в некоторых местах вместо стрел использовать бомбы и прочие вещи.
Заключение
На этом буду закругляться и пойду пилить демку. Если вдруг заинтересовала игра, то вот ссылка на неё:
Если добавите игру в список желаемого, то буду очень вам благодарен
Если у вас есть советы по разработке игры и какие-либо интересные мысли, то пишите - я с удовольствием почитаю)
Также вы можете подписаться на группу игры в VK. Буду заливать туда разные небольшие фишки о игре (новости, анимации, концепты, интересные идеи и так далее)
Стим все стерпит.
Там явно похуже есть игры)
Насколько корректно в c# сравнивать строки оператором "=="? (other.gameObject.tag == "ground")
В той же java, при сравнении ссылок, это будет работать пока они ссылаются на один объект, поэтому в будущем может появиться непредсказуемое поведение. Или тут есть свои нюансы?
Про теги уже сказали, а в целом при сравнении строк все делают именно так. Пока не встречал никого, кто бы юзал String.Compare(), хотя так тоже можно.
Так делать можно, это будет работать, но более правильно использовать
other.gameobject.CompareTag(“ground”);
Это конкретно для тэга. Для сравнения строк тоже свои операторы есть.
Я просто очень слаб в программировании, всё работает на костылях, мне кажется)
Чел посмотри какие нибудь курсы по моделированию,цветам и тд.С таким визуальным дизайном твои игры никогда не взлетят,лишь будешь Габену просто так по 100$ отдавать...И да для платформеров на Unity есть довольно таки звездатый ассет который ускорит разработку в разы,и сможешь заняться графикой
UPD есть сервисы которые помогут тебе подобрать цветовую палитру для игры.
UPD2 в стиме есть уже похожая игра от Artalasky,так что я бы посоветовал придумать что нибудь другое,если конечно хочешь получить копеечку от своего труда...