Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Текстовой квест (http://www.flasher.ru/forum/showthread.php?t=215687)

deepNoise 03.01.2019 03:38

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

Код AS3:

stop();
var myString:String;
var myArray = [];
var delay:int = 100;
var timer1:Timer = new Timer(delay);
var way:String = "null";
 
 
stage.addEventListener(KeyboardEvent.KEY_DOWN, on_keyDown);
timer1.addEventListener("timer", frameLooper);
 
timer1.start();
 
function frameLooper(event:TimerEvent):void
{
        if (myArray.length > 0)
        {
                answer_tf.appendText(myArray.shift());
        }
        else
        {
                timer1.stop();
        }
}
 
function on_keyDown(e:KeyboardEvent):void
{
        timer1.stop();
 
        if (e.keyCode == 32 && way == "null")
        {//space
                way = "1-0";
                trace("way="+way);
        }
        else if (e.keyCode == 49 && way == "1-0")
        {//1
                way = "1-1";
        }
        else if (e.keyCode == 50 && way == "1-0")
        {//2
                way = "1-2";
        }
        else if (e.keyCode == 51 && way == "1-0")
        {//3
                way = "1-3";
        }
        else if (e.keyCode == 52 && way == "1-0")
        {//4
                way = "1-4";
 
        }
 
        //ways
        if (way == "1-0")
        {
                delay = 20;//скорость печати
                answer_tf.text = "";
                myString = "Перед вами пещера. Слева - лес. Справа - озеро. Куда пойти?\n1. Пойти налево.\n2. Пойти направо.\n3. Пойти вперёд.\n4. Пойти назад.";
        }
        else if (way == "1-1")
        {
                delay = 20;//скорость печати
                answer_tf.text = "";
                myString = "Вы пошли налево и оказались в лесу. Куда теперь?\n1. Пойти налево.\n2. Пойти направо.\n3. Пойти вперёд.\n4. Пойти назад.";
        }
        else if (way == "1-2")
        {
                delay = 20;//скорость печати
                answer_tf.text = "";
                myString = "Вы пошли направо и пришли к озеру. Куда теперь?\n1. Пойти налево.\n2. Пойти направо.\n3. Пойти вперёд.\n4. Пойти назад.";
        }
        else if (way == "1-3")
        {
                delay = 20;//скорость печати
                answer_tf.text = "";
                myString = "Вы пошли прямо и вошли в пещеру. Куда теперь?\n1. Пойти налево.\n2. Пойти направо.\n3. Пойти вперёд.\n4. Пойти назад.";
        }
        else if (way == "1-4")
        {
                delay = 20;//скорость печати
                answer_tf.text = "";
                myString = "Вы пошли назад и вернулись домой.";
        }
 
        if (e.keyCode == 49 || e.keyCode == 50 || e.keyCode == 51 || e.keyCode == 52 || e.keyCode == 32)
        {
                myArray = myString.split("");
                timer1.delay = delay;
                timer1.start();
        }
        trace("Код нажатой клавиши: " + e.keyCode);
 
}

Сейчас при нажатии клавиши 1, 2, 3, 4, или space текст произошедшего события почему то начинает печататься заново. А если нажать другую клавишу, то текст вовсе исчезнет. Как это исправить?

Возможно ли сделать небольшую паузу, между печатью "Вы пошли налево и оказались в лесу" и "Куда теперь?" ? Если да, то как.
И возможно ли сделать, чтобы варианты действий печатались моментально?

Жень Шень 03.01.2019 23:24

Цитата:

Сообщение от deepNoise (Сообщение 1206259)
В общем я набросал дерево действий и событий. Хочу сделать по нему шаблон для квеста, где варианты выбираются нажатием клавиш.
Использовал эффект печати текста их прошлого топика.

Вы совершенно не учли замечания сделанные в прошлом топике. Три человека старались помочь. Оказалось напрасно.
Чесслово, пропало желание разбираться и помогать.
Тут два варианта:
- учить АС3 и обращаться с конкретным вопросом и кодом, а не давать криво работающий код с одними и теми же ошибками на исправление;
- обратится в раздел вакансии.

deepNoise 04.01.2019 06:26

Понял свою ошибку, попробую разобраться с последним предложенным вариантом кода из прошлой темы.
А эту тему удалю. Ну или вы удалите, если модератор)


Часовой пояс GMT +4, время: 09:05.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.