Page 238 - Em Học Python
P. 238

Vậy  nội  dung  vòng  lặp  này  về  cơ  bản  là:  di  chuyển  bóng  một  chút,  vẽ  lại  bảng  vẽ  với












               bóng  ở  vị  trí  mới,  nghỉ  một  tẹo,  rồi  lại  tiếp  tục  y  hệt  như  thế.













                 CHÚ  Ý


















               Rất  có  thể  em  sẽ  nhìn  thấy  vài  thông  báo  lỗi  trên  shell  khi  đóng  cửa  sổ  game  lại.  Đó  là  do
















               khi  đóng  cửa  sổ,  code  sẽ  huỷ  vòng  lặp  while  và  Python  càm  ràm  một  chút  đó  mà.








                                                             ,







                       Game  của  em  giờ  trông  như  sau:

                     t
                                       *

               from  kinter  mport



                               i





               import  andom
                        r

               import  ime
                        t




               class  all

                           :


                       B
                                   (


                    d


                         _
                                                     c

                                           c
                    ef  _init__ self,  anvas,  olor):


                                          c
                                       =



                        elf.canvas    anvas
                         s
                                   =

                         s
                                                                 1



                        elf.id    anvas.create_oval(10,  0,  5,  5,  ill=color)

                                     c
                                                                          2
                                                                               f
                                                                     2



                         s

                                                        2
                        elf.canvas.move(self.id,  45,  00)
                                                              1



                    d

                         d


                    ef  raw self):
                              (
                        elf.canvas.move(self.id,  ,  1)

                         s


                                                        0
                                                            -

               tk    k()
                     T
                   =


               tk.title( Game"
                          "
                                 )


                                   0

               tk.resizable(0,  )
                                    "
                                                  1
               tk.wm_attributes( -topmost"   )


                                                ,
                                                                          h

                                                                   b


               canvas    anvas(tk,  idth=500,  eight=400,  d=0,  ighlightthickness=0)



                                                     h

                          C
                                       w
                        =

               canvas.pack()

               tk.update()
                                       '

                        B


                                             )
               ball    all(canvas,  red'

                     =


               while  :


                       1

                    all.draw()
                    b
                    k.update_idletasks()

                    t
                    k.update()
                    t


                    ime.sleep(0.01)
                    t



                       LÀM  BÓNG  BẬT  TƯỜNG













                       Bóng  mà  bay  vèo  ra  khỏi  màn  hình  thì  chơi  bời  gì  nữa,  ta  phải  làm  cho  nó  bật  lại

























                                                                                        ,
               chứ.  Đầu  tiên,  ta  phải  lưu  thêm  một  vài  biến  trong  lúc  khởi  tạo  lớp  Ball  như  thế  này:






               212           Chương  13
   233   234   235   236   237   238   239   240   241   242   243