![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Здравствуйте, есть персонаж с различными характеристиками и у него есть слоты под предметы, при добавлении которых(предметов) меняются характеристики персонажа (По сути то, что есть почти в каждой RPG).
Как это грамотно реализовать? Мне пришло на ум, только добавить в объект предмета все характеристики какие могут быть и прибавлять их значение к параметрам персонажа Но такой способ очень накладный по памяти, особенно если использовать его в огромном живом мире где таких объектов будет не одна тысяча. Последний раз редактировалось PlutDem; 30.03.2012 в 01:45. |
|
|||||
|
Свойства не публичные, а геттеры.
При добавлении/снятии объекта (не забываем про типизацию) пересчитываем только актуальные свойства и только при добавлении/снятии. За результирующие свойства отвечают отдельные переменные. Эта 1000 будет находится на сцене одновременно?
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Вроде этого?
function addItem(item):void { if(item.str) str += item.str; if(item.dex) dex += item.dex; if(item.con) con += item.con; ... } Последний раз редактировалось PlutDem; 29.03.2012 в 20:11. |
|
|||||
|
Цитата:
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
Регистрация: May 2011
Сообщений: 72
|
я когда то так делал, но это был не АС
![]() class Person { // базовые статы var basa_str:int = 10; var basa_dex:int = 15; // текущие параметры var str:int; var dex:int; // функция, вызваетца каждый раз, как что-то сняли/одели/т.п. function recheckStats():void { str = basa_str; if (одета шапка) { str+=шапка.str; } if (одеты труселя) { str+=труселя.str; } ... } } |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Декоратор, штука, конечно, хорошая, но проблему с хранением лишних свойств(бонусов) в предмете не решает.
Зачем хранить dex,con и т.п. если бонус только к str ? На каждый предмет отдельный декоратор не создать, не говоря уже о том. что постоянное использование декоратора на объекте в конечном итоге приведет к снижению производительности.
Последний раз редактировалось PlutDem; 29.03.2012 в 22:00. |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Как же? Тысячи объектов(предметов), в них еще штук 20 объектов-свойств(характеристик). Все это отхватит приличный кусок памяти.
|
|
|||||
|
[+4 07.04.12]
[+1 20.01.12] Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
|
я думаю не играбельно будет даже если принебречь производительностью (фпс скорее всего будет меньше единицы)
Последний раз редактировалось anmelegov; 29.03.2012 в 23:04. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:45. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|