76 (edited by Odyssey 2010-04-06 00:22:43)

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

Есть совершенно несрочный и некритичный фичереквест. В основном для полноты/завершенности функционала.

Было бы здорово, если бы большие избражения, вставленные через img() подгонялись пропорционально под ширину сцены. Т.е. если ширина изображения больше ширины сцены, то уменьшать ширину и пропорционально высоту.

На данный момент это, по-моему, единственное ограничение, заставляющее подгонять арт под тему. А этого имхо делать нельзя, иначе не получится просто сменить тему на более крупную/мелкую, а придётся ещё и ресайзить под неё все картинки, вставленные через img().

P.S. Ведь составные картинки действуют в координатах изображения, на которое накладываются, а не темы? Т.е. если изображение большое и было смасштабировано, то наложенные на него картинки тоже смасштабируются и сдвинутся?

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

Это специально не сделано. Так как алгоритм с картинкой сцены -- он понятен. А img может быть где угодно, например в середине строки, а еще из картинок img можно составлять изображения-карты, и как тут масштабировать их независимо друг-от друга? А еще картинка м.б в инвентаре,title итд...

Для больших картинок сцены лучше использовать pic, и там есть эта подгонка, для пиктограмм (как в лифтере) и других исключений -  img.

Вместо этого сделано общее масштабирование темы --то есть подогнав картинки под 800x600 они правильно смасштабируются под 320x240 например...

78 (edited by Odyssey 2010-04-06 10:37:16)

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

Peter wrote:

Так как алгоритм с картинкой сцены -- он понятен

Алгоритм, который я пытаюсь предложить тоже абсолютно понятен, просто я плохо объясняю smile

Peter wrote:

А img может быть где угодно, например в середине строки, а еще из картинок img можно составлять изображения-карты, и как тут масштабировать их независимо друг-от друга?

Всё что ты сказал, верно для картинок, более узких, чем сцена. А для картинок шире сцены, начинают действовать другие законы:
* они не могут быть в середине строки, потому что не умещаются в одной строке и в любом случае переносятся на новую строку
* поскольку они переносятся на новую строку, изображения-карты из них не составишь, карты разъедутся по строкам.
* при автоматическом их переносе на новую строку предыдущая строка сохраняет ширину такой картинки (может быть это баг?). Т.е. если до переноса

   OOOO
xx OOOO
   OOOO

то после переноса получается не

xx
OOOO
OOOO
OOOO

а

 
xx

OOOO
OOOO
OOOO

Пример прилагается.
* после переноса большая картинка всё равно не помещается полностью, т.е. отрезается справа.

Peter wrote:

А еще картинка м.б в инвентаре,title итд...

Там есть своя ширина контейнера, и можно применить тот же метод -- пропорциональное масштабирование под ширину контейнера всего того, что в эту ширину не умещается.

Peter wrote:

Для больших картинок сцены лучше использовать pic, и там есть эта подгонка, для пиктограмм (как в лифтере) и других исключений -  img.

В результате:
- в одну сцену можно вставить только одну большую картинку
- img юзабелен только для маленьких картинок
А если масштабировать чрезмерно большие картинки получим:
* в одну сцену можно вставить несколько больших картинок (не подгоняя их под ширину сцены)
* img юзабелен для всех картинок
* старое поведение не ломается: поскольку обрезка больших картинок с правой строны -- не очень приятный момент, под него никто не затачивался.

Peter wrote:

Вместо этого сделано общее масштабирование темы --то есть подогнав картинки под 800x600 они правильно смасштабируются под 320x240 например...

А под 1280x720? wink

Post's attachments

Attachment icon imgtest.zip 176.31 kb, 140 downloads since 2010-04-06 

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

поскольку они переносятся на новую строку, изображения-карты из них не составишь, карты разъедутся по строкам.

Вот уже хотя бы поэтому нельзя затачиваться на масштабирование img. smile Я компас делал так, привязывал к теме. У нас Зеркало к теме привязано. Часть игр с горизонтальным инвентарем не будет работать нормально, например. На фоне отсутствия игр это такая мелочь... Считаю, что сейчас не приоритетно.

P.S. Спасибо за bugreport. Особенность переноса изменил на более "традиционный" лад, посмотри в svn. Времени детально проверить нет, с тебя тестирование. smile

Да -- масштабирование под тему работает в обе стороны.

80 (edited by Odyssey 2010-04-06 19:19:32)

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

Peter wrote:

Вот уже хотя бы поэтому нельзя затачиваться на масштабирование img. smile

