Topic: Проблемы INSTEAD-SDL

Предлагаю постить в эту тему проблемы, найденные в sdl-фронтенде.

Собственно, первая проблема: пространство инвентаря используется не полностью. Т.е. у панели инвентаря есть огромное правое поле, на которое текст не заходит -- либо переносится, либо обрезается. В результате названия объектов вполне вменяемой длины ("ключи от квартиры") пишется в две строки, что сильно сбивает с толку в ходе геймплея.

Прилагаю скриншот, на нем я заменил пробелы неразрывными пробелами, чтобы посмотреть, сколько символов уместится в строке. Предлагаю исправить проблему и уменьшить неиспользуемое правое поле инвентаря до минимума.

Re: Проблемы INSTEAD-SDL

Попробуй скопировать в папку с игрой файл theme.ini от той темы, которая используется в данный момент и там поиграться с параметром inv.w.

Re: Проблемы INSTEAD-SDL

Это не совсем проблема. Вот проблема с курсором всё-таки какая-то есть, это да. Иногда при переключении с помощью Alt-Tab он всё-таки пропадает...

Re: Проблемы INSTEAD-SDL

Odyssey wrote:

Предлагаю исправить проблему и уменьшить неиспользуемое правое поле инвентаря до минимума.

Дело в том, что справа должно остаться место для скроллеров. Создай много объектов и увидишь, что появится справа, на неиспользуемом месте. smile

Re: Проблемы INSTEAD-SDL

vvb wrote:

Это не совсем проблема. Вот проблема с курсором всё-таки какая-то есть, это да. Иногда при переключении с помощью Alt-Tab он всё-таки пропадает...

Угу, буду пытаться воспроизвести... Хотя грубый workaround сделать можно прямо сейчас, хочется понять что именно происходит, попробуй научиться воспроизводить?

P.S. Хотя бы как это выглядит? Не получается...

Re: Проблемы INSTEAD-SDL

2vvb:
Спасибо, сработало.

2Peter:
Мда, о скроллерах я позабыл..

7 (edited by vvb 2009-09-17 21:52:01)

Re: Проблемы INSTEAD-SDL

Peter wrote:

попробуй научиться воспроизводить?

100% варианта не предложу. Но можно попробовать так. Открыть терминальное окно, в нём сделат пару закладок с Midnight Commander'ом и попереключаться туда-сюда Alt-Tab'ом. При этом будучи в окне с терминалом поактивнее двигать мышой и нажимать всякие кнопки. После этого ИНОГДА при Alt-Tab курсор мыши пропадает до выведения её за границы окна INSTEAD.

Только что было так. Переключился в OpenOffice, крутанул колесо, переключился в Firefox, потом в INSTEAD -- курсора нет. Теперь минут 5 не могу воспроизвести эту ситуацию...

Re: Проблемы INSTEAD-SDL

vvb wrote:

После этого ИНОГДА при Alt-Tab курсор мыши пропадает до выведения её за границы окна INSTEAD.

Так он пропадает при пропаже фокуса. Правильно ли я понимаю, что подвигав мышь ты получаешь курсор назад? Что за среда? gnome?

Re: Проблемы INSTEAD-SDL

Peter wrote:

Так он пропадает при пропаже фокуса. Правильно ли я понимаю, что подвигав мышь ты получаешь курсор назад? Что за среда? gnome?

Гном. Только иногда при Alt-Tab он появляется на том месте, где он был когда я переключался из INSTEAD, а иногда он не появляется. Двигаешь мышой, всё подсвечивается как надо, но курсора нет. А появляется он только когда покинет границы окна INSTEAD. Тогда можно заново его заводить на рабочее поле окна и всё будет ок.

Re: Проблемы INSTEAD-SDL

vvb wrote:

Двигаешь мышой, всё подсвечивается как надо, но курсора нет. А появляется он только когда покинет границы окна INSTEAD. Тогда можно заново его заводить на рабочее поле окна и всё будет ок.

Для эксперимента:
input.c
Функция
int mouse_focus(void)
{
    return m_focus;
}

Поменять на:
int mouse_focus(void)
{
        m_focus = !!(SDL_GetAppState() & SDL_APPMOUSEFOCUS);
        return m_focus;
}

Рассказать что будет.

11

Re: Проблемы INSTEAD-SDL

Peter wrote:

Рассказать что будет.

Ничего не поменялось. Практически сразу схватил глюк.

Re: Проблемы INSTEAD-SDL

Ничего не поменялось. Практически сразу схватил глюк.
Такое ощущение, что не приходит event о том, что фокус появился. У меня на openbox ни разу не проявилось. Приколы SDL?

Еще один workaround: mouse_focus возвращаем как был
а в строке case SDL_MOUSEMOTION:
на сл строке пишем m_focus = 1;

13

Re: Проблемы INSTEAD-SDL

Блин. Я в первый раз тормознул. Не там исправил. Сейчас гоняю первый предложенный тобой вариант. Пока вроде всё ок...

