M.A.X.    Вы вошли как гость
Российский Клуб игроков M.A.X.
 
[Новости]   [Новичку]   [Энциклопедия]   [Документы]   [Файлы]   [Игроки]   [Архивы]   [Архив форума]  
[Новый сайт]   [M.A.X. Gold]   [Партии]  

 
 
 
Архив форума  МаксГолд
[Основной форум] [Голосования] [МаксГолд] [Off-Topic]
 


Отв: Разъяснения  -  Hruks,  06.07.2010  2:33:56

##Ясно. Имелось ввиду http://www.rumaxclub.ru/forum_2/lv_3/post_5805.htm
Вот там как раз и баг описан, что я исправил и предложение это я попробовал.
Не понравилось, поэтому пока убрал. Сделал только по средней кнопке мышки - при атаке башня крутится, а при движении весь юнит разворачивается. А следить за башней всё время выглядит не очень из-за дискретного по 45 градусов поворота. Вот если бы по градусам вращалась башня, было бы хорошо.
В любом случае фикс делает поворот лучше и не влияет на производительность.


##Великолепно, это баг. Где-то произошло наложение имён, а скорее всего я просто забыл что что значит - номер отдельно, другой параметр - id записи.
Ну это ты уже сам такие баги правь. Я настолько глубоко влезать не стану, а то ты точно все изменения откатишь :)


##А вообще я даже не замечал насколько древний тут блок VFS, обязательно его обновлю.
##Можно bochs и из sdisdl и vfs выкинуть, чтоб пока не мешался.
Выкинул.
Вот как раз такие вещи прекрасно позволяет реализовать SVN. Внешние к проекту библиотеки объявляются как external и фиксируются на какой-то версии. Если возникает необходимость - просто меняется версия в свойствах, и проект начинает компилиться с новой версией. При этом все файлы лежат в одном месте и не нужно копировать их туда-сюда.


##А зачем поиск по файлам? Переключил в папку с проектом, выделил три нужных директории, поиск. Что может быть проще?
Хех. Во впервых не всегда в папке с проектом есть только файлы, которые в проект включены. Пример с этим bochs - он вроде бы есть, а из проекта я его выкинул.
Кроме того, поиск внутри файлов средствами IDE намного удобнее. Теже регулярные выражения, подстроки, учёт кейса. Да и сам список удобный (в других средах есть лучше, но и так нормально). И результаты поиска можно заменять новым, а можно новый список создавать а к старому возвращаться.
И самое главное, поиск делается комбинацией, вводимой на автомате: Ctrl+F+Tab,Enter.
При этом если искомое выражение было под курсором, то оно сразу готово к поиску. Если нет, то ввести его тоже не сложно обычно.
Поиском я пользуюсь очень часто и работать без него крайне неудобно.
Всё таки поиск средствами файлового менеджера это полезная возможность, но это так, фича - довесок. А поиск средствами IDE - рабочий инструмент.


##Из объективного, не нравится мне список по тому, что он привязывает все юниты к их директориям, и включает в себя то, что нигде не используется в данном файле.
Так, не понял. Ещё раз. Все uses расписываются один раз - в файле проекта. И список этих uses содержит те файлы, которые в проекте явно используются. Лишних файлов тут быть не должно.
Модули же могут использовать дополнительные файлы, например системные или свои библиотеки. Но это должны быть именно библиотеки и они не должны меняться в самом проекте. То есть правило простое - меняет проект файлы - это его файлы, не меняет - выбрасываем их проекта и подключаем uses в модулях.
В самих модулях пишутся короткие перечисления имён подключаемых файлов - нет нужны писать длинные, так как они и так указаны один раз в проекте.
На счёт перекладывания файлов по папкам. Ну за это время я не налюдал, чтобы ты файлы перетасовывал :) Кроме того, они один раз в проекте указаны - поменять путь можно или руками путь скорректировав, либо в IDE диалогом выбрать файл. Короче простая операция, выполняемая очень редко. Не понимаю, какие затруднения может вызвать.
Ну и ещё раз - в самом проекте, где все файлы проекта перечислены по хорошему кода быть не должно, поэтому список этот глаз не должен мозолить ну никак :)


##В данном случае надо сделать fb_size, и привести массив к нулю. Сохранёнка правдо сломается, так что на потом.
Ой, не люблю я нулбейзд массивы. Мне этим как раз дельфи нравится, что массивы можно индексировать с любого числа. Прияно, когда такие простые вещи кастомизируются. Но идею понял. Впредь буду именно так и делать.


####А mg_game.reslvl чем не угодил? Это resources Level.
####В чём отличие от plrpas, resmap, stgold и humplr, которые там рядышком?
##Те - более или менее привычные сокращения, а что поновее пусть лучше изначально будет по-понятнее.
##start_resources, start_res_level, что-то в этом роде.
Не вопрос. Мне так тоже намного больше нравится.


