uint идентификаторы
Решил выйти на новый уровень и попробовать отказаться от строковых идентификаторов там, где это возможно. В частности, делать все игровые предметы на uint-идентификаторах. Пока получается как-то тяжко. Бог с ним, что теперь в консоли появляются абсолютно не информативные сообщения типа "Надеваем предмет ID 114576", можно и к Модели языковой пакет прикрутить и название на русском сразу подцеплять, не велика беда.
Главная проблема - обеспечить уникальность этих самых идентификаторов. А когда они ещё и записаны в шестнадцатиричном представлении, то даже визуально их сопоставлять тяжко. Пока выкрутился так. Нажимаю Ctrl+K, открываю палитру. Для первого элемента беру какой-нибудь цвет типа RGB 175:175:175. А для каждого следующего увеличиваю яркость с шагом 5 и получаю новое uint-значение. Но это, по-моему, порнография. Что посоветуете? Спасибо. |
делать как в java: первый айдишник 0,второй 1 и т.д.
|
Скачай консоль для проекта, очень удобная. Можно даже в рантайме произвольный код выполнять, функций дёргать, смотреть состояние объектов. Ещё у флеша есть дебаггер с полноценными точками останова, незаменимая вещь. Так, прост, вдруг ты ещё не использовал.
пс. Айдишник должен быть уникальным, а не красивым и понятным человеку! Начинай нумерацию с 1, зачем такие сложности. Ноль лучше не юзать, может пригодиться, например, для обозначения отсутствия сущности (null). |
Цитата:
Пока надумал наваять статический класс-генератор, который наплодит uint-ов по порядку, забьёт всё в массив и будет по одному выдавать. И всё. |
А мне 16x числа напоминают дизайнеров. Они цвета в нём обычно хранят. Смотришь на какой нибудь 0xFF0000 и сразу видишь
|
Цитата:
|
Я вот как-то не верю, что там такое количество инвентаря, что аж строковых констант не хватит.
Я бы не рекомендовал использовать никакие uint идентификаторы и уж тем более автогенератор айдишников. Ты потом задолбишься это отлаживать, если что-то пойдет не так, особенно если это еще и в базу пишется, которую потом потребуется рефакторить. Делай всегда так, чтобы ты сразу мог понять что происходит. Вот есть у тебя, допустим, плащ, который добавляет 50% защиты, и другой плащ, дающий 100% защиты. Называешь их cloak_50 и cloak_100 соответственно. Можешь туда и какие-то другие параметры добавить. Если у тебя есть 2 плаща, которые дают 50% защиты, но отличаются цветом, то можешь написать так cloak_50_green / cloak_50_red и т.п. |
Старый анекдот:
- Мальчик, ты пионер? - (гордо) Да! - Да?! - (испуганно) Н-нет... - Нет?!!! - (в истерике) Ну я не зна-а-а-ю! Вот так же и с идентификаторами. В соседних ветках меня всей ватагой застыдили, вот типа от Tails: Цитата:
|
Надо понимать где строки тормознутые, а где нет. Если у тебя что-то там со строками делается миллион раз за кадр, то да, лучше числа считать. А для идентификаторов "тормознутость" вообще не имеет значения, зато в отладке числа - это полнейший геморой. Да ты уже и сам это понял, судя по началу темы
А автогенератор использовать нельзя потому что при добавлении чего-то не в конец списка, все айдишники пересчитаются и получится каша. Допустим у игрока был меч с одним айди, а перед ним был молот с другим айди. Айдишники пересчитаются, и окажется, что у игрока уже молот, вместо меча, к примеру. |
Цитата:
Цитата:
Код AS3:
|
Часовой пояс GMT +4, время: 03:14. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.