14

Re: Проблемы INSTEAD-SDL

vvb wrote:

Пока вроде всё ок...

А-а-а-а... нет. Глюк есть. Пошёл тестить второй вариант...

Re: Проблемы INSTEAD-SDL

Нашел косячек. Плюс к последней правке:

game.c:
game_loop функция (в конце файла)
game_cursor(CURSOR_CLEAR); убрать

Потестить. smile

Если будет ок: убрать правку m_mouse = 1  и еще потестить,

Re: Проблемы INSTEAD-SDL

Насчёт курсора (используется debian lenny, instead sdl 0.9, позавчера 19 сентября 2009 г скачаный).
1. Нажать на крестик (закрыть окно) и не отпускать мышь
2. Переместить курсор на пространства окна игры. Вуа-ля, курсор исчез. Хотя пункты подсвечиваются.
3. Вывести курсор за пределы окна. Курсор появился.

Re: Проблемы INSTEAD-SDL

SpeakingStone wrote:

Насчёт курсора (используется debian lenny, instead sdl 0.9, позавчера 19 сентября 2009 г скачаный).
1. Нажать на крестик (закрыть окно) и не отпускать мышь
2. Переместить курсор на пространства окна игры. Вуа-ля, курсор исчез. Хотя пункты подсвечиваются.
3. Вывести курсор за пределы окна. Курсор появился.

Спасибо -- буду искать возможность обойти.

Re: Проблемы INSTEAD-SDL

Сегодня собрал sdl-instead 0.9.2 под Ubuntu Jaunty и обнаружил небольшую проблему. Звук щелчка примерно на полторы секунды отстаёт от собственно щелчка по ссылке. Это можно как-то побороть?

Re: Проблемы INSTEAD-SDL

Odyssey wrote:

Сегодня собрал sdl-instead 0.9.2 под Ubuntu Jaunty и обнаружил небольшую проблему.

Скорее всего звуковая система alsa не работает. Или цепляется драйвер OSS, а не ALSA в SDL. Попробуй для начала sdl-instead -alsa?

+ можно поиграть с частотой звука. У меня на arch тоже такая проблема(SDL хватает oss драйвер), но -alsa помогает. (Хотя не полторы секунды, конечно... 8-[ ]

P.S. Еще может быть злобный pulseaudio. Как работает звук в других SDL играх?

20

Re: Проблемы INSTEAD-SDL

INSTEAD SDL 0.9.3 для Windows.

1. Запустить INSTEAD.
2. Перейти в полноэкранный режим
3. Нажать Alt+TAB

Курсор мыши устанавливается в левый верхний угол экрана и не сдвигается оттуда никакими усилиями.

Т.о., пока INSTEAD находится в оконном режиме, все работает. Когда INSTEAD находится в полноэкранном режиме - работать можно только с cамим INSTEAD.

Re: Проблемы INSTEAD-SDL

Nex wrote:

2. Перейти в полноэкранный режим
3. Нажать Alt+TAB
Курсор мыши устанавливается в левый верхний угол экрана и не сдвигается оттуда никакими усилиями.

Видимо, особенность SDL. Не уверен, что можно это исправить. Но попробую посмотреть. Есть еще у кого такие симптомы?

P.S. Судя по форумам -- это особенность SDL -- в fullscreen он грабит мышку. Посмотрю -- можно ли сделать workaround.

P.P.S Запустил dosbox -- в linux тоже грабится фокус -- я не могу сделать alt-tab. Попробовал принудительно ungrab ить фокус -- не помогло. Похоже -- с этим поведением придется мириться. К счастью есть alt-enter, smile

Re: Проблемы INSTEAD-SDL

Петь, скачущий уровень музыки замечал?

Re: Проблемы INSTEAD-SDL

Кстати, да - INSTEAD не поддерживает ReplayGain,хоть убей.

Александр Яковлев, к вашим услугам.

Re: Проблемы INSTEAD-SDL

Я не знаю что такое ReplayRegain, но на некоторых mod треках бывают такие приколы. Я думаю это особенность SDL, или mikmod. На ogg, вроде в порядке... Проблема бывает на mod которые cами меняют громкость. Но если вы найдете точный пример, попробую что-то сделать (хотя я уже пытался бороться с этим)

P.S. Я помню, что тупо вешал на таймер установку громкости даже -- но это было страшно. Сейчас повесил установку громкости на каллбэк конца игры трека. Возможно -- немного поможет.

Re: Проблемы INSTEAD-SDL

ReplayGain - это такая информация в файлах MP3, OGG, FLAC, WAV и прочих аналоговых форматов, которая служит инструкцией для плеера. Она используется чтобы задать единый уровень громкости для всего альбома или всей коллекции музыки и выглядит как "+0,6 Дб", "-1,5 Дб", "+20 Дб" и так далее.Плеер считывает её и подстраивает громкость.

Александр Яковлев, к вашим услугам.