Page 237 - Em Học Python
P. 237

LÀM  BÓNG  DI  CHUYỂN






                       Để  bóng  di  chuyển,  ta  sửa  hàm  draw như  sau:








               class  all:

                       B

                                                     c
                    ef  _init__(self,  anvas,  olor):

                         _



                                           c
                    d

                                          c

                         s

                                       =
                        elf.canvas    anvas
                                                                 1

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

                                                                          2
                         s
                                                                               f


                                     c
                                   =
                                                                     2




                         s
                                                        2

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

                              (
                    d


                         d

                    ef  raw self):


                                                            -
                        elf.canvas.move(self.id,  ,  1)
                                                        0



                         s













                                                                 l








                       Do  hàm  __init__ đã  lưu  tham  số  canvas ại,  ta  sẽ  dùng  nó  thông  qua  self.canvas




               và  gọi  hàm  move



                                .










                                                                             ,

                       Ta  đưa  vào  move ba  tham  số:  số  hiệu  của  hình  tròn  id  số  0 và  số  -1  Số  0 à  để  không
















                                                                                                l







                                                                                          .








                                           l


               cho  bóng  đi  ngang,  còn  -1 à  để  nói  bóng  sẽ  đi  lên  trên  1  điểm  ảnh.



























                       Ta  đang  thay  đổi  từng  chi  tiết  rất  nhỏ,  bởi  ta  cần  phải  thử  dần  những  thay  đổi  này














               trong  lúc  làm.  Thử  hình  dung  khi  ta  viết  một  hơi  hết  toàn  bộ  code,  rồi  phát  hiện  ra  nó
















               không  chạy.  Ta  sẽ  tìm  lỗi  ở  đâu  đây?







                       Một  thay  đổi  nữa  là  ở  vòng  lặp  chính  đặt  ở  cuối  chương  trình.  Bên  trong  vòng  lặp




























               while (là  vòng  lặp  chính  của  ta  đấy!),  ta  sẽ  gọi  hàm  draw của  quả  bóng  như  thế  này:












                       1
               while  :

                    all.draw()

                    b
                    t

                    k.update_idletasks()
                    k.update()
                    t

                    t

                    ime.sleep(0.01)











                       Nếu  lúc  này  chạy  thử,  quả  bóng  sẽ  di  chuyển  dần  lên  trên  rồi  ra  bên  ngoài  cả  bảng
















               vẽ  và  biến  mất,  vì  ta  buộc  tkinter vẽ  lại  mọi  thứ  trên  bảng  vẽ  nhanh  hết  sức  có  thể  –  các






























               lệnh  update_idletasks và  update hối  thúc  tkinter hãy  vẽ  nhanh  lên.










                       Lệnh  time.sleep à  lời  gọi  hàm  sleep của  module  time  nói  Python  tạm  nghỉ  một

                                         l













                                                                               ,








                                     )

                                      .








               phần  trăm  giây  ( 0.01   Cái  này  là  để  chương  trình  của  chúng  ta  chạy  chậm  lại  một  chút,







               không  thì  bóng  sẽ  bay  vèo  ra  ngoài  và  biến  mất  nhanh  đến  mức  ta  không  kịp  nhìn  thấy.


























                                                                                  Bắt  đầu  viết  game  Bounce!           211
   232   233   234   235   236   237   238   239   240   241   242