В игре зделано всего четыре уровня. Звуки повешаны не на все события, хотя делов там минимум. Шкала топлива отображается не совсем по факту, по сути её надо переделывать.

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

 

Работа над ошибками:

  1. Надо более тщательно планировать архитектуру и диздок, в частности Layers - необходимо было заранее прописать все лэеры, не только просто UI и GameSpace. Как оказалось ещё есть и сомолёты которые должны быть поверх GameSpace и т.д.

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

  2. Тщательное изучение статей по разработке на Unity3D часто встречаю негативность в сторону  "сингельтонов", думаю надо от них избавляться тоже, у меня сиглтонами GameManager  и EventManager сидят, мне как то не по себе от такой реализации и хотелось всётаки от синглтонов избавится. Единственное может синглтоном оставлю SoundManager и может буду делать какойнибудь типа медиатор типа GameData чтобы данные перемещать между сценами, хотя это помоему тож плохая идея....
  3. Я так и не вкурил с Layout в UI , как их толком выровнять, как по нормальному привязывать объекты УИ к своим местам, я доков на эту тему пока не нашол, а также не в куриваю как же всё таки заточиться под разные разрешения экранов, с этим надо ещё поработать и набить руку. Гдето я вычитал что "высота камеры должна быть половине размера экрана в пиксела" примерно, но смысл я так и непонял.
  4. Недавно прочёл что любой объект которые перемещается по сцене должен быть с компонентом RigidBody2D прям ПОЛЮБАСУ. В будущем буду это учитывать. Вообще там ещё много заморочек с коллайдерами и их перемещением. Я перемещаю объекты через transform а этого делать как оказывается незя, надо делать всё   через rigidbody2d. учтём.
  5. Останусь пока по системе "всё в одной сцене", все уровни, все панели, менюшки и интро. Иерархия слишком забита от этого, хоть всё и разбито по подпапкам(подобъктам), всёравно хотелось бы это всё упростить и перейти на систему отдельных загружаемых сцен, но как это всё сделать вкупе со всеми игровыми примочками(EvenManager, SoundManager, GameData и т.д.) да ещё и НЕ ИСПОЛЬЗУЯ синглтоны - я незнаю.

Переделана опять система уровней, всётаки уровни рисуем одной цельной вертикальной полосой вверх друг за другом.

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

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

 

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

.

Рисуем уровни в ряд, а помере игры они подставляются с верху(собно примерно как патроны в магазине..)

Так же запилины показ текущего "бриджа", и отображение количества оставшихся жизней в виде картинок самолётиков.
Осталось заделать шкалу топлива.

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

     public void spawnbereg () 
     {
         GameObject bg =  Instantiate (bereggameObject.transform.position, Quaternion.identityas GameObject;
        float different=Random.Range(0f, 2.0f);
        Vector3 newa =  Vector3.Lerp(old,new Vector3(different, 0f, 0f), 0.05f);
         bg.transform.localScale += newa*left_right;
         old = newa;
        bg.transform.position += newa*left_right;
     }

Что из этого получилось:

Начата вторая попытка разработки ремейка ZX-Spectrum игры River Raid. На этот раз разработка будет идти по компонентной системы с применение паттернов программирования.

Ремейк писался на скорую руку, безо всяких излишеств и прибамбасов. Нарисован только один уровень.

 

© 2021 MidaDev.

Please publish modules in offcanvas position.