Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python을 사용하여 볼 게임 잡기

<시간/>

Python은 컴퓨터 게임을 만드는 데에도 사용할 수 있습니다. 이 기사에서는 파이썬을 사용하여 공 잡기 게임을 만드는 방법을 살펴보겠습니다. 이 게임에서 공은 캔버스 창 상단에서 계속 떨어지고 막대가 창 하단에 있습니다. 바를 좌우로 움직일 수 있는 2개의 버튼이 제공됩니다. 마우스 버튼을 사용하여 바닥에 있는 막대를 움직여 떨어지는 공을 잡습니다. 다른 시간에 다른 위치에서 공이 떨어집니다.

접근

게임 구축 방법은 다음 단계에 설명되어 있습니다.

  • 1단계 − 다양한 그래픽, 텍스트 및 이미지 등과 같은 추가 레이아웃을 유지하는 데 사용할 수 있는 tkinter 직사각형 캔버스를 그립니다.

  • 2단계 - 위에서 떨어질 공을 만듭니다. create_oval 사용 그것을 위한 방법. 원과 직사각형이 혼합된 타원을 만들려면 4개의 좌표가 필요합니다.

  • 3단계 − 하단에 마우스 버튼을 누르면 왼쪽에서 오른쪽으로 이동하는 막대를 만듭니다. create_rectangle 방법을 사용할 수 있습니다.

  • 4단계canvas.move 사용 공이나 막대를 움직이는 방법. 이 방법은 부착된 개체의 수직 및 수평 이동 모두에 사용됩니다.

  • 5단계 − 하단에 막대를 이동하는 데 사용할 버튼을 만듭니다. 버튼을 클릭할 때 트리거되는 이벤트가 적용됩니다.

프로그램

다음은 관련 메서드 및 개체를 사용하여 위의 단계를 기반으로 하는 완전한 프로그램입니다.

예시

#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()

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Python을 사용하여 볼 게임 잡기