Processingのバージョン3でkeypressedを使用したプログラムを作成すると、プログラムを実行するたびにキー操作が効いたり、効かなかったりすることがあります。いろいろ調べてみると開いたウインドウにフォーカスが当たっていないことがあるためだとわかりました。バージョン2ではこのような問題はありませんでした。
下記のようにフォーカスを当てるようにすると解決しました。
フレームカウント、キーを押したかどうか、マウスを押したかどうか、フォーカスが当たっているかどうかを表示するようにしています。
void setup() {
size(640, 480);
((java.awt.Canvas) surface.getNative()).requestFocus();
}
void draw() {
println(frameCount, keyPressed, mousePressed, focused);
}

