Anderman написал:
Пожалуйста, помогите, очень нужно реализовать в программе "группу +ссылок".
===
Объясняю, что это такое:
Идет диалог персонажей, внизу три ссылки (три варианта ответов). Все три "+вые", то есть при нажатии на них результат появится на той же странице. А теперь вопрос - как же сделать так, чтобы при нажатии на одну из этих ссылок, все разом становились недоступными? Это необходимо, чтобы игрок не подглядел, что будет, если бы он выбрал другой вариант.
===
Иными словами, я хочу объединить "+ ссылку" и "невозвратную ссылку", только в совокупности с другими ссылками на этой странице.
Я знаю, что проще делать обычные невозвратные ссылки, но уж очень нужно остаться на той же странице.
Это нужно также для того, чтобы игрок не просто видел результат а виде:
1) что было
2) что он выбрал
3) результат
И все на одной страничке. Удобно.
Пока деактивировать +ссылки без нажатия невозможно. Могу предложить следующее. Создать объект $ответ = false. В параграфах, на которые ссылаются +ссылки написать:
<<if !$ответ>>
Текст параграфа
<<set $ответ = true>>
<<endif>>
Т.е. все ссылки можно будет нажать, но текст покажет только один раз.
Неактивен
Другой вариант. Вместо +ссылок использовать обычные ссылки на этот же параграф, с параметром:
Параграф
Написано, что было
<<if $ответ eq "Вариант 1">>
Выбран 1 вариант
Результат 1
<<elseif $ответ eq "Вариант 2">>
Выбран 2 вариант
Результат 2
<<elseif $ответ eq "Вариант 3">>
Выбран 3 вариант
Результат 3
<<else>>
[[Вариант 1|Параграф {$ответ = "Вариант 1"}]]
[[Вариант 2|Параграф {$ответ = "Вариант 2"}]]
[[Вариант 3|Параграф {$ответ = "Вариант 3"}]]
<<endif>>
Неактивен
Anderman написал:
Пожалуйста, помогите, очень нужно реализовать в программе "группу +ссылок".
===
Объясняю, что это такое:
Идет диалог персонажей, внизу три ссылки (три варианта ответов). Все три "+вые", то есть при нажатии на них результат появится на той же странице. А теперь вопрос - как же сделать так, чтобы при нажатии на одну из этих ссылок, все разом становились недоступными? Это необходимо, чтобы игрок не подглядел, что будет, если бы он выбрал другой вариант.
===
Иными словами, я хочу объединить "+ ссылку" и "невозвратную ссылку", только в совокупности с другими ссылками на этой странице.
Я знаю, что проще делать обычные невозвратные ссылки, но уж очень нужно остаться на той же странице.
Это нужно также для того, чтобы игрок не просто видел результат а виде:
1) что было
2) что он выбрал
3) результат
И все на одной страничке. Удобно.
http://hyperbook.ru/blog.php?id=13636642398167 - вот тут есть хорошая подсказка по теме
А если конкретнее:
:: камень
Перед тобой три наперстка.
<<if !($условие)>>[[Взять левый|камень {$условие=1} {$left=1}]]<<else>>Взять левый<<endif>>
<<if !($условие)>>[[Взять средний|камень {$условие=1} {$center=1}]]<<else>>Взять средний<<endif>>
<<if !($условие)>>[[Взять правый|камень {$условие=1} {$right=1}]]<<else>>Взять правый<<endif>>
<<if $left>>Под левым наперстком пусто<<endif>>
<<if $center>>Под средним наперстком пусто<<endif>>
<<if $right>>Под правым наперстком пусто<<endif>>
Поправил код по подсказке Morych'a
Отредактировано Korwin (08.04.2013 17:11)
Неактивен
Например, так:
<<set $список[2] = $список[2] + 1>>
Неактивен
Да, добавлю.
Неактивен
Oldrik написал:
Как увеличить или уменьшить элемент списка? Не присвоить новое значение, а просто изменить.
По-моему, изменяя значение элемента списка, ты и присваиваешь ему новое значение. Вот в примере выше мы присваиваем новое значение, которое больше текущего значения на 1.
Неактивен
Morych написал:
Oldrik написал:
Как увеличить или уменьшить элемент списка? Не присвоить новое значение, а просто изменить.
По-моему, изменяя значение элемента списка, ты и присваиваешь ему новое значение. Вот в примере выше мы присваиваем новое значение, которое больше текущего значения на 1.
Просто был нужен пример кода.
Неактивен
Вопрос по javascript.
Нашёл очень интересные глитч-скрипты, создающие эффект сбоя монитора или графики (глитч). Вот страничка разработки, примеры можно посмотреть здесь.
Можно ли встраивать такой скрипт в АХМА? (особенно интересует Glitch Transition, вызывающий эффект лишь на какое-то время).
И можно ли присвоить ему, скажем, макрос?
Отредактировано sosiskin (01.05.2013 10:49)
Неактивен
Есть идея встроить различные фильтры для обработки изображений.
Неактивен
sosiskin написал:
Вопрос по javascript.
Нашёл очень интересные глитч-скрипты, создающие эффект сбоя монитора или графики (глитч). Вот страничка разработки, примеры можно посмотреть здесь.
Можно ли встраивать такой скрипт в АХМА? (особенно интересует Glitch Transition, вызывающий эффект лишь на какое-то время).
И можно ли присвоить ему, скажем, макрос?
1. С одной стороны, встраивание произвольных скриптов в ASM - любопытно... Расширяет возможности. Но потенциально - уже вероятны некоторые риски, например переходы на произвольные страницы, встраивание рекламы и так далее. Впрочем я не очень компетентен в таких вопросах.
2. А зачем глитч-эффекты в текстовом квесте? Почему нельзя сделать пару картинок и подменять их по условию?.
Неактивен
Korwin написал:
2. А зачем глитч-эффекты в текстовом квесте? Почему нельзя сделать пару картинок и подменять их по условию?.
То-то и ценно, что глитч происходит именно с текстом, а не картинкой. Например, по сюжету вы управляете слегка неисправным роботом, система которого заражена вирусом. Время от времени текст глитчует (как экран парсера вот в этой игре).
Или (ещё лучше) сделать глитчем смену параграфов на экране. Чтобы при надобности один параграф превращался так в другой.
Отредактировано sosiskin (01.05.2013 23:15)
Неактивен
Народ, подсобите с организацией кода, пожалуйста.
Есть такая задача, похожая на АХМА игру Asteroids, но с урезанной математикой, попроще: нужно чтоб в табличном окошке с заданной скоростью падали слова из списка (по принципу звёзд в игре Asteroids, но быстрее).
Направьте мысль в нужную сторону, плиз! Очень буду благодарен. Код "астероидов" меня сбивает с толку, гуманитарий, чо. ))
Неактивен
sosiskin написал:
Народ, подсобите с организацией кода, пожалуйста.
Есть такая задача, похожая на АХМА игру Asteroids, но с урезанной математикой, попроще: нужно чтоб в табличном окошке с заданной скоростью падали слова из списка (по принципу звёзд в игре Asteroids, но быстрее).
Направьте мысль в нужную сторону, плиз! Очень буду благодарен. Код "астероидов" меня сбивает с толку, гуманитарий, чо. ))
Насколько я помню, минимальный интервал таймера - 1 секунда. Чтобы слова падали быстрее, можно изменять их позицию не на одну строку, а на две, например.
Слова из списка должны падать по одному?
Неактивен
Morych написал:
Слова из списка должны падать по одному?
Нет, в том-то и дело, нужно чтобы они падали вниз (или вверх) толпой, как старые текстовые скринсейверы, словно медленный снег из слов. Причём список хотелось бы подставлять динамически.
Я взял Астероиды, повставлял вместо символов точек и звёздочек слова. Но хочется чтобы код линий (строк) был одним, а подставлять просто из массива переменные по очереди, в каждой линии.
Как такое лучше сделать?
Отредактировано sosiskin (07.05.2013 17:02)
Неактивен
Хм, попробую что-нибудь придумать
А пока может это натолкнёт на верный путь:
:: StoryTitle Падающие слова :: Start <<set $lstWords = ("Эти слова будут падать, пока не закончатся...").split(" ")>> <<set $i = 0>> <<set $y = 0>> <<set $ymax = 4>> [[Пуск!|Пуск]] :: Пуск <<repeat "Словопад" 1>> <<display "Словопад">> :: Словопад <<clrscr>> ===''Словопад''=== <<set $j = $i + 1>><<set $p = $lstWords.length - $i - 1>><<loop $p>><<print $lstWords[$j]>> <<set $j++>><<endloop>><<br>><<loop $y>><<br>><<endloop>><<if $i lt $lstWords.length>><<print $lstWords[$i]>><<endif>><<set $p = $ymax - $y>><<loop $p>><<br>><<endloop>><<set $j = 0>><<loop $i>><<print $lstWords[$j]>> <<set $j++>><<endloop>> <<set $y++>> <<if $y eq $ymax>> <<set $i++>> <<set $y = 0>> <<if $i eq $lstWords.length + 1>> <<stop "Словопад">> ===''Конец''=== <<elseif $i eq $lstWords.length>> <<set $y = $ymax - 1>> <<endif>> <<endif>>
Отредактировано Morych (07.05.2013 17:10)
Неактивен
Кстати, именно для этой разработки я спрашивал про визуальные эффекты на javascript, потому как если на такой "падающий текст" натравить глитч-скрипт, получится очень интересное окошко, цветной спрайт из обычного текста.
Неактивен
sosiskin написал:
нужно чтобы они падали вниз (или вверх) толпой, как старые текстовые скринсейверы, словно медленный снег из слов. Причём список хотелось бы подставлять динамически.
Вот:
:: StoryTitle Падающие слова :: Start [[Скринсейвер|Пуск2]] :: Пуск2 <<set $lstWords = ["AXMA Story Maker", "DoubleDragon", "Morych", "sosiskin", "Суперскринсейвер"]>> <<set $lstLines = []>> <<set $newWord = "">> <<loop 10>> <<set $lstLines.push(" ")>> <<endloop>> <<repeat "Словопад2" 1>> <<display "Словопад2">> :: Словопад2 <<set $r = Math.round(Math.random() * ($lstWords.length - 1))>> <<set $x = Math.round(Math.random() * (40 - $lstWords[$r].length))>> <<set $k = "">> <<loop $x>><<set $k = $k + " ">><<endloop>> <<if Math.round(Math.random())>> <<set $lstLines.unshift($k + $lstWords[$r])>> <<else>> <<set $lstLines.unshift($lstWords[$r] + $k)>> <<endif>> <<set $k = $lstLines.pop()>> <<clrscr>> ---- <<set $i = 0>> <<loop $lstLines.length>>==={{{<<print $lstLines[$i] + "<br>">>}}}===<<set $i++>><<endloop>> ---- [[Добавить слов|Добавить {$newWord = ""}]] :: Добавить <<if not $newWord.length>> <<stop "Словопад2">> Новое слово: <<input "Добавить" $newWord>> <<else>> <<set $lstWords.push($newWord)>> <<repeat "Словопад2" 1>> <<display "Словопад2">> <<endif>>
Текстовый скринсейвер (можно динамически добавлять слова).
Неактивен
Morych написал:
А пока может это натолкнёт на верный путь:
я чёто не могу понять, как сделать, чтоб целиком набор слов не виден было изначально, и чтобы они не по порядку один за другим падали по левому краю, а на разном отступе.
Может, всё-таки через списки (массив) как-то можно сделать?
В общем, я пока кое-как запилил на основе кода Астероидов, вставив туда списки.
Отредактировано sosiskin (07.05.2013 19:39)
Неактивен
sosiskin написал:
Morych написал:
А пока может это натолкнёт на верный путь:
я чёто не могу понять, как сделать, чтоб целиком набор слов не виден было изначально, и чтобы они не по порядку один за другим падали по левому краю, а на разном отступе.
Может, всё-таки через списки (массив) как-то можно сделать?
В общем, я пока кое-как запилил на основе кода Астероидов, вставив туда списки.
А как же моё предыдущее сообщение #194? Там через списки, изначально не видно ничего, не по порядку и на разном отступе.
Неактивен
Я проверил - всё работает. Для этого примера нужна последняя версия - 1.9.9.
Неактивен
Большущее спасибо!
Кстати, за этой придумкой вспомнил про Asciimator.
Отредактировано sosiskin (08.05.2013 10:25)
Неактивен