Page 248 - Em Học Python
P. 248
Đầu tiên, ta đổi hàm __init__ của quả bóng để có thể thêm đối tượng paddle vào
làm tham số:
class all:
B
ef _init__ self, anvas, addle, olor):
_
d
p
c
(
c
c
=
s
elf.canvas anvas
elf.paddle addle
s
=
p
2
s
c
elf.id anvas.create_oval(10, 0, 5, 5, ill=color)
f
2
=
1
2
s
1
elf.canvas.move(self.id, 45, 00)
-
-
[
2
3
1
=
s
tarts -3, 2, 1, , , ]
r
andom.shuffle(starts)
s
elf.x tarts[0]
s
=
s
=
elf.y 3
-
s
elf.canvas_height elf.canvas.winfo_height()
s
=
s
=
elf.canvas_width elf.canvas.winfo_width()
s
Để ý ở ❶ ta sửa các tham số của __init__ để tham thanh đỡ vào. Rồi ở ❷ ta gán
.
tham số paddle vào biến paddle
Với đối tượng paddle này, ta cũng cần phải sửa code một chút lúc khởi tạo đối tượng
ball Thay đổi này ở tít dưới cuối chương trình nhé, ngay trước vòng lặp chính:
.
P
=
paddle addle(canvas, blue')
'
p
=
'
B
)
ball all(canvas, addle, red'
while :
1
b
all.draw()
addle.draw()
p
t
k.update_idletasks()
k.update()
t
t
ime.sleep(0.01)
Đoạn code kiểm tra xem bóng có đập vào thanh đỡ không hơi phức tạp hơn so với
đoạn code kiểm tra lúc đập vào tường. Ta sẽ gọi hàm hit_paddle và thêm nó vào hàm draw
,
của lớp Ball đoạn kiểm tra xem nó có chạm phía dưới màn hình không:
d
ef raw(self):
d
s
s
elf.canvas.move(self.id, elf.x, elf.y)
s
s
p
=
os elf.canvas.coords(self.id)
<
0
i
f os[1] = :
p
=
elf.y
3
s
i
s
p
f os[3] = elf.canvas_height:
>
s
-
elf.y 3
=
222 Chương 14