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