Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2010, 22:34   #11
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

Beermonza, модульность делалась с учётом на будущее . Из этой основы потом может быть что-нибудь крупное выйдет. Спрошу насчёт модулей: как у тебя в проекте обстоит дело с этим, если не секрет?
Цитата:
Но возникает заползание ящиков
Кажется, что я уже близок к решению этой проблемы. Рисую в тетрадочке картиночки, я близок к истине.
Цитата:
что цикл перебора 2-го порядка
Вот как раз через while(пост 5) можно увеличить порядок, обрабатывать все объекты, пока существуют столкновения между ними, а в процедуре Collision надо будет изменить проверку <= на строгую <.
Asker13 вне форума Ответить с цитированием
Старый 29.12.2010, 00:50   #12
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Я не делаю модули ради самих модулей. В твоем случае вижу даже такие модули, которые в себе содержать только процедуры без входных параметров, в которых обнуление переменных со строгими именами, характерными только конкретному проекту. Т.е. если я попытаюсь применить модуль для своего проекта, я не смогу им пользоваться, он не имеет смысла никакого вне проекта, для которого он написан. Тут нарушается сама суть существования модуля (библиотеки): процедуры и функции модуля должны носить универсальный характер, т.е. процедуры и функции должны иметь входные параметры, заданные неявным образом. Пример: function Min(a,b: Integer): Integer; - функция должна быть в модуле, который наполняет еще множество таких вот фундаментальных функций/процедур, не зависящих от проекта.

В своем проекте, я, естественно, создаю процедуры и функции, но в модуль их не кидаю, поскольку вне проекта они не имеют смысла, а раз проект есть, то путь все функции/процедуры будут в нем же. В любой момент я четко вижу как работает код, не прыгая по модулям и не смотря исходный код процедур/функций. Не маловажную роль играет и правильное оформление кода с визуальной точки зрения. Излишнее сокращение кода, отсутствие полных указателей тел циклов/условий (Begin..end) ведет к потере времени на поиск ошибок. Можешь просмотреть исходник, и сделать выводы. Это личные наблюдения за 10 лет, ...я набирал код по всякому, начиная и с сокращений и все маленькими буквами, но потом сделал открытие со временем: если в переменных и командах есть прописные символы, то глаз распознает код гораздо быстрее, тратится меньше времени на понимание и осмысление напечатанного. Например, я не создаю переменную posx, ее в коде не видно, она должна быть записана PosX. Если переменная числится записью некоторого типа, то имя ее должно начинаться с символа сокращения названия типа, например: тип TGUnits, в его составе есть переменная UPosX, в любом месте, увидев такую переменную я сразу понимаю какому типу она принадлежит. Еще много нюансов, все описать не хватит времени.

По поводу столкновений. Нужно воспользоваться структурой метода "пузырька", аналогично на While цикле, с прыжками по массиву блоков, отмечая столкновения, ...ты видимо это и пытаешься выполнить, удачи! ...если что, пиши, буду помогать по мере возможности.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 29.12.2010, 11:33   #13
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

Цитата:
сделал открытие со временем: если в переменных и командах есть прописные символы, то глаз распознает код гораздо быстрее
Это действительно так. Твой код легко и удобно читается. Редактируя проект, немного привыкаю к новому оформлению и теперь стараюсь потихоньку переучиться. Ты абсолютно прав насчёт удобства и быстроты распознавания.
Цитата:
По поводу столкновений. Нужно воспользоваться структурой метода "пузырька", аналогично на While цикле, с прыжками по массиву блоков, отмечая столкновения, ...ты видимо это и пытаешься выполнить, удачи! ...если что, пиши, буду помогать по мере возможности.
Ды вот пытаюсь, но пока не могу решить проблему "заползания" блоков.. я думаю, что как только найду ответ, всё будет отлично работать, и можно будет добавить финальную характеристику - массу блока, сложение масс.
Кстати, если не против, я оставил твой проект за основу. Спасибо.
Asker13 вне форума Ответить с цитированием
Старый 29.12.2010, 16:45   #14
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Asker13
Ды вот пытаюсь, но пока не могу решить проблему "заползания" блоков.. я думаю, что как только найду ответ, всё будет отлично работать, и можно будет добавить финальную характеристику - массу блока, сложение масс.
Кстати, если не против, я оставил твой проект за основу. Спасибо.
Попробуй делать пометку у очередного блока не просто "проверен", а с которым по счету он контактирует, ...можно возвращать проверку по конкретному номеру и "скакать" по массиву, пока есть столкновения.

С какой стати я должен быть против? ))) ...это твой проект, просто под иной редакцией.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация кода ViktorG Microsoft Office Excel 4 12.11.2010 14:43
Оптимизация кода. Alex Cones Общие вопросы Delphi 19 12.10.2009 20:51
Оптимизация кода viscas PHP 3 31.05.2009 16:04
Оптимизация кода nusik Общие вопросы Delphi 2 21.05.2009 17:55
Оптимизация кода. MAKTECYMA Общие вопросы C/C++ 2 05.06.2008 16:48