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
   243   244   245   246   247   248   249   250   251   252   253