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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2011, 13:47   #11
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

Делаю очень быстро Ловлю момент пока есть вдохновение.
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 20.02.2011, 16:46   #12
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
-VSynс отключать не стоит. Ира начинает "летать"
Я получаю время выполнения процедуры обработки в ZenGL через SYS_UPDATE (в омеге можно попробовать через получение системного времени с помощью U_GetTime). Далее просто умножаю скорости всех объектов на эту величину. Ведь чем она больше, тем быстрее должны двигаться объекты на экране и наоборот. В итоге скорость без VSync и с VSync одинакова.
Вадим Буренков вне форума Ответить с цитированием
Старый 20.02.2011, 16:55   #13
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

Спасибо за совет. Сегодня я протестировал игру на другом компе, и там она работала медленнее. Я так понимаю эта проблема возникает по той же причине, что и VSync.
А может быть надо не скорость объектов изменять, а интервал таймера?

Кстати, у меня ещё проблема с INI. Есть процедура:
Код:
var
 SubTitres:array [0..N] of PChar;
Код:
procedure smParamLoad;
var i:integer;
begin
//*******субтитры********////////
INI_LoadFromFile(PChar('missions\subTitres.ini'));         //загрузка файла с субтитрами

for i:=0 to n do
 SubTitres[i]:=ini_readkeystr(PChar('texts'),PChar('t'+U_inttostr(i)));

//************параметры**********/////////
INI_LoadFromFile(PChar('parameters.ini'));                 //загрузка файла с параметрами
windowMode:=ini_readkeyint(PChar('param'),PChar('window_mode'))=0;
WindowWidth:=ini_readkeyint(PChar('param'),PChar('width'));
WindowHeight:=ini_readkeyint(PChar('param'),PChar('height'));

OE_changeScreenOptions(WindowWidth, WindowHeight, 32, 0, windowMode, true);
ratio:=cpv(oe_getoptions.wnd_Width/640,
           oe_getoptions.wnd_Height/480);
end;
После этой процедуры по идее массив SubTitres должен заполниться строками из файла subTitres.ini. А он заполняется названиями ключей из файла parameters.ini. Это как вообще происходит?
Не стыдно не уметь, стыдно не учиться.

Последний раз редактировалось Андрей 93; 20.02.2011 в 16:59.
Андрей 93 вне форума Ответить с цитированием
Старый 21.02.2011, 13:02   #14
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

Цитата:
Вопрос: стоит ли делать отдельное меню "настройки" или можно просто оставить файл .ini в папке с игрой? Как вариант - отдельное приложение-окно, в котором можно настраивать параметры
я бы сделал настройки внутри игры. Тем более там же есть меню "Опции". А оттуда уже писать в ini-файл
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Старый 21.02.2011, 17:23   #15
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

Хорошо. Вот сделаю настройки и выложу новую версию
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 21.02.2011, 21:16   #16
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Сегодня я протестировал игру на другом компе, и там она работала медленнее. Я так понимаю эта проблема возникает по той же причине, что и VSync. А может быть надо не скорость объектов изменять, а интервал таймера?
Не самый лучший вариант. С каждой итерацией (выполнением процедуры обработки) все объекты перемещаются на расстояние dx (скорость объекта). Чтобы объекты переместился на x надо n итераций: x=dx*n. Включение VSync уменьшает частоту выполнения отрисовок (до частоты экрана), но это также уменьшает скорость таймеров => если изменится время выполнения n итераций то измениться и перемещение предмета.
Поэтому если делать правильно (с учетом скорости выполнения приложения на конкретном железе и Vsync) нужно учитывать время между каждой итерацией: x=dx*dt*n. В таком случае при изменении количества итераций за определенное время пропорционально измениться скорость объектов (при увеличении n уменьшается dt, а при увеличении n уменьшается dt).
Вадим Буренков вне форума Ответить с цитированием
Старый 22.02.2011, 12:56   #17
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

Вадим, это все понятно. Но дело в том, что не только физика замедляется/ускоряется, но и, например, скорость в меню. Придется везде выставлять коэффициент. Но ведь проще переобъявить таймер, в котором происходят сразу все эти действия, изменить интервал. Мне кажется так проще.
А зачем собственно это надо? Изменение скорости игры на разных железках незначительное, его можно почувствовать только в сравнении. А к чему отключать VSynс? Без него картинка сильно страдает.
С ini файлами я разобрался. Так как PChar - это указатель, то он имеет обыкновение ссылаться не на те данные.
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 22.02.2011, 15:50   #18
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Вадим, это все понятно. Но дело в том, что не только физика замедляется/ускоряется, но и, например, скорость в меню. Придется везде выставлять коэффициент.
Везде это где? Chipmunk принимает значение dt при обновлении, а в остальных случаях надо будет p:=p+v поменять p:=p+v*dt, разве это так сложно?
Цитата:
Но ведь проще переобъявить таймер, в котором происходят сразу все эти действия, изменить интервал.
Ведь таймер не всегда работает с той скоростью, которую ты ему установил. Если бы так было то включение VSync не влияло бы на скорость приложения.
Цитата:
А зачем собственно это надо? Изменение скорости игры на разных железках незначительное, его можно почувствовать только в сравнении. А к чему отключать VSynс? Без него картинка сильно страдает.
А вы не думали что скорость с VSync зависит от частоты экрана? Например у меня ЖК экран с частотой 60Гц, а в школе ЭЛТ 120Гц! (рендер ограничивается до 60 и 120FPS соответственно, разница в 2 раза).
К тому же некоторые видеокарты не работают с Vsync, или он вообще отключен в настройках драйвера. Тогда игра, сделанная с расчетом на включенную синхронизацию будет "летать". Или просто слабый компьютер (я замечал проблемы с этим на одном ноутбуке).
Вадим Буренков вне форума Ответить с цитированием
Старый 23.02.2011, 22:38   #19
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

Версия: 0.91
Что нового:
-Меню настроек (чтобы применить разрешение, щелкните по окошку с цифрами, 800x600 например, ну там видно). Для экранов 16:9 есть выбор 1280х720
-Субтитры
-Выход по escape из просмотра титров и по space - из ролика на уровне
-Исправлено несколько ошибок, которые странным образом я до сих пор не заметил (медленный таймер, возможность нажатия на скрытые кнопки в меню, невозможность включить 1 миссию 2 главы)
-Добавлена вода
-Добавлен снег и текстура снега для статики
-Теперь можно двигаться и в воздухе (чтобы не застрять на поверхности воды, например)
-Три новых миссии
Может быть что-то забыл написать. В следующей версии планируется:
-улучшение свойств и отображения воды
-музыка
-новые объекты на уровне
-переключатель VSync. В этой версии я ещё мало работал над этим
Также жду предложений от вас. Рад выслушать любые идеи по улучшению игры.

Проблему с мерцающей полоской в роликах я не решил. Она появляется не на всех разрешениях, вроде на 800х600 всё нормально.
Вложения
Тип файла: rar nWorld.rar (1.21 Мб, 22 просмотров)
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 24.02.2011, 09:01   #20
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

Не знаю, как получилось, но в начале 1 миссии второй главы случайно покатился не в ту сторону, и игра подвисла. На любые мои действия не реагировала. Помог только Esc, по которому игра вывалилась в меню.
Пробовал повторить косяк снова, но не получилось
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игра. tec787878 Помощь студентам 5 22.12.2010 12:36
Игра Shyt Gamedev - cоздание игр: Unity, OpenGL, DirectX 9 09.04.2010 16:48
Игра zumm Софт 0 15.10.2009 13:25