2014-03-05 36 views
0

我試圖用處理,生成一些隨機的文字,我想要什麼的隨機量是每次我按下鼠標新的文本生成並顯示在屏幕上。到目前爲止,文本只是生成,而不是由於draw()的循環而被刪除的任何方法來解決這個問題?處理生成文本

int click = 0; 
void setup() { 
String alfabet = "abcdefghijklmnopqrstuvw"; 
size(1000,1000); 
textSize(64); 
textAlign(CENTER); 

} 
void draw() { 
background(0); 
if(click==1) { 
click = 0; 
genereren(); 
} 
} 
void genereren() { 
String alfabet = "abcdefghijklmnopqrstuvw"; 
int x = 10; 
for(int i = 0; i < 15; i = i+1) { 
float r = random(24); 
if(r < 1) { 
    r = r+1; 
} 
int d = int(r); 
String EersteLetter = alfabet.substring(d-1,d); 
if (i <= 4) { 
text(EersteLetter, 60+(x*3*i), 80); 
} 
if (i <= 8) { 
text(EersteLetter, 60+(x*3*i), 120); 
} 
if (i <= 12) { 
text(EersteLetter, 60+(x*3*i), 160); 
} 
if (i <= 16) { 
text(EersteLetter, 60+(x*3*i), 200); 
} 
} 
} 
void mouseClicked() { 
    click = 1; 
} 
+0

你只需要「記住」的字符串,並在抽獎吸引他們()。創建一個字符串列表,在每次點擊時添加一個新字符串,在列表中繪製循環並輸出每個文本。 –

+0

我一直在試圖將其存儲到一個數組第一,比讀,但我不能找到一種方法來運行週期只有一次。是否有可能將它存儲在一個單獨的void中並將該數組放入draw中? – user3348262

回答

0

試試這個例子,如果你點擊鼠標,它將顯示與否,如果你按住鼠標按鈕,你將凍結當前文本。

boolean click = false; 
void setup() { 
    String alfabet = "abcdefghijklmnopqrstuvw"; 
    size(1000, 1000); 
    textSize(64); 
    textAlign(CENTER); 
    background(0); 
} 
void draw() { 
    if (click) { 
    genereren(); 
    } 
} 

void mousePressed() { 
    if (mouseButton == LEFT) { 
    genereren(); 
    } 
} 

void genereren() { 
    background(0); 
    String alfabet = "abcdefghijklmnopqrstuvw"; 
    int x = 10; 
    for (int i = 0; i < 15; i = i+1) { 
    float r = random(24); 
    if (r < 1) { 
     r = r+1; 
    } 
    int d = int(r); 
    String EersteLetter = alfabet.substring(d-1, d); 
    if (i <= 4) { 
     text(EersteLetter, 60+(x*3*i), 80); 
    } 
    if (i <= 8) { 
     text(EersteLetter, 60+(x*3*i), 120); 
    } 
    if (i <= 12) { 
     text(EersteLetter, 60+(x*3*i), 160); 
    } 
    if (i <= 16) { 
     text(EersteLetter, 60+(x*3*i), 200); 
    } 
    } 
} 
void mouseReleased() { 
    clear(); 
} 
void mouseClicked() { 
    click=!click; 
} 
0

這樣做將只是通過不使用「背景(0);」最簡單的方法,這樣的文字會留到永遠。然後你可以添加一個按鈕,運行一個方法白色的「背景(0);」擦除所有文字。