※ 今回のコードはラズベリー財団が開発しているCode Editorで書いています。
タートルグラフィックスでキーボード操作で亀を動かせるようにします。
今回は分かりやすいように縦スクロールシューティングゲーム風に亀を常に上向きにしながら、キーボードで亀を左右に動かせるようにします。
キーボードで操作出来るようにするために
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()