タートルグラフィックスでキーボード操作で亀を左右に動かしてみよう

※ 今回のコードはラズベリー財団が開発しているCode Editorで書いています。

Code Editor | Raspberry Pi


タートルグラフィックスでキーボード操作で亀を動かせるようにします。

今回は分かりやすいように縦スクロールシューティングゲーム風に亀を常に上向きにしながら、キーボードで亀を左右に動かせるようにします。


キーボードで操作出来るようにするために

screen.onkey(関数名, キーイベント)

を利用します。


左に移動の関数のみをピックアップしてコードを見てみます。


def move_left():
␣␣␣␣x = turtle.xcor()
␣␣␣␣turtle.setx(x - 10)

# イベントはScreenオブジェクトに登録するため、ここでScreenオブジェクトを作成しておく
screen = turtle.Screen()

# キーボードイベントを登録する
screen.onkey(move_left, "Left")

# 下記のコードで上で登録したイベントを受け付けるようにします
screen.listen()

※␣は半角スペース1個分


screen.onkey(move_left, "Left")

のmove_leftは上で定義しました関数名で、"Left"はキーイベントになります。


Screenオブジェクトを作成して、onkeyで関数を登録して、最後に

screen.listen()

でイベントを待ち受けるようにします。


キーイベントは下記の通りです。

表記(文字列) 対応するキー
"Up" 上矢印キー (↑)
"Down" 下矢印キー (↓)
"Left" 左矢印キー (←)
"Right" 右矢印キー (→)
アルファベット各キー
メインキーボードの数字
"space" スペースキー
"Return" Enter / 改行キー
"Escape" Esc キー
"Tab" Tab キー
"BackSpace" Backspace キー
"Delete" Delete キー
"Shift_L" / "Shift_R" 左 / 右 Shiftキー
"Control_L" / "Control_R" 左 / 右 Ctrlキー
"Alt_L" / "Alt_R" 左 / 右 Altキー
ファンクションキー
テンキーの数字
"KP_Enter" テンキーのEnter



今回作成したコードは下記になります。

import turtle

# 亀を左に動かす
def move_left():
    x = turtle.xcor()
    turtle.setx(x - 10)

# 亀を右に動かす
def move_right():
    x = turtle.xcor()
    turtle.setx(x + 10)

# 下記3行で亀をシューティングゲーム風に常に上を向くようにする
turtle.shape("turtle")
turtle.penup()
turtle.left(90)

screen = turtle.Screen()

# キーボードイベントを登録する
screen.onkey(move_left, "Left")
screen.onkey(move_right, "Right")

# 下記のコードで上で登録したイベントを受け付けるようにします
screen.listen()
京都の東本願寺で開催されているプログラミング教室で講師をしています。
詳しくはTera schoolを御覧ください。
同じカテゴリーの記事
マインクラフト用ビジュアルエディタを開発しています。

詳しくはinunosinsi/mcws_blockly - githubをご覧ください。