Сейчас 03:20:22 Воскресенье, 29 декабря, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Вопрос] Говнокод
Ty3uKДата: Воскресенье, 19 Августа 2012, 22:15:55 | Сообщение # 1
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:

Есть ли ошибки и можно ли добавить кошерности?


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Понедельник, 20 Августа 2012, 06:34:09 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Ошибок нет.

Я бы public void AddIcon(player owner, string model, float x, float y, int utype) заменил на static thistype Add(player owner, string model, real x, real y, int utype). Просто как-то нелогично: создать иконку можно через var ico = HeroIcon.create(), а пользоваться ей нельзя, пока не напишешь ico.AddIcon(...)
И еще такой вопрос: как ты собираешься удалять trackable'ы после выбора героя? Может, лучше сделать их невидимыми, а текстуры накладывать через юнитов/разрушаемых?

Замечания кончились, дальше пошли придирки. :)
Внутри методов this можно не писать. Просто .owner или даже owner
Члены структур по умолчанию публичные. public можно не писать.
И еще я считаю хэш здесь лишним.
Code
private static void CatchTrackableAction() {
    var ev = GetTriggerEventId();
    handle h = GetTriggeringTrackable();
    HeroIcon ico = 1;
    whilenot h == ico.track { ico++; }
    if ev == EVENT_GAME_TRACKABLE_TRACK {
        BJDebugMsg("TRACK");
    } elseif (ev == EVENT_GAME_TRACKABLE_HIT) {
        BJDebugMsg("HIT");
    }
    flush ev, h;
}
Quote (Ty3uK)
elseif (ev == EVENT_GAME_TRACKABLE_HIT)
А какое еще может быть событие?)


 

Ty3uKДата: Понедельник, 20 Августа 2012, 09:42:41 | Сообщение # 3
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
спасибо, подправлю
ты же знаешь, в vJass я нубко


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

bubliqДата: Понедельник, 20 Августа 2012, 10:56:46 | Сообщение # 4
2 уровень
Группа: Пользователи
Сообщений: 24
Награды: 0
Репутация: -12
Блокировки:
Я бы не использовал методы отсылающие на обычный return this.x итд
а работал бы с ними напрямую, все правильно, никакие static методы не юзай, это говнище полное, так ты можешь работать с каждой иконкой, забивая её в переменную, это надежнее - опрятнее и быстрее
 

SirNikolasДата: Понедельник, 20 Августа 2012, 11:01:42 | Сообщение # 5
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (bubliq)
Я бы не использовал методы, отсылающие на обычный return this.x итд
Почему?
Таким образом мы гарантируем сохранность данных. Что никто (даже сам автор системы, случайно) не изменит их. Если не нравятся скобки функции, можно использовать real operator X() { return .x; }

Насчет static не совсем понял. Какие действия в данном случае можно сделать между HeroIcon.create() и ico.AddIcon()? Почему не следует их объединять?


 

Ty3uKДата: Понедельник, 20 Августа 2012, 12:47:29 | Сообщение # 6
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
нпсчет ретурнов - исходил из вопроса сохранноси данных

Добавлено (20 Августа 2012, 12:47:29)
---------------------------------------------


Операторы няшная штука


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Понедельник, 20 Августа 2012, 13:28:51 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Ty3uK)
Code
private static void CatchTrackableAction() {
    var ev = GetTriggerEventId();
    HeroIcon ico = 1;
    if (ev == EVENT_GAME_TRACKABLE_TRACK) {
        BJDebugMsg("TRACK");
    } else {
        BJDebugMsg("HIT");
    }
    flush ev;
}
Что это? Посмотри еще раз на тот код, который я дал.
Quote (Ty3uK)
private bool isPicked;
Вот это немного не в тему - зачем кнопке информация о том, выбран ли герой? Это просто кнопка. Особенно если учесть, что это поле есть у всех 12 иконок (для каждого игрока).
Quote (Ty3uK)
TriggerAddAction(Track, function HeroIcon.CatchTrackableAction);
Только заметил - ты при каждом создании кнопки добавляешь действие.
Quote (Ty3uK)
Операторы - няшная штука
А то! Разрешается еще вот так:
Code
void operator UnitType=(int value) {
    if value != 0 {
        .utype = value;
    } else {
        .destroy();
    }
}


 

Ty3uKДата: Понедельник, 20 Августа 2012, 13:30:27 | Сообщение # 8
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
это я уже убрал
и дестрой переписал


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Понедельник, 20 Августа 2012, 13:35:44 | Сообщение # 9
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Знаешь, можно бы еще в структуру добавить bool array[12], кому видна иконка, а track сделать trackable array[12]. Так мы можем уменьшить количество декораций до двенадцати раз.

 

Ty3uKДата: Понедельник, 20 Августа 2012, 13:47:54 | Сообщение # 10
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
я не декорации решил юзать, а универсального дамми :)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Понедельник, 20 Августа 2012, 13:50:59 | Сообщение # 11
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
И крепить к нему эффекты-текстуры, да?)
Все равно, считаю, что на каждую кнопку должен быть один дамми и 12 trackable'ов.


 

Ty3uKДата: Понедельник, 20 Августа 2012, 13:57:19 | Сообщение # 12
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
а зачем 12?

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Понедельник, 20 Августа 2012, 13:59:05 | Сообщение # 13
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Эм, как бы для отслеживания игрока, который навел мышь/щелкнул.

 

Ty3uKДата: Понедельник, 20 Августа 2012, 14:03:49 | Сообщение # 14
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
ну так это ж только создание, все еще впереди

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz