Processing python

【Processing×Python】キーボード入力で動く物

記事内に商品プロモーションを含む場合があります

おはようございますUdemy講師のダダです

今回はProcessingでキーボード入力についてやっていきます

Processingでは、キーボド操作ができるプログラムを作ることができます

この記事はProcessingのPython設定で作成しております

Java設定だとエラーが出るので注意してください

インストールや設定変更については

私が作ったUdemy講座から無料で見れるようになりました

Processingインストールの講座プレビュー

視聴方法 ←見方がわからない方はこちら

Processing×Pythonが学べる講座

↓↓割引クーポンで安く学べる↓↓

割引クーポン発行

キーボード操作って何?

キーボード操作やマウス、の操作はパソコンを使うときの基本中の基本です。

とありますが、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でアニメーションを作成

手順②:イベントハンドラーでキーボド操作の関数を定義します

イベントハンドラーとは、キーボードやマウスを操作した時に実行される関数のこと

こちら ← 関数について知りたい方

以下に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になります
mousePressedmousePressed変数はマウス ボタンが現在押されているかどうかを格納します。
いずれかのマウス ボタンが押されている場合、値は True になり、ボタンが押されていない場合は False になります。
mouseButton変数(参照)を使用して、どのボタンが押されたかを判別できます
mouseButtonマウス ボタンが押されると、押されたボタンに応じて、
システム変数mouseButton の値がLEFTRIGHT、または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

まとめ

実際に自分が操作をして、動く物ができるともっとプログラミングが楽しくなってくるので

皆さんもやってみたください

Processing×Pythonが学べる講座

↓↓割引クーポンで安く学べる↓↓

割引クーポン発行

-Processing python
-, , , , , ,