キーボード入力

キーボードの入力したときにはkeyPresssedという関数が呼ばれます。 また、キーを離したときにはkeyReleasedが呼ばれます。 これらの関数を記述して、中に実行したい処理を記述します。ちなみに関数の記述は任意です。

keyPressed(){
   //キーボードが押されたときに呼ばれる関数
}

keyReleased(){
   //キーボードが離されたときに呼ばれる関数
}

また、押しているキーが何かというのはkeyという変数に納められています。 このkeyを使えば、押されたキーごとに処理を分岐させることも可能です。 以下は押されたキーの文字をランダムな位置に表示する例です。 キードから”d”を押されたときのみ、画面を白で塗りつぶしリセットします。

void setup(){
   size(400,400);
   colorMode(HSB,100);
   background(99);
   frameRate(15);

   //フォント設定
   PFont font = createFont("Naiv-Fat", 42);
   textFont(font, 24);
}


void draw(){
   if(keyPressed){
     //キーボードが押されたときの処理
     if(key == 'd'){
        //dが押されたときの処理
        background(99);
     } else {
     //それ以外のキーを押したときの処理
        textAlign(CENTER);
        fill(random(50),100);
        text(key, random(width), random(height));
     }
   }
}

結果

今回も基本は同じです。setupでは初期化、drawで文字を描いています。 drawの中では二重のif文(ネスト)を行っています。 外回りのifはキーが押されたかの判断、中のifはどのキーが押されたかの判断です。

if(keyPressed){
   //キーボードが押されたときの処理
}

中に入っているifはdというキーが押されたか?という判断です。 前述しましたが、keyにはキーボードで入力したキーの値が入っています。 dが押されたときは画面を真っ白にして画面をリセットします。

if(key == 'd'){
   //dが押されたときの処理
   background(99);
}

そしてd以外のキーのときは入力されたキーの文字を描きます。色と位置はランダムな値になります。

} else {
   //それ以外のキーを押したときの処理
   textAlign(CENTER);
   fill(random(50),100);
   text(key, random(width), random(height));
}

広告