##Не стоит стесняться выводить в константы по первому чёткому пониманию их смысла.
Ок. Вот только я не всегда понимаю, куда лучше константы запихивать. Может в файл, который переменные содержит? Или всё таки определение структур?


####тотальный копипаст
##Не совсем понятно о чём речь, если речь не о вещах, подобных входам-выходам из меню.
Хм.. ну вот навскидку из открытого сейчас файла:
  MG_UPGRLAB:begin
   putsprtn8(@sdiscrp,grap[GRP_ICOS],xn+160,yn+70+28*0,16,16,20,0);
   putsprtn8(@sdiscrp,grap[GRP_ICOS],xn+160,yn+70+28*1,16,16,10,0);
   putsprtn8(@sdiscrp,grap[GRP_ICOS],xn+160,yn+70+28*2,16,16,24,0);
   putsprtn8(@sdiscrp,grap[GRP_ICOS],xn+160,yn+70+28*3,16,16,16,0);
   putsprtn8(@sdiscrp,grap[GRP_ICOS],xn+160,yn+70+28*4,16,16,00,0);
   putsprtn8(@sdiscrp,grap[GRP_ICOS],xn+160,yn+70+28*5,16,16,06,0);
   putsprtn8(@sdiscrp,grap[GRP_ICOS],xn+160,yn+70+28*6,16,16,18,0);
   putsprtn8(@sdiscrp,grap[GRP_ICOS],xn+160,yn+70+28*7,16,16,14,0);
  end;
Или вот ещё типичный пример:
   drrect8(@sdiscrp,xn ,yn ,xn+os,yn ,cl1);
   drrect8(@sdiscrp,xn ,yn ,xn+os,yn ,cl1);
   drrect8(@sdiscrp,xn+1,yn+1,xn+os,yn+1 ,cl2);
   drrect8(@sdiscrp,xn+2,yn+2,xn+os,yn+2 ,cl1);
         
   drrect8(@sdiscrp,xn ,yn ,xn ,yn+os,cl1);
   drrect8(@sdiscrp,xn+1,yn+1,xn+1 ,yn+os,cl2);
   drrect8(@sdiscrp,xn+2,yn+2,xn+2 ,yn+os,cl1);

   drrect8(@sdiscrp,xn+os*4 ,yn ,xn+os*4-os,yn ,cl1);
   drrect8(@sdiscrp,xn+os*4-1,yn+1,xn+os*4-os,yn+1,cl2);
   drrect8(@sdiscrp,xn+os*4-2,yn+2,xn+os*4-os,yn+2,cl1);

   drrect8(@sdiscrp,xn+os*4 ,yn ,xn+os*4 ,yn+os,cl1);
   drrect8(@sdiscrp,xn+os*4-1,yn+1,xn+os*4-1,yn+os,cl2);
   drrect8(@sdiscrp,xn+os*4-2,yn+2,xn+os*4-2,yn+os,cl1);

   drrect8(@sdiscrp,xn ,yn+os*4 ,xn+os,yn+os*4 ,cl1);
   drrect8(@sdiscrp,xn+1,yn+os*4-1,xn+os,yn+os*4-1,cl2);
   drrect8(@sdiscrp,xn+2,yn+os*4-2,xn+os,yn+os*4-2,cl1);

   drrect8(@sdiscrp,xn ,yn+os*4 ,xn ,yn+os*4-os,cl1);
   drrect8(@sdiscrp,xn+1,yn+os*4-1,xn+1,yn+os*4-os,cl2);
   drrect8(@sdiscrp,xn+2,yn+os*4-2,xn+2,yn+os*4-os,cl1);

   drrect8(@sdiscrp,xn+os*4 ,yn+os*4 ,xn+os*4-os,yn+os*4 ,cl1);
   drrect8(@sdiscrp,xn+os*4-1,yn+os*4-1,xn+os*4-os,yn+os*4-1,cl2);
   drrect8(@sdiscrp,xn+os*4-2,yn+os*4-2,xn+os*4-os,yn+os*4-2,cl1);

   drrect8(@sdiscrp,xn+os*4 ,yn+os*4 ,xn+os*4 ,yn+os*4-os,cl1);
   drrect8(@sdiscrp,xn+os*4-1,yn+os*4-1,xn+os*4-1,yn+os*4-os,cl2);
   drrect8(@sdiscrp,xn+os*4-2,yn+os*4-2,xn+os*4-2,yn+os*4-os,cl1);
Неплохо так? А ведь делается простейшая библиотечная вещь.


##Ну, хотя-бы целостность.
##}
##else{
##в одном месте,
##}else
##{
##в другом, а в третьем вообще
## }
## else
##{
##смысла уже не имеет.
Ok. Обращу внимание на выделение частей и блоки else begin end.


    ответы :