Одна із запланованих можливостей гри — арсенал з вибором зброї. Звичайно, було б цікаво зробити систему купівлі, продажу і поліпшення зброї, але це скоріше буде в якихось майбутніх проектах. Зараз підемо досить простим шляхом і просто підключимо можливість перемикання зброї.

У минулій флеш-версії (так, таке теж була) я пробував реалізацію за допомогою xml, але зараз не буду, та й забув уже все. Важливе зауваження — не можна допускати розростання механіки понад потрібного рівня. Ідеал недосяжний, процес розробки можна вести нескінченно, вводячи нову механіку і створюючи додаткові можливості. Звідси висновок — потрібно вміти сказати собі “стоп” і відкласти цікаву ідею на наступний проект, майбутню версію або доповнення. Крутий багатофункціональний xml-арсенал з сотнями видів генерованого зброї це цікаво, але для навчальної, загалом-то, примітивної гри це зайве.

Ще потрібен художник. Поки не придумав зручного формату роботи з ним, але свої схематичні спроби малювання лякають. Треба буде почитати як взаємодія розробника і художника відбувається в інших проектах. Напевно, останнім видаються потрібні розміри і опис картинок. Але для цього повинні бути начерки інтерфейсу і розташування. На допомогу знову приходить чудовий Balsamiq Mockups. Теоретично, можна в ньому спроектувати всю гру на етапі дизайн-документа, а потім вже вести роботу відразу по всіх напрямах. Треба буде спробувати такий підхід.

Загалом, сесія розпочалася з нарису в Mockups і відтворення примітивною графіки для зброї:

А потім сидимо і пишемо код, жахаючись вже написаного. Все ж треба привчати себе писати хороший, грамотний і повторно використовуваний код. Все ніяк не доберуся до підручника, щоб освіжити пам’ять за технічним моментам і тим же класів. Але, напевно, після реалізації основного функціоналу, сяду все ж за переписування коду і приведення його в нормальний вигляд.

В одній з минулих частин я висловлював нерозуміння на тему того, коли замість стандартних кнопок використовуються більш складні MovieClip з додатковим кодом. Його небагато, всього кілька рядків, але можна ж зробити швидше? Можна, але іноді виникають проблеми. Хотів зробити вибір зброї простими кнопками, при цьому підсвічуючи поточне активну зброю. А метод переміщення до заданого кадру для кнопок не знайомий. Довелося переводити кнопки в MovieClip і дописувати код. Зате можливостей більше і більш елегантне рішення. Звідси знову повторюся з очевидним висновком — не треба йти простими шляхами замість правильних або більше функціональних.

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

На черговій сходинці коду я схопився за голову. Він жахливий, код. Мені соромно за нього. Після поточної сесії я візьму підручники з AS3 і обов’язково підвищу свій навик. Поточна робота теж буде не даремно, мислення все одно перемикається в потрібну сторону. Розумієш всі недоліки і погані рішення, думаєш як їх можна виправити в майбутньому. Але чим далі я намагався реалізувати вибір зброї, тим гірше йшов процес. Вже на початковому етапі спливали численні проблеми і було очевидно — поточний шлях тупиковий, гора кривого коду перемогла. Потрібно зупинитися. У наступній частині ми поговоримо про важливість освіти у справі ігровий розробки і буде переписувати код. Залишайтеся з нами 🙂

Робимо гру: вступна | підготовка | перші кроки | додаємо функціонал | планомірний рух | перезавантаження (краща частина, імхо) | зберігаємо дані | арсенал | ривок | механіка | фінішна пряма | фініш