бут ілюструється баром: ОграніченіеОграніченіем є максимально можливу кількість населення на даному рівні. Припустимо, максимум дорівнює M. На момент збору населення його сума вже дорівнює N. Тоді можна зібрати всього MN.Решеніе проблем з перевищенням ограніченіяЕслі кількість готового до збору населення перевищує MN, то береться тільки можливе число. Причому, можлива така ситуація: з будівлі можна зібрати P населення, але до максимуму всього P - 2, тоді з будівлі знімається P - 2 населення, а 2 залишається висіти в мітці до наступного збору.
. Тип ресурсу «Деньги»
Таблиця 4. Тип ресурсу - гроші
ХарактерістікаКаждое будівля справляє певну кількість грошей в залежності від типу і рівня. При зборі даний елемент додається до такого атрибуту гравця, як Валюта.ОграніченіеНеограніченное кількість.
Крім того, під час отримання готового ресурсу на екрані відбувається безліч анімацій і звукових ефектів, що потрібно врахувати при розробці для збереження продуктивності додатка. У кінцевому варіанті потрібно розробити компонент для сіті-білдера, що має інтерфейс для взаємодії з користувачем і виконує певні функції. В якості інтерфейсу має виступати вікно:
Таблиця 5. Основні складові вікна
Елемент окнаХарактерістікаДекоратівний заголовок з інформацією для ігрокаПредставляет собою заголовок з назвою вікна, картинку з персонажем гри і повідомлення про можливості використання окна.Кнопка для сбораНа кнопці написана поточна вартість виробленого дії, при кліці запускає процес збору всіх можливих продуктів.Фон окнаОтрісовка фону вікна складається з 3 частин: отрисовка верхніх, нижніх кутів, центра.Табліца ресурсовОтображает все збираються ресурси з прокруткою. У таблиці кожен ресурс представлений зображенням з підписом про збираному кількості. Причому ресурси одного типу повинні показуватися одним елементом з підсумованим показником їх кількості. Наприклад, нехай збирається M грошей, N продукту одного типу з першої будівлі і P продукту такого ж типу, але з іншої будівлі. Тоді в таблиці повинне бути присутнім всього два елементи: зображення грошей з підписом M і зображення продукту з підписом K, де К=N + P.
Механізм одночасного збору певної кількості ресурсів з усіх будівель потрібен для того, щоб користувач, на карті якого стоїть безліч фабрик і будинків, зміг замість методичних кліків по кожному з них зібрати всі ресурси одним кліком.
Ця функція надається користувачеві на платній основі, тому слід реалізувати зміна грошових ігрових атрибутів. Розмір суми слід узгодити з геймдизайнером, щоб ігровий баланс не був зіпсований.
2.2 Опис програмного рішення
У процесі створення програмного компонента потрібно реалізувати візуальний інтерфейс і алгоритм роботи розроблюваного модуля. Середовищем розробки є Xcode, платформа iOS, що використовується API Cocoa. Крім того, для організації анімацій і частини інтерфейсу в ігровий проект впроваджений движок Cocos2d-iphone.
Вікно запускається з панелі на головному екрані. На даній панелі при виконанні певних умов з'являється картинка, при кліці на яку користувач запустить відкриття вікна. В якості умов береться якесь кількість готових елементів кожного типу, наприклад: має бути готове до збору n ресурсів-грошей, m ресурсів типу продукт, p ресурсів населення. При підрахунку кожного з них слід враховувати обмеження по населенню та складу. Таким чином, першим завданням є пошук можливості контролювати кількість готових продуктів і відстежувати його зміна. Платформа розробки дозволяє зробити це двома способами. Перший спосіб: посекундний перерахунок готових ресурсів в режимі запущеної гри. Другий спосіб: використання такого компонента Objective-C як NSNotificationCenter, механізму передачі повідомлень. Реєстрація та отримання повідомлення відбуватиметься в класі MainPanel.m, а відправлятися вони будуть в декількох класах, в яких відбувається зміна поточного стану готовності продукту. Кожен раз, коли повідомлення відловлюється, відбувається перевірка умов для появи кнопки запуску вікна в панелі. Наприклад, виконався контракт на отримання населення, вирушило повідомлення, воно було спіймано, і відразу відбувається перерахунок всіх готових ресурсів для перевірки задоволення умовам.
Повідомлення буде приймати клас MainPanel.m. Для цього зареєструємо його в центрі повідомлень в момент, коли инициализируется клас:
[[NSNotificationCenter defaultCenter] addObserver: self selector:selector (onShowCollectAllButton :) name: NOTIFY_DROP_ITEM_DROPPED object: nil]; bserver - це об'єкт, який прийматиме повідомлення. В даному випадку поточний клас MainPanel.m.- це метод, який буде викликаний в момент прийому повідомлення...