Обработка 2: Случайный текст из массива, который появляется при клике?

1

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

В идеале я хочу, чтобы новая цитата появилась щелчком мыши.

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

PImage wallpaper;



 void setup() {
 size(600, 600);
 wallpaper = loadImage("Theatrescreen.png");  
 }

 void draw() {
 background(wallpaper);
 String[] moviequotes = loadStrings("moviequotes.txt");
 int index = int(random(moviequotes.length));
 text(moviequotes[index], mouseX, mouseY);  
 }

 void mousePressed() {

 }
  • 0
    Если вы используете обработку 2, это должно вам помочь. Если вы посмотрите, я думаю, что есть пример, показывающий, чего именно вы пытаетесь достичь.
  • 0
    Это тот, который я пытался использовать, но я все испортил. Поскольку это не приносит только одну случайную цитату из моего текстового файла, но проходит через все из них.
Теги:
string
arrays
processing

3 ответа

1
Лучший ответ

Код в draw() выполняется в бесконечном цикле. Думаю, это твоя проблема. См. Раздел Обработка справки - draw(). Чтобы решить эту проблему, рассмотрите возможность использования noloop(). См. Раздел " Обработка справки" - noloop().

0

Вы генерируете новый случайный фильм, цитируя каждый цикл розыгрыша. Это означает, что каждая секунда (более 25 человек зависит от частоты кадров).

Вы можете установить частоту кадров следующим образом:

 void setup() {
   frameRate(1);
 }

или добавьте счетчик к вашему циклу ничьей, чтобы вы генерировали новую цитату только раз в то время

0

Ваша реализация Random не верна. Попробуйте что-то вроде этого:

void draw() {
    background(wallpaper);
    String[] moviequotes = loadStrings("moviequotes.txt");
    Random randIndex = new Random();
    int index = randIndex.nextInt(moviequotes.length); // generate a random index from 0 to movieqoutes.length
    text(moviequotes[index], mouseX, mouseY);  
    }
  • 0
    Теперь, если вы хотите различную квоту для каждого щелчка мышью, вам придется передвигать некоторый код и, возможно, сделать moviequotes глобальными.
  • 0
    Пытался реализовать это, но я получаю сообщение об ошибке «Не удается найти класс или тип с именем Random». Спасибо за ответ!
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню