Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Отчеты по практике » Участь у розробці компонентів ігрового програмного продукту

Реферат Участь у розробці компонентів ігрового програмного продукту





ри кліці не по кнопках, а при перетягуванні з будь-якої точки

. Відцентрувати положення осередків в контейнері, якщо їх кількість менше, ніж вміщається на все поле прокрутки

В результаті отримуємо контейнер CCScrollView з осередками, зображений на малюнку 7:


Рис. 7. Таблиця з прокруткою


А також вікно:


Рис. 8. Вікно модуля «Зібрати всі»

Після візуальної частини компонента відбувається робота над третьою завданням: алгоритмом збору ресурсів. Після натискання на кнопку збору всі ресурси повинні правильно змінити систему атрибутів додатки і запустити ряд анімацій.

. Гроші: відбувається додавання отриманої кількості до атрибуту money з класу GameStat.m, а також мітка над будівлею змінюється з зображення готового ресурсу на картинку з виготовляти продуктом.

. Продукти: всі зібрані продукти кладуться на склад, причому однакові ресурси складаються групами по 20 штук, мітка над будівлею змінюється на мітку вільного будівлі. Крім того, запускається анімація машинки, яка відвозить ресурс на склад. Над машинкою вказується, який ресурс вона везе і його кількість.

. Населення: відбувається додавання отриманої кількості до атрибуту population. Мітка над будівлею змінюється на мітку виготовлення. Крім того, враховується такий варіант збору, коли з певного будівлі збирається лише частина населення, тому в мітці над будівлею залишається висіти ще n населення.

Після натискання кнопки збору має змінитися значення грошового атрибуту через клас GameStat.m, а також збільшитися лічильник збору всіх ресурсів за раз, так як кількість використань даного механізму збору впливає на отримання користувачем ігрового досягнення, за яке дається нагорода. Крім того, при зборі ресурсу з одиночного будівлі запускається звуковий супровід і на карті з'являється зображення отриманих грошей і досвіду, але при зборі безлічі продуктів таку кількість анімації і роботи з графікою може уповільнити роботу додатку, тому потрібно змінити алгоритм появи анімацій і звуків. Дані алгоритми є частиною ігрового менеджера - DropItemManager.m, відповідального за отримання ресурсів, появи їх на карті.

Класи, використовувані в роботі компонента:

Клас, контролюючий поява кнопки на ігровій панелі і її анімацію.


MainPanel- onShowCollectAllButton- actionCollectAll- pulseButton

Game- collectAllWith: - canCollectAllWith: - canCollectBuilding: - collectBuilding:

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

Реалізація деяких методів класу Game:


- (BOOL) canCollectBuilding: (Building *) building alert: (BOOL) alert

{

NSString * type=building.typeName;

int value=[building inCountToCollect]; ([type isEqualToString: @ house ])

{

value -=building.dropedValue;

int population=[_gameStat valueForAttribute: ATTR_POPULATION];

int dropedPopulation=[self.map.dropItemManager totalValueOfItemsWithType: DROP_ITEM_ATTRIBUTE name: @ population ];

int happiness=[_gameStat valueForAttribute: ATTR_HAPPINESS];

int v=(population + value + dropedPopulation) - happiness; (((v gt; 0) amp; amp; (v == value)) || (value - v) lt; 0 ||! [_ gameStat canAddValue: (value - abs (v)) forAttribute: ATTR_POPULATION])

{

if (alert)

{

[Game showNotEnoughHapinessAlertForBuilding: building];

}

return NO;

}

}

else if ([type isEqualToString: @ entertainment ])

{

if (! [_ gameStat canAddValue: value forAttribute: ATTR_MONEY1])

{

if (alert)

{

[Game showCantCompleteAlert];

}

return NO;

}

} YES;

}

(void) collectBuilding: (Building *) building

{

NSString * type=building.typeName; * attribute=nil; ([type isEqual...


Назад | сторінка 5 з 8 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Legal regulation of guard of lands of housing and public building
  • Реферат на тему: Розробка програми для збору відомостей про систему
  • Реферат на тему: Компромат у політичній боротьбі: особливості його збору та використання в с ...
  • Реферат на тему: Пристрій для збору информации
  • Реферат на тему: Контролер збору аналогової інформації