RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2425267 views

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

Aleks Versus Moderator 07.04.2015 14:08 (10 years ago)

saks,
если картинка вставляется с помощью тега <img> можно задать ширину и высоту картинки атрибутами width и height. Но только в абсолютном значении. Пример:

<img src='paintdraw.png' width=320 height=240>

Aleks Versus:

если картинка вставляется с помощью тега <img> можно задать ширину и высоту картинки атрибутами width и height. Но только в абсолютном значении.

Забавно.. А я всегда в фотошопе резал до вставляния…
Но у меня другой вопрос. По массивам.

act 'Проверить количество':
gs 'store'
"Всего на складе <<ARRSIZE('prod_type')>> типов продуктов"
end

Вот в первый раз это вроде работает, показывая правильную цифру 25. Но если еще раз нажать “Проверить…” к тем 25 прибавятся новые 25… Объясните, пожалуйста, почему они складываются?

svandrus,
видимо, у тебя в локации ‘store’ добавляются элементы массива.

Каждый раз, как исполняется строка

gs 'store'

вызывается локация ‘store’ и добавляются очередные 25 элементов массива.

Nex:

вызывается локация ‘store’ и добавляются очередные 25 элементов массива.

Это-то я понял…. Я не понял почему они добавляются. Я же их нигде не складываю, просто прошу показать сколько их там всего…Я не нумеровал элементы массива, т.е. в локации ‘store’ они записаны в виде:

$prod_type[] ='Сыр'
$prod_type[] ='Масло'
e.t.c.

может поэтому?
P.S. Пронумеровал - перестало складываться. Но вопрос остался…

svandrus,
такая конструкция

массив[] = элемент

означает: “добавить новый элемент в конец массива”.

В конец массива можно добавлять сколько угодно, и каждый раз он будет расти.

Поэтому, тебе действительно нужно было пронумеровать элементы массива. Тогда вместо добавления в конец, они всегда будут записываться на одни и те же конкретные места.

Или же зашитить свой код проверкой, чтобы он выполнялся только один раз:

IF массив_заполнен = 0:
    массив_заполнен = 1
    массив[] = элемент
    массив[] = элемент
    массив[] = элемент
    ...
    массив[] = элемент
END

Или же очищать массив перед заполнением:

KILLVAR 'массив'
массив[] = элемент
массив[] = элемент
массив[] = элемент
...
массив[] = элемент

Nex,
Спасибо… Я все-таки просто пронумеровал все элементы и пока на этом остановился…
Теперь новый вопрос… Вот есть у меня несколько картинок jpg, поименованных следующим образом:
pic(0), pic(1) etc.
Где-то видел конструкцию, позволяющую в произвольном порядке выводить эти картинки. Вроде бы так:

i=rand(0,10)
'<img src="pic/pic(<<i>>).jpg">'

В таком виде, понятно, ничего не показывает, но видно, что пытается найти рисунок по этому адресу.. Помнится, в правильной конструкции были какие-то плюсы перед и после i и доп. кавычки. У самого накомбинировать правильно не получилось, потому спрашиваю у умных людей… Как оно правильней сделать?
P.S. Вопрос снят.. Именно эта конструкция и работает. У меня файлы поименованы pic (0)… с пробелом. А в коде я его пропустил.. Мелочь вроде, а какая вредная…

Народ, можно ли как-то обновлять текст в главном окне, не обновляя всей локации?

Hungry,

*CLR
'Новый текст'

Увы, не помогает. Просто удаляет текст, а новый выводит только после обновления локации.

Hungry,
не может такого быть. Проверяй внимательнее.

Hungry:

Народ, можно ли как-то обновлять текст в главном окне, не обновляя всей локации?

Есть, например, модуль работы с экраном, который эту проблему решает: https://qsp.org/forum/236-qsp-ekran-modul-dla-raboty-s-ekranom

Если конструкция вида:

'старый текст'
act 'Добавить текст':
'Новый текст'
end

Без всяких *clr, тогда получается.. А вот с *clr после act действительно все уносится…

Если стоит задача изменить текст на локации частично, то она решается с помощью динамического описания.

Описание разбивается на блоки, вывод которых контролируется условиями. Далее, меняются переменные, и совершается “перезаход” на текущую локацию.

Пример:

! Эта строка не меняется.
'Я стою на корме. '
! Проверяем условие.
IF ганц = 1:
    ! Эта строка выводится, только если Ганцупопер прибежал.
    'Ганцупопер ждёт приказа. '
END
ACT 'Свистнуть':
    ! Я свистнул, и Ганцупопер тут же примчался.
    ! Меняем состояние переменной "ганц", отмечая этот факт.
    ганц = 1
    ! Состояние локации изменилось. Делаем "перезаход", чтобы обновить описание.
    GT $CURLOC
END

Нужно менять текст циклически. В общем, в окне описания описаны характеристики персонажа. В результате действия заклятия они какое-то время меняются. Нужно, чтобы это было видно на основном экране.

Log in or Register to post comments.