Computer >> Máy Tính >  >> Lập trình >> Python

Trò chơi bắt bóng bằng Python

Python cũng có thể được sử dụng để tạo trò chơi máy tính. Trong bài viết này, chúng ta sẽ xem cách tạo trò chơi bắt bóng bằng python. Trong trò chơi này, một quả bóng tiếp tục rơi từ trên cùng của cửa sổ bằng vải canvas và một thanh nằm ở dưới cùng của cửa sổ. Hai nút được cung cấp để di chuyển thanh theo hướng trái và phải. Sử dụng các phím bấm của chuột, chúng ta di chuyển thanh ở phía dưới để đón quả bóng rơi xuống. Vào những thời điểm khác nhau, bóng rơi từ các vị trí khác nhau.

Phương pháp tiếp cận

Cách tiếp cận để xây dựng trò chơi được mô tả trong các bước sau.

  • Bước 1 - Vẽ một canvas hình chữ nhật tkinter có thể được sử dụng để chứa các bố cục khác như đồ họa, văn bản và hình ảnh khác nhau, v.v.

  • Bước 2 - Tạo quả bóng sẽ rơi từ trên xuống. Sử dụng create_oval phương pháp cho nó. Cần 4 tọa độ để tạo một hình bầu dục là hỗn hợp của hình tròn và hình chữ nhật.

  • Bước 3 - Tạo thanh ở dưới cùng sẽ di chuyển từ trái sang phải khi nhấn nút chuột. create_rectangle phương pháp này có thể được sử dụng cho việc này.

  • Bước 4 - Sử dụng canvas.move phương pháp di chuyển bóng hoặc thanh. Phương pháp này được sử dụng cho cả chuyển động dọc và ngang của các đối tượng mà nó được gắn vào.

  • Bước 5 - Tạo các nút sẽ được sử dụng để di chuyển thanh ở dưới cùng. Sẽ có các sự kiện được áp dụng cho nó sẽ kích hoạt khi các nút được nhấp vào.

Chương trình

Dưới đây là chương trình hoàn chỉnh dựa trên các bước trên bằng cách sử dụng các phương thức và đối tượng có liên quan.

Ví dụ

#Catching the ball game using Python

from tkinter import Tk, Button, Label
from tkinter import Canvas
from random import randint
base = Tk()
base.title("BALL GAME")
base.resizable(False, False)
color = Canvas(base, width=590, height=610)
color.pack()
standard = 0
length = 5
marks = 0
class model:
   def __init__(self, color, m1, n1, m2, n2):
      self.m1 = m1
      self.n1 = n1
      self.m2 = m2
      self.n2 = n2
      self.color = color
      self.circle = color.create_oval(self.m1, self.n1, self.m2, self.n2,fill="blue", tags='dot1')
   def Game(self):
      offset = 5
      global standard
      if standard >= 510:
         global length, marks, next
         if (length - offset <= self.m1 and
            length + 40 + offset >= self.m2):
            marks += 5
            color.delete('dot1')
            game_play()
         else:
            color.delete('dot1')
            slide.remove(self)
            result()
         return

      standard += 1
      self.color.move(self.circle, 0, 1)
      self.color.after(10, self.Game)
class slide:
   def __init__(self, color, m1, n1, m2, n2):
      self.m1 = m1
      self.n1 = n1
      self.m2 = m2
      self.n2 = n2
      self.color = color
      self.num = color.create_rectangle(self.m1, self.n1, self.m2, self.n2, fill="green",       tags='dot2')
   def push(self, num):
      global length
      if (num == 1):
         self.color.move(self.num, 20, 0)
         length += 20
   else:
      self.color.move(self.num, -20, 0)
      length -= 20
   def remove(self):
      color.delete('dot2')
def game_play():
   global standard
   standard = 0
   size = randint(0, 570)
   game1 = model(color, size, 20, size + 30, 50)
   game1.Game()
def result():
   base2 = Tk()
   base2.title("THE BALL GAME")
   base2.resizable(False, False)
   set = Canvas(base2, width=300, height=300)
   set.pack()
   z = Label(set, text="\nGame over\n\nYou have scored = " + str(marks) + "\n\n")
   z.pack()
   btx = Button(set, text="Enter if you want to play again", bg="yellow", command=lambda:    repeat(base2))
   btx.pack()
   bty = Button(set, text=" CLOSE ", bg="red",command=lambda: destroy(base2))
   bty.pack()
def repeat(base2):
   base2.destroy()
   function()
def destroy(base2):
   base2.destroy()
   base.destroy()
def function():
   global marks, length
   marks = 0
   length = 0
   x1 = slide(color, 5, 560, 45, 575)
   Bt0 = Button(color, text="move right**", bg="pink",command=lambda: x1.push(1))
   Bt0.place(x=335, y=580)
   Bt1 = Button(color, text="**move left ", bg="pink", command=lambda: x1.push(0))
   Bt1.place(x=260, y=580)
   game_play()
   base.mainloop()
if (__name__ == "__main__"):
   function()

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Trò chơi bắt bóng bằng Python