Page 246 - Em Học Python
P. 246
.
Giờ ta cần các hàm để chuyển hướng trái ( turn_left và phải ( turn_right Ta sẽ
)
)
thêm mấy hàm này ngay sau hàm draw
:
d
ef urn_left self, vt):
t
(
e
s
elf.x 2
-
=
e
t
(
ef urn_right self, vt):
d
2
elf.x
s
=
Trong hàm __init__ của lớp Paddle, ta sẽ nối mấy hàm này tới đúng phím của
chúng. Ta đang nhắc đến các liên kết đã được nói trong phần “Tạo Các Tương Tác” ở trang
187 dùng để bảo Python gọi một hàm nào đó khi một phím được nhấn. Ở đây, ta nối hàm
turn_left của lớp Paddle với phím mũi tên bên trái bằng sự kiện '<KeyPress-Left>' Còn
.
hàm turn_right được nối với phím mũi tên bên phải bằng sự kiện '<KeyPress-Right>'
.
Hàm __init__ của ta giờ trông như sau:
c
_
ef _init__(self, anvas, olor):
c
d
elf.canvas anvas
c
=
s
1
1
=
c
f
elf.id anvas.create_rectangle(0, , 00, 0, ill=color)
s
0
elf.canvas.move(self.id, 00, 00)
2
s
3
elf.x
=
0
s
=
elf.canvas_width elf.canvas.winfo_width()
s
s
s
s
'
elf.canvas.bind_all( <KeyPress-Left>' elf.turn_left)
,
,
s
elf.canvas.bind_all( <KeyPress-Right>' elf.turn_right)
'
s
:
Hàm draw của lớp Paddle cũng tượng tự như trong lớp Ball
d
d
(
ef raw self):
s
s
0
elf.canvas.move(self.id, elf.x, )
os elf.canvas.coords(self.id)
=
p
s
p
f os[0] = :
0
i
<
s
=
0
elf.x
p
s
>
lif os[2] = elf.canvas_width:
e
s
=
elf.x
0
Ta dùng hàm move của bảng vẽ để di chuyển thanh đỡ tuỳ theo giá trị của x với
.
self.canvas.move(self.id, elf.x, ) Rồi ta kiểm tra xem toạ độ hiện tại của thanh
s
0
đỡ có chạm vào mép trái hoặc mép phải của màn hình không thông qua các giá trị trong
biến pos
.
220 Chương 14