おはようございますUdemy講師のダダです
今回はProcessingでキーボード入力についてやっていきます
Processingでは、キーボド操作ができるプログラムを作ることができます
キーボード操作って何?

キーボード操作やマウス、の操作はパソコンを使うときの基本中の基本です。
とありますが、Processingでは、実行した作品に対してキーボードを操作しても反応がありません
しかしコードをコードを入力することで作った作品をゲームのようにキーボードで操作できるようになります
作品例① キーボードを押した内容が表示されるコード
str = ""
def setup():
size(600, 100)
textSize(30)
def draw():
background(100)
text(str, 10, 50)
def keyPressed():
global str
str = "key={0} keyCode={1}".format(key, keyCode)
手順①:アニメーション作成
入力した文字を実行画面に出力していく
内容のコードです
setup と derw関数を使用してアニメーションの作成
アニメーションの作成についてはこちらから
手順②:イベントハンドラーでキーボド操作の関数を定義します
イベントハンドラーとは、キーボードやマウスを操作した時に実行される関数のこと
こちら ← 関数について知りたい方
以下にProcessingで実行できる関数の一覧を確認してください
イベントハンドラ | 内容 |
keyPressed() | キーが押されるたびに 1 回呼び出されます |
keyReleased() | キーが離されるたびに 1 回呼び出されます |
mousePressde() | マウスが押すたびに1回実行されます |
mouseReleased() | マウスが離されるたびに実行されます |
mouseClicked() | マウス ボタンが押されて離された後に呼び出されます |
mouseMoved() | マウスが移動し、マウスボタンが押されないたびに呼び出されます ※ボタンが押されている場合は代わりにmouseDragged()が呼び出されます |
mouseDragged | マウス ボタンが押されている間にマウスが移動するたびに 1 回呼び出されます ※ボタンが押されていない場合は、代わりにmouseMoved()が呼び出されます |
mouseWheel() | マウスホイールが下へ(正)マウスホイールが上へ(負) |
手順②:イベントハンドラーと変数の違い
・イベントハンドラー(関数を定義する場合)
Processingでは、イベントハンドラーというものが用意されており
キーボードやマウスの操作が行われた際に実行する関数定義できます
そのため、一度操作を行うと持続的にコードが実行されます
・変数を定義をする場合
キーボードやマウス操作を行うごとに実行します
手順③formatを使用し文字列に入力したキーを出力します
formatを使用することで、変化する変数内のデータを文字列に組み込むことができます
こちら ← 変数について知りたい方

使用できる変数
変数 | 内容 |
key | システム変数keyには、使用された (押された、または離された) キーボードの最新のキーの値が常に含まれています |
keyCode | 変数keyCode は、 UP、DOWN、LEFT、RIGHT 矢印キー、および ALT、CONTROL、SHIFT などの特殊キーを検出するために使用されます。 これらのキーを確認するときは、まずキーがコード化されているかどうかを確認する必要があります。 これは、例に示すように「if (key == CODED)」という条件付きで行われます |
keyPressde | いずれかのキーが押された場合、Boolean システム変数keyPressedはTrueになり、 キーが押されていない場合はFalseになります |
mousePressed | mousePressed変数は、マウス ボタンが現在押されているかどうかを格納します。 いずれかのマウス ボタンが押されている場合、値は True になり、ボタンが押されていない場合は False になります。 mouseButton変数(参照)を使用して、どのボタンが押されたかを判別できます |
mouseButton | マウス ボタンが押されると、押されたボタンに応じて、 システム変数mouseButton の値がLEFT、RIGHT、またはCENTERのいずれかに設定されます |
作品例②十字キーで円を動かそう
str = "" #空の文字列
x, y = 400, 200
def setup():
size(800, 400)
textSize(30)
def keyPush():
global info
background(100)
str = "key={0} keyCode={1}".format(key, keyCode)
if keyPressed:
str = "keyPressed"
if mousePressed:
str = "mousePressde"
text(str, 10, 30)
def draw():
ellipse(x, y, 50, 50)
def keyPressed():
global x, y
keyPush()
#ellipse(x, y, 50, 50)
if keyCode == UP:
y -= 10
if keyCode == DOWN:
y += 10
if keyCode == LEFT:
x -= 10
if keyCode == RIGHT:
x += 10
まとめ
実際に自分が操作をして、動く物ができるともっとプログラミングが楽しくなってくるので
皆さんもやってみたください
コメント