Vampirrr
O_o
offline
Опыт:
19,286Активность: |
Как вернуть юнита из числа?
Мне нужно запоминать юнитов в кэше (юнитов много, хранить их нужно на протяжении всей игры). Кажется я разобрался более-менее в SCV, но все тки навыка не хватает и хочется узнать, как это сделать правильно. А делаю я следующее - в начале игры создаю N количество юнитов и по мере их создания, заношу в кеш, присваивая каждому номер (1 созданный юнит имеет номер 1, 2 созданный имеет номер 2 и т.д.). Потом мне нужно заставлять каждого юнита с определенным номером делать что-то. И тут возникает вопрос - как мне вернуть юнита с определенным номером? Отредактировано Vampirrr, 22.02.2009 в 03:10. |
22.02.2009, 02:39 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,880Активность: |
Vampirrr, ну, во-первых система называется SCV, а не CSV =) Во-вторых, создавай массив юнитов. У тебя они создаются поочередности, пот и доставай из массива того юнита, который нужен. Например
Код:
|
22.02.2009, 02:57 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
вот мой корявый код:
Код:
методами тыка и выведением на экран значений я пришел к следующему выводу - не работает функция integer_handle (меня на данный момент не волнует красота написания кода и т.д., главное исправить - почему юниты не идут куда я их посылаю). Что бы не было лишних вопросов: Cache - переменная типа кэш, задана при инициализации, val - целочисленная переменная от 1 до 11, все остальное тоже задается. Vampirrr добавил: Кажется я нашел ошибку. Дело в том, что integer_handle возвращает значения от 1 до 11 и конечно I2U не срабатывает - ID юнита не может быть числом 1 или 2. Следовательно вопрос - как мне вернуть из val значение юнита? |
22.02.2009, 04:28 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
APXEOLOG
Прощай XGM, удачи тебе.
offline
Опыт:
1,015Активность: |
Ну когда у меня встал похожий вопрос, я решил не лезть в дебри и реализовал по-простому. У меня конечно юзаются глобалки, но они мне понятнее чем кэш.
Описал структуру хранения юнитов: Код:
Так же описал глобалки: Код:
При создании юнита я записывал значения: Код:
И теперь в любой момент времени я могу найти юнита простым алгоритмом нахождения элемента в массиве. Код:
Ну конечно в идеале еще добавить механизм очистки массива от погибших юнитов, но у меня он используется только для воскрешаемых героев, так что в нем ничего, после создания, не меняется. |
22.02.2009, 08:20 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,880Активность: |
APXEOLOG, единственное, что мне непонятно, так это зачем для этого действия использовать структуры? Ведь можно просто создать массив из юнитов...
|
22.02.2009, 13:32 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
APXEOLOG
Прощай XGM, удачи тебе.
offline
Опыт:
1,015Активность: |
Hellfim ну вообще-то да =) я просто тогда думал о скорейшей реализации а не об оптимизации.
|
22.02.2009, 14:50 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
APXEOLOG, спасибо, структуры вещь тоже интересная (хотя мне кеш более понятен чем они), но в связи с тем, что я осваиваю его, хочется узнать, как выйти из моего положения соотсветсвенно используя тот же кеш)
|
22.02.2009, 15:47 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,880Активность: |
Vampirrr
Код:
|
22.02.2009, 15:54 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
Hellfim, как я сказал, из числа 1, 2 или 3 мы не можем венуть юнита) я просто добавил к
Код:
еще 1 вещь: Код:
и все заработало.. |
22.02.2009, 18:02 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Vampirrr
Не используй кэш, глюков не оберешься! Hellfim прав, можно обойтись массивом (грамотно реализованым). и смени подпись, нет в русском языке приставки З-, глаза режет. |
22.02.2009, 18:15 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
MF_Andreich, по поводу глюков пожалуйста подробней. Мне не актуальна реализация, ибо я в кеше разбираюсь.
|
22.02.2009, 19:20 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
Vampirrr, ну насчет глюков, поюзай поиск, много писалось, ваабще, кэш не использую (имхо - бред какой-то), но говорят что нехилый процент потери данных + кэш забивает память (как минимум строками). Насчет неактуальности реализации... Учись писать нормально! Вот тебе мой совет.
|
22.02.2009, 19:23 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
Всем спасибо, тему можно прикрыть.
MF_Andreich, я по-русски уже 3 года не общаюсь (ну только что в интернете) и все равно пишу лучше большинства. А по поводу актуально - пробей поиск в яндексе со строкой "правописание неактуально" и посмотри что выбьет. И однозначно, это слово не из тех, когда ты можешь утверждать что пишется только так и не иначе. |
22.02.2009, 19:46 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|