【问题标题】:How to add java typing text如何添加java输入文本
【发布时间】:2016-02-06 15:19:36
【问题描述】:

我正在尝试通过将文本设置为“类型”来为我的游戏添加一些文本效果 在这里,也许伪代码会让它变得易于理解。

String text = "But what I do have are a very particular set of skills, skills I have acquired over a very long career.";

char = characters(text) ///turn string into list/array of letters

i = 0; //initializes i

while (i < text.length) {
    print(char.letter[i]) ///print 'i'th letter in list (starting with 1)

    TimeUnit.MILLISECONDS.sleep(100) //wait 1/10th of second

    i++; //repeat for all letters
}

P.S. 带有三个斜线的 cmets 是我不知道该怎么做的事情

【问题讨论】:

    标签: java string list char


    【解决方案1】:

    只需在输入文本的字符上使用for-each loop

    String text = "...";
    for(char c : text.toCharArray()) { 
        System.out.print(c); 
        Thread.sleep(100);  
    }
    System.out.println();
    

    【讨论】:

      【解决方案2】:

      虽然Sasha's answer 已经概述了如何做到这一点,但要创建一个非常漂亮的打字效果,重要的是不要总是在两次击键之间等待相同的时间。

      人类以不同的速度打字。通常他们在键盘上不方便的位置的特殊字母(想想'z','`' 和类似的地方)之前有更长的停顿,并且在开始一个新单词(或新句子)之前有更长的停顿

      因此,为了获得最佳“打字”体验,您应该为游戏中的睡眠时间添加随机化。
      考虑以下几点:

      String text = "...";
      for (char c : text.toCharArray()) {
          // additional sleeping for special characters
          if (specialChars.contains(c)) {
             Thread.sleep(random.nextInt(40) + 15);
          }
          System.out.print(c);
          Thread.sleep(random.nextInt(90) + 30);
      }
      

      这些数字可能需要稍作微调,但这应该可以让您了解必要的要点

      【讨论】:

      • 你能扩展变量 'specialChars' 它应该等于什么吗?
      • specialChars 是一个 Set,其中包含在输入之前需要额外更长睡眠时间的字符。示例:new HashSet&lt;&gt;(Arrays.asList("z", "`", "|", "#",...));
      猜你喜欢
      • 2022-11-28
      • 2020-08-22
      • 1970-01-01
      • 1970-01-01
      • 2021-02-11
      • 2013-12-21
      • 2022-01-24
      • 1970-01-01
      • 2015-06-06
      相关资源
      最近更新 更多