カーソルキーを使ってボールを動かしてみよう
今回は、tkinterでカーソルキーを操作して、ボールを動かすプログラムを作ります。
どのカーソルキーが押されたのかを取得して、そのキーに対応した位置にボールを表示します。
カーソルキーでボールを動かすプログラム
以下のプログラムは、入力したカーソルキーの向きにボールを動かします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
### インポート import tkinter ### 定数 WIDTH = 640 # 画面横サイズ HEIGHT = 400 # 画面縦サイズ SIZE = 20 # 円サイズ ### 変数 x_pos = (WIDTH -SIZE)/2 # X座標(初期値) y_pos = (HEIGHT-SIZE)/2 # Y座標(初期値) ### 入力キー表示関数 def input_key(event): ### グローバル変数宣言 global x_pos global y_pos ### キー名取得 key_name = event.keysym ### 円移動 if key_name == "Left": x_pos -= SIZE elif key_name == "Right": x_pos += SIZE elif key_name == "Up": y_pos -= SIZE elif key_name == "Down": y_pos += SIZE ### 円表示 canvas.coords(id, x_pos, y_pos, x_pos+SIZE, y_pos+SIZE) ### キャンバス作成 canvas = tkinter.Canvas(master=None, width=WIDTH, height=HEIGHT) ### キャンバス表示 canvas.pack() ### オブジェクトID取得 id = canvas.create_oval(x_pos, y_pos, x_pos+SIZE, y_pos+SIZE, outline="red", fill="red") ### フォーカスセット canvas.focus_set() ### キー入力時のイベント取得 canvas.bind("<KeyPress>", input_key) ### イベントループ canvas.mainloop() |
カーソルキーの上(↑)、下(↓)、左(←)、右(→)を押下することによって、そのキーに対応した向きにボールが移動します。