0
キャンバス内でボールを左右に水平に動かすための簡単なプログラムを作成しました。ユーザーは左右のキーを使用してボールを5ピクセルずつ移動させます。ボールのx座標が40未満または240以上の場合は、何も行いません。オブジェクトが間違った方向に移動する理由
try:
import tkinter as tk
except ImportError:
import Tkinter as Tk
window = tk.Tk()
game_area = tk.Canvas(width=270, height=400, bd=0, highlightthickness=0,
bg="white")
ball = game_area.create_oval(10, 10, 24, 24, fill="red")
game_area.move(ball, 120, 4)
coords = 120
def move_left(event):
global coords
if coords < 40:
pass
else:
coords = int(coords)- 5
game_area.move(ball, coords, 4)
game_area.update()
def move_right(event):
global coords
if coords > 240:
pass
else:
coords = int(coords)+5
game_area.move(ball, coords, 4)
game_area.update()
window.bind("<Left>", move_left)
window.bind("<Right>", move_right)
game_area.pack()
window.mainloop()
しかし、これを防止することを意味するif
機能にもかかわらず、ボール右(両端の5つの以上のピクセル)に向かって、画面オフキー移動のいずれかを押します。
右の方向に移動しても、ボールはまだ下に移動し、y軸の位置にあるままにします。 – Ernxst
@Ernxst第3引数 'dy'もオフセットです。それを4から0に変更してください。 –
気にしないでください!私はちょうどあなたが投稿したものを読んだ後に4から0に設定しました。 – Ernxst