Так они и сейчас, без масштабирования, разъедутся smile Вопрос только в том, чтобы поставить тему, в которую не уместится самая широкая картинка игры, или сделать картинку, которая будет умещаться не во все темы.

Peter wrote:

Часть игр с горизонтальным инвентарем не будет работать нормально, например.

Про горизонтальный инвентарь я подзабыл, его придётся посмотреть отдельно.

Peter wrote:

Я компас делал так, привязывал к теме. У нас Зеркало к теме привязано.

Мда, похоже без патчей и примеров использования я ничего не докажу big_smile Тогда откладываем, попробую вернуться к проблеме когда станет посвободнее со временем.

@vvb
Да, я помню smile У меня уже есть чем заняться, когда станет посвободнее со временем..

Peter wrote:

Особенность переноса изменил на более "традиционный" лад, посмотри в svn. Времени детально проверить нет, с тебя тестирование. smile

О, спасибо, теперь самое то.

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

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

Ну так я о чем и говорю. smile

Эта фича не дает ничего концептуально нового. Грубо говоря, есть граница, перейдя которую мы вынуждены затачиваться на тему. Делая масштабирование в том варианте как ты предложил, мы только чуть-чуть сдвигаем эту границу. Использование img в тексте -- это вариант жесткого оформления почти всегда,  тогда зачем запутывать ситуацию и усложнять код, тем более что привязка к теме делается 1-й строкой в theme.ini (include = name). Более того, img специально написана так, чтобы оптимизировать работу с множеством небольших изображений (например, квадратики в тетрисе). Зачем делать картинку сцены img если для этого есть pic? Зачем в сцене 2 и более картинок? Ну хорошо, замысел автора таков -- что это нужно, ну так и привяжись тогда к теме... Тем боле, что все равно придется это сделать, так как частью темы может быть оформление картинки сцены (fixed, etc)и все равно будет выглядеть фигово (представь тему book и игру которая использует img). Так что вынудил ты меня на пространный ответ. smile Дело не в доказательствах.

P.S. То о чем ты говоришь, имеет место быть, если мы делаем из instead подобие web browser'а а темы это темы для этого браузера, но это сейчас совсем не приоритетно.

82

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

Odyssey wrote:

@vvb
Да, я помню smile У меня уже есть чем заняться, когда станет посвободнее со временем..

У меня вообще нет времени.
Тем не менее уже две части ЗН готовы. Без битв, правда, но всё-таки...
Второй год пошёл, ГДЕ КВЕСТЫ?

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

На Win7 (ну по крайней мере на x64 точно, но думаю, что от платформы не зависит..) наблюдается следующее: при включенном Aero через некоторое время (20-60 мин.) игры начинают подтормаживать. Однако, если сдвинуть окно (не переключиться на другое приложение, а потом на игру) то тормоза   пропадают smile

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

Так как воспроизвести баг мне проблематично (нет виндовс 7), прошу, если кто замечает тоже самое, отписаться. Поиск в инете пока по теме ничего  не дал.

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

Привет. Удивительно, что у форума отсутствует личка.
Обращаюсь наверное к Peter.

Сейчас на каникулах, решил помочь проекту созданием редактора игр.
Всё хорошо идет, процентов 80 уже сделано, но подходя к концу, я столкнулся с трудностью, которую не могу разрешить сам.
У меня не получается запустить файл sdl-instead.exe из своей программы. Он запускается, но сразу завершает работу, не выводя при этом никаких сообщений.
Из Explorer'а всё нормально запускается. При запуске из командной строки Windows, Instead точно также отказывается работать.
У меня подозрение, что программа не может определить дисплей, и поэтому молчаливо завершается.
Я сейчас в гостях у родителей, поэтому на Линуксе нет возможности проверить. Сейчас скачал новый Инстед, и тоже из командной строки не запускается.

Кто-нибудь может подсказать в чем дело?

P.S. OC Windows 7, версии INSTEAD 1.05 и 1.1.6

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

А текущий каталог для программы выставляется? Может быть инстед просто не находит нужных файлов в тек каталоге? Код возврата какой?

P.S. Личка вроде есть. Я как-то даже пользовался smile
P.P.S Из ланчера у нас он запускается в Win.. Странно,

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

Код возврата единичка.
Щас попробую запуститься из родного каталога.

88 (edited by Simba 2010-07-16 21:32:09)

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

Получилось! smile)
Как это я сразу не догадался.
Спасибо)

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

Единичка возвращается когда файлов найти не может.
P.S. Ага !

Кстати, тут 1.2.0 на носу -- там все будет лучше -- как редактор -- будет полезен на 1.2.0? smile Вообще -- что есть -- интересно же!

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

Peter, вопрос с запуском интерпретатора еще не снят.
Я пробовал запускать его с переменными окружения PATH и HOME, которым был присвоен путь до директории инстеда, но результат тот же sad

Каким образом Инстед понимает, откуда был запущен? Разве не по переменным среды?

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

По текущему каталогу. Это в unix версии мы можем привязываться к путям, а в win программы обычно ищут свои данные в текущем каталоге. В posix это вызов: getcwd. chdir -- перейти в каталог. В ланчере перед запуском мы переходим в каталог инстеда. Ярлык тоже запускается с переходом в каталог - -это норма для win.

HOME это путь к дом каталогу пользователя -- а не instead smile
PATH -- это поиск выполняемых файлов.

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

В Питоне тоже нашел функцию chdir, и она даже работает  big_smile

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

Блин, вижу, не я один Питоном увлёкся   big_smile .

Коты рулят! И велики!

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

Почему, если по умолчанию стоит размер окна "тема", я перехожу в полноэкранный режим, и размер окна так и остается тема.
При этом заметно, что разрешение установлено небольшое, и появтяется эффект расплывчитости. С ростом разрешения монитора этот эффект естественно будет увеличиваться.
Не будет ли логичнее, при переходе в полноэкранный режим, устанавливать разрешение операционной системы, при котором всё выглядет намного четче?

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

Simba wrote:

Почему, если по умолчанию стоит размер окна "тема", я перехожу в полноэкранный режим, и размер окна так и остается тема.

Потому что разрешение и режим окно/fs это разные параметры.

Simba wrote:

Не будет ли логичнее, при переходе в полноэкранный режим, устанавливать разрешение операционной системы, при котором всё выглядет намного четче?

Эта логика запутанней. Смена окно/fs будет менять разрешение. А назад? Запоминать разрешение? Два разных разрешения для fs и win? А как с опцией -mode WxH и т.д. 

Более того, текущий подход применяется не только в instead. Режим окно/fs и разрешение это почти всегда разные параметры.

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

Хех, ты мне щас как программист программисту объяснил.
А как пользователя не убедил.
Я перепробовал все темы - ни в одной теме ничего не поломалось.
Тема подстраивается под разрешение и не использует некоторые части экрана.
И я, как простой пользователь, вижу, что есть два одинаковых варианта: четкий и нечеткий.
И по умолчанию для меня был выбран нечеткий. И как пользователь я недоумеваю такому выбору smile

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

А как же Arch linux и Kiss? smile))

98 (edited by Simba 2010-07-31 10:30:23)

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

Archlinux's the best!
Но в мире Линукса правит почему-то Убунту...

Принципом KISS пользуются программисты.
Для пользователей существует принцип наименьшего удивления.

Кстати, о принципах smile
Довольно интересную философию языка Питон изложил в нескольких принципах его создатель Гвидо Ван Россум:


    * Красивое лучше, чем уродливое.
    * Явное лучше, чем неявное.
    * Простое лучше, чем сложное.
    * Сложное лучше, чем запутанное.
    * Плоское лучше, чем вложенное.
    * Разреженное лучше, чем плотное.
    * Читабельность имеет значение.
    * Особые случаи не настолько особые, чтобы нарушать правила.
    * При этом практичность важнее безупречности.
    * Ошибки никогда не должны замалчиваться.
    * Если не замалчиваются явно.
    * Встретив двусмысленность, отбрось искушение угадать.
    * Должен существовать один — и, желательно, только один — очевидный способ сделать это.
    * Хотя он поначалу может быть и не очевиден, если вы не голландец.[5]
    * Сейчас лучше, чем никогда.
    * Хотя никогда зачастую лучше, чем прямо сейчас.
    * Если реализацию сложно объяснить — идея плоха.
    * Если реализацию легко объяснить — идея, возможно, хороша.
    * Пространства имён — отличная штука! Будем делать их побольше!

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

Ага -- читал, вы меня заинтересовали питоном немного. Инстед нарушает правило как минимум здесь:

* Сложное лучше, чем запутанное.


Увы! 8D

Насчет fullscreen надо чтоб отстоялось -- может найдется компромиссное решение. Но в 1.2.0 пока пихать не буду.

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

Так, как фуллскрин работает сейчас, он и должен работать я считаю.
В любой игре по-моему логика та же самая.