2017-07-15 4 views
2

私はこれが論理的なエラーだと知っていますが、私は50のランダムな単語を表示し、50の単語を広げてランダムな場所に移動する必要がありますが、フレームごとに50のランダムな単語を一度に取得し続けますそれらのすべてがお互いに重なり合っていて、次にランダムな場所に行きます。私のコードで何が間違っていましたか?ここ配列内の各単語を処理する際に、別々に動かす方法はありますか?

は、私はそれをやった方法です:

String [] allWords; 
int index = 0 ; 
float x; 
float y; 


void setup() { 

size (500,500); 
background (255); //background : white 

String [] lines = loadStrings ("alice_just_text.txt"); //imports the 
external file 
String text = join(lines, " "); //make into one long string 
allWords = splitTokens (text, ",.?!:-;:()03 "); //splits it by word 

x = 100; //where they start 
y = 150; 

} 


void draw() { 

background (255); 

for (int i = 0; i < 50; i++) { //produces 50 words 

    x = x + random (-3,3); //makes the words move or shake 
    y = y + random (-3,3); //makes the words move or shake 

    int index = int(random(allWords.length)); //random selector of words 

    textSize (random(10,80)); //random font sizes 
    fill (0); //font color: black 
    textAlign (CENTER,CENTER); 
    text (allWords[index], x, y, width/2, height/2); 
    println(allWords[index]); 
    index++ ; 


} 

} 
+0

x = x + random(-3,3); ?どのようにあなたは満たされる自由な数を制御しますか? –

+0

それは彼らが単語を動かしたり動かしたりすることです@VasylLyashkevych –

+0

はい、あなたはコードをコンパイルできず、-3を境界の1つとして使うと思います。同じアルゴリズムを検討しましたか? x = x + random.nextInt(3);を使うことができます。 –

答えて

0

あなたが問題のカップルを持っています。

まず、xyという変数が1つしかありません。代わりにの各単語の変数xyを追跡する必要があります。あなたはそれのために配列を使うことができます、またはより良いまだ位置と単語をカプセル化するcreate a classをすることができます。 (恥知らずの自己宣伝:私はそのチュートリアルを書いたが、あなたがしたいことのほとんどすべてを行う例が含​​まれているので、読んでおくことを強くお勧めします)

次に、forの中で何をしているのかを正確に理解する必要があります。ループをdraw()関数で実行します。具体的にこの行が何をするか:

int index = int(random(allWords.length)); //random selector of words 

これはランダムなインデックスを選択されていますが、draw()関数の内部forループ内でそれをやっているので、これは、1秒間に60回50回起こっています。それはおそらくあなたがしたいことではありません。

代わりにsetup()の機能でランダムな単語を1度だけに生成したいとします。これを行うには、作成したクラスのインスタンスを作成し、配列またはArrayListに格納します。

+0

はい、あなたはとても役に立ちます!あなたのアドバイスのすべてに感謝します!あなたのチュートリアルはどこにありますか? –

+0

@Noobprocessor私のポストには、[クラスを作成する](http://happycoding.io/tutorials/processing/creating-classes)リンクがあります。 –

+0

オハイオ州オハイオ州オハイオ州再びありがとうありがとう –

関連する問題