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()
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -