Как сделать?
…
Chaos Legion,
Я делаю так:
randImg = rand(1,3)
IF randImg = 1: "<img src="img/loc/1.jpg">"
IF randImg = 2: "<img src="img/loc/2.jpg">"
IF randImg = 3: "<img src="img/loc/3.jpg">"
Aleks Versus,
я в qsp новичек, может есть возможность зафигачить все в функцию и делать проверку null через возврат аргумента или еще чего там есть в программировании…
Вариант с
rand 1,3
if 1 img 1
if 2 img 2
так же эффективен, как и не элегантен, громоздок не гибок
стоп, а в “<img src=“img/loc/3.jpg”>” переменную же можно вставить ?
Chaos Legion:
Aleks Versus,
я в qsp новичек, может есть возможность зафигачить все в функцию и делать проверку null через возврат аргумента или еще чего там есть в программировании…
Вариант с
rand 1,3
if 1 img 1
if 2 img 2
так же эффективен, как и не элегантен, громоздок не гибокстоп, а в “<img src=“/img/loc/3.jpg”>” переменную же можно вставить ?
Для начала точно определись с тем, сколько имгов у тебя будет в папке. Сомневаюсь, что более 1000, поэтому можешь использовать цикл и делать проверку как в прошлом примере.
И да, можно запихать переменную:
“<img src=“/img/loc/<<rand.value>>.jpg”>”
(Но, на самом деле, только мороки добавишь и возможных багов. Крепко подумай для начала, надо ли?)
Лучше определись с кол-вом файлов, пронумеруй их и задай рандом в их диапазоне.
“Лучше определись с кол-вом файлов” - это слишком просто :D я хочу упороться :DDDD
p.s. поразмыслил. Если qsp, как например и PHP сначала,основываясь на коде генерит страницу HTML, а потом браузерная часть ее обрабатывает и выводит,то проверка невозможна. Значит только Aeroqsp через java смоожет. Если это так вопрос исчерпан.
Chaos Legion,
ты имеешь ввиду javascript? Теоретически в QuestNavigator можно, конечно, проверять предзагрузкой наличие картинки, onerror там или как ещё. Но можешь, например, воспользоваться таким способом, который можно использовать в твоём алгоритме:
Создаёшь функцию типа:
!#prv_img
if instr($desc('prv_img'),$args[0])!0:
$result='true'
else
$result='false'
end
Поскольку эта функция будет создана отдельной локацией, к этой локации можно применять команды для локаций ($desc в нашем случае). При добавлении файла в папку, его адрес добавляешь и в базовое описание локации (в которой написана эта функция).
Теперь в твоём алгоритме можно использовать эту функцию:
:ImgRoll
img = rand (1,10000)
if $func('prv_img','<<img>>.jpg')='true':
вставляем изображение
else
jump 'ImgRoll'
end
во-во. Одна голова хорошо, а две ногам покоя не дают ))
Oliver:
Chaos Legion,
Я делаю так:randImg = rand(1,3) IF randImg = 1: "<img src="/img/loc/1.jpg">" IF randImg = 2: "<img src="/img/loc/2.jpg">" IF randImg = 3: "<img src="/img/loc/3.jpg">"
Откуда вы такие беретесь? :)
Хотя, зачем я спрашиваю, если знаю, что такой “код” использовался в ЭТО, потом перекочевал в Альбедо, а уже оттуда “поклонники” стянули его в свои игры. И вот это чудо с легкой руки дилетантов - авторов изначального ЭТО стало для вас стандартом :)
Кстати, если убрать эту и похожие конструкции, “мега”-игры похудеют процентов так на 30, думаю. А если над ними еще поработать, так от первоначального объема кода останется треть :)
*nl '<img src="/img/loc/<<rand(1,3>>.jpg">'
Aleks Versus,
<img src = "img/loc/1.jpg" onerror = "this.style.display = 'none'">
В Навигаторе, конечно.
evp:
Кстати, если убрать эту и похожие конструкции, “мега”-игры похудеют процентов так на 30, думаю. А если над ними еще поработать, так от первоначального объема кода останется треть
При создании игры, лично меня, меньше всего волнует объем кода и его компоновка. Лишь бы игра получилась хорошей (:
А совет интересный. Надо будет взять на вооружение.
Вроде бы уже был этот вопрос (я вроде бы и задавал): как осуществить ascii графику на куспе?
Hungry,
моноширинный шрифт ставь, и выводи что хочешь.
evp,
Ну извини, я так делаю.
В ЭТО не играл, Альбедо, в коде не особо сидел. Все дошло самостоятельно, без просмотра чужого кода.
Oliver, не надо извиняться. Ты меня ничем не обидел. И я тебя обидеть не хотел.
Надеюсь, теперь, прежде чем написать 100500 строк кода, ты подумаешь как сделать проще. Обычно, первое пришедшее в голову решение не бывает оптимальным.
evp:
Aleks Versus,
Код:
<img src = “img/loc/1.jpg” onerror = “this.style.display = ‘none’”>
Тут мы просто не выводим картинку на экран. Но, как я понял, задача чуть сложнее: проверить наличие картинки и дать понять QSP-коду, что картинки нет.
Aleks Versus, если я не ошибаюсь, то взаимодействие QSP и JS это дорога с односторонним движением. Можно передать параметры из QSP в JS, но наоборот нельзя.
Например, можно написать функцию типа
function GetFolderList(folderaddress)
Но передать результат ее работы в QSP не вижу возможности. Поэтому, начав в QSP логику работы с изображениями, а продолжив в JS, вернуться в QSP не получится. Придется продолжать в JS. Но это не выход, так как в этой ситуации мы приходим к выводу, что всю игру проще будет написать на JS и QSP становится лишним.