|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.06.2011, 22:14 | #41 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
Да, именно такое поведение для ракет я и имел ввиду (надеюсь, указатели на цель вы только для отладки сделали и в итоге уберете их =) )
Гильза, так сказать, не вкатила... Лично мне не нравится. А вот про откат пушки - это было бы гуд. взрывы на мой взгляд надо сделать чуть менее прозрачными. Ведь в действительности от такого взрыва столько пыли поднимется, что почти ничего видно не будет. Код сейчас гляну (наконец добрался дома до компа)) )
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
01.07.2011, 21:01 | #42 |
Пользователь
Регистрация: 11.03.2007
Сообщений: 92
|
2Wicort:
Да, указатели на цели и прозрачность взрывов сделал исключительно для отладки. По поводу гильзы не понравилась сама идея или реализация? Откат пушки уже сделал, чуть позже отредактирую это сообщение и выложу проект. Раз с внешним поведение более менее определились, я бы хотел услышать мнение о внутренней архитектуре программы. А то пока никто ничего не сказал... |
02.07.2011, 21:39 | #43 |
Пользователь
Регистрация: 11.03.2007
Сообщений: 92
|
Приветствую всех!
Не получилось отредактировать предыдущее сообщение. И так, проект продвигается и это хорошо. Путь не совсем так как хотелось бы, но всё же. В архивах, как обычно, исходники и сам проект. Из нового могу отметить переделанное создание объектов. Теперь каждому объекту передаются параметры, в которых можно более точно указать его состояние (угол, радиус обстрела, количество ракет (для ракетницы), скорость и жизни (для вражин)). Соответственно изменились и процедуры создания. Теперь они аналогичны процедурам создания "примочек" (дым, взрывы, выстрелы). Так же реализовал откат пушки при выстреле. Теперь для полной красоты осталось только сделать таки интерфейс, хоть самый простой, но сделать. Может, у кого-нибудь есть мысли по этому поводу, учитывая, что в движке готовых методов нет, но я уже заложил базу для этого. Посмотрите, пожалуйста, и скажите, что вы об этом думаете. Правильный ли подход я выбрал? А то пока как-то скучно получается... Ещё хочу обратить ваше внимание на производительность программы и, соответственно, её поведение. В модуле uMain есть процедура Update. В ней есть закомментированная строка со Sleep. Заметил, что поведение довольно сильно меняется, если FPS падает ниже 200. У кого есть возможность, посмотрите как это выглядит (изменяя значения в Sleep от 1 до 10) и скажите, вообще играбельно ли это будет, и что можно с этим сделать? Ведь у меня все процедуры обсчёта зависят от времени, котрое прошло между кадрами (в самом первом проекте изменяя интервал таймера это тоже можно прочувствовать) и получается так, что чем меньше интервал, тем более реалистично получается. Но ведь не у всех FPS будет выше 1000, да и в процессе разработки он только падать будет от всё новых и новых объектов, которые тоже посчитать себя хотят. Как быть? Последний раз редактировалось Format C:; 02.07.2011 в 22:38. |
03.07.2011, 13:42 | #44 | |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
Цитата:
Исходники посмотрел ещё не все, и пока могу лишь сказать, что организация кода меня порадовала. Четкая и красивая структура классов - это очень хорошо. Единственное, что убило - отсутствие комментариев. Варианты типа Код:
P.S. Зря убрали в последней версии информацию о количестве противников на экране.
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
|
03.07.2011, 15:46 | #45 |
Пользователь
Регистрация: 11.03.2007
Сообщений: 92
|
2Wicort:
А какой вы видите реализацию гильзы? Две фигурные скобки я использую для отделения функций. У меня несколько изменённая подсветка синтаксиса, в которой комментарии имеют фон. Поэтому и использую данную конструкцию. Я, конечно, поработаю над этим, но в каких местах нужны комментарии? Или, скажу так, какие места обычно требуют комментария? |
03.07.2011, 17:11 | #46 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
Комментировать нужно ВСЁ! У каждой значимой переменной в комментарии должно быть ее назначение, у каждого метода - описание того, что он делает, у каждого условия - что проверяется и какие действия при каком условии выполняются.
Это, конечно, в идеале. На самом деле далеко не всегда получается комментировать всё. Такое обилие комментариев необходимо даже для Вас самого. Вот случится какая-то ситуация, и у Вас несколько месяцев не получится заглядывать в код. Потом Вам придется долго и упорно вспоминать что и где находится. Не говоря уже о том, чтобы в Вашем коде разбирался кто-то другой, ранее с ним не знакомый. По поводу гильз. Сложно сказать, какой я вижу реализацию, но то, что есть сейчас - на гильзу совсем не похоже. Возможно, сделать более продолжительную анимацию, чтобы можно было хотя бы рассмотреть, что это именно гильза. P.S. Сейчас сижу и копаюсь в вашем коде. Сделаю небольшие доработки, касающиеся интерфейса если Вы не против. Потом посмотрите, доработаете на свое усмотрение или удалите
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
03.07.2011, 19:13 | #47 | |
C++,DirectX/OpenGL
Форумчанин
Регистрация: 09.01.2011
Сообщений: 422
|
Цитата:
Оптимизировать надо. |
|
03.07.2011, 22:12 | #48 |
Участник клуба
Регистрация: 06.03.2009
Сообщений: 1,346
|
Понравились наработки игры . А взрывы/дым через партиклы ZenGL делал?
|
04.07.2011, 11:55 | #49 |
Пользователь
Регистрация: 11.03.2007
Сообщений: 92
|
2Wicort:
Спасибо, жду ваших доработок. Плохо, что код сейчас довольно сильно видоизменился (и изменяется сейчас). 2An1ka: То что нужно оптимизировать я понимаю, но хотелось бы (хоть не в первой уже говорю) сначала отладить общую структуру и убедиться, что она верная. А потом уже можно и оптимизацией заниматься. Или я не прав? 2Вадим Буренков: Нет, с партиклами (а какое научное название у них?) я ещё не разобрался. Взрывы - это спрайтовая анимация. Дым - тоже спрайт, который представляет собой круглый чёрно-белый градиент с прозрачностью. Потом при отрисовке накладывается нужный цвет (спрайт играет роль маски) и выводится на экран с постепенным уменьшением прозрачность. Может метод и не самый оптимальный, зато простой и рабочий. Да и дым в этом случае можно видоизменить не вмешиваясь в код (практически). А вам не сложно будет показать (ссылкой, кодом или просто объяснением), как можно через них (партиклы) дым рисовать. В демках есть пример, но что-то я не особо понял... Там текстура какая-то хитрая у них... 2All: Кстати говоря. Никто не обращал внимание на странное поведение ракет? В частности то, что они иногда выбирают не ближайшую к ним цели, а цель из новой волны. Причины пока не понял. Думал, что показалось, а нет. Прикрутил указание цели. Так оно и есть. Прикладываю скрины. У кого-нибудь есть идеи, почему так может быть. Код смотрел, вроде всё верно. Причём ракета начинает лететь к цели, которая вообще вне зоны поиска. Добавлено 13:42 Ещё, по моему недосмотру, если у ракета не может найти цель, то программа падает. Видимо это и есть причина глюков. Исправить пока не удалось. Первопричиной я считаю непрерывный поток врагов, когда цель всегда была (Раньше даже жаловались, что ракеты кружатся и никуда не падают. Теперь падают, только вместе с программой =) Ваша мечта сбылась =) ). Ищу проблему. Добавлено 13:54 Мда. Сравнил с предыдущей версией (от 27.06). Изменений практически нет, но там программа не падает. Ищу дальше. Добавлено 14:12 Нашёл ошибку. Основная причина была в том, что когда ракета достигает цели, то она убирается из списка, а следующая за ней ракета уже не обсчитывается, поэтому не может узнать, что цель уже не актуальна. Поэтому при отрисовке происходило падение, когда я ставил указатели до цели. Нужно учесть это. Есть мысль, что не нужно сразу уничтожать, а ставить флаг уничтожения, а после полного обсчёта уже уничтожать ракеты. Как такой вариант? Плюс, всегда проверять цель, прежде чем с ней взаимодействовать. Однако вопрос о первичном глюке (тот, что на скринах в архиве) ещё остался. Последний раз редактировалось Format C:; 04.07.2011 в 14:15. Причина: Обнаружил ошибку в программе |
04.07.2011, 15:46 | #50 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
Хм.. не замечал таких ситуёвин... или просто не обращал внимания...
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как "повесить " передачу данных из формы на событие нажатия кнопки типа "button" ? | vedro-compota | JavaScript, Ajax | 10 | 14.12.2010 21:05 |
Как обойти "преобразование типа из "string" в "float" невозможно" | lexluter1988 | Помощь студентам | 1 | 07.08.2010 12:23 |
разработка игры "Реверси". Имеется код этой игры на С++ | CD-RW | Помощь студентам | 0 | 28.03.2010 00:13 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |
На чем пишутся стратегии типа "Казаков" и "Эпохи империи" | Tayfun | Свободное общение | 3 | 26.06.2007 20:27 |