2015-10-21 47 views
1

我試圖效仿處理中的打字機,類似於this one。因爲我主要是用葡萄牙語寫的,所以我需要在打字機中作爲非前進鍵的變音符號(它打印重音,然後下一個鍵打印在它下面,例如「pépãopátria」 。如何在處理中使用keyPressed()捕獲變音符號?

當我簡單地使用下面的行打印鍵值和代碼,當我輸入~,甚至多次,我什麼也沒得到,當我鍵入~ + a我只得到了a

void keyPressed() 
    println("key: " + String.valueOf(key) + " value: " + int(key) + " code: " + keyCode); 
} 

所以問題是:

如何在拉丁版式鍵盤(法語,西班牙語,葡萄牙語)中捕獲變音符號重音按鍵,以及如何用它們組合unicode重音字符?

+0

什麼是你輸入的字符的Unicode值? –

+0

@KevinWorkman,我不知道該怎麼寫,但對於「ã」我認爲它是U + 00E3 – heltonbiker

回答

1

如果鍵盤設置爲正確的語言並且字體支持字符,應該可以使用這些字符。

下面是根據您所提供的鏈接的例子:

String text1 = " "; 
PFont font; 
int bfill = 150; 
boolean randomizer = false; 

void setup() { 
    size(400, 400); 
    smooth(); 
    font = createFont("Arial",48);//loadFont("Arial-Black-48.vlw"); 
    textFont(font, 20); 
} 

void draw() { 

    background(bfill); 
    fill(255); 
    text(text1, 0, 40, width, height); 
    if(randomizer) { 
    for(int j = 0; j < 400; j++) { 
     text1 += char(int(random(18, 126))); 
    } 
    text(text1, 0, 40, width, height); 
    text1 = " "; 
    } 

} 

void keyPressed() { 
    if (key == BACKSPACE) { 
    if(text1.length() > 0) { 
     text1 = text1.substring(0, text1.length() - 1); 
    } 
    } 
    else if (key == '1') { 
    randomizer = true; 
    } 
    else { 
    text1 += key; 
    if(key == 'ă') println("got ă"); 
    } 
} 

diacritics in Processing

我只是改變了鍵盤輸入羅馬尼亞(其中也有變音符號,如ăâîşţ)。

我也看到打印到控制檯的消息上ă字符作爲預期:

got ă