Python ยังใช้สร้างเกมคอมพิวเตอร์ได้อีกด้วย ในบทความนี้เราจะมาดูกันว่าเกมจับลูกบอลสามารถสร้างขึ้นโดยใช้ python ได้อย่างไร ในเกมนี้ ลูกบอลตกลงมาจากด้านบนของหน้าต่างผ้าใบ และมีแถบอยู่ที่ด้านล่างของหน้าต่าง มีปุ่มสองปุ่มเพื่อเลื่อนแถบไปในทิศทางซ้ายและขวา การใช้ปุ่มเมาส์กด เราจะย้ายแถบที่ด้านล่างเพื่อจับลูกบอลที่ตกลงมา ในเวลาที่ต่างกัน ลูกบอลจะตกจากตำแหน่งที่ต่างกัน .
แนวทาง
วิธีการสร้างเกมมีอธิบายไว้ในขั้นตอนต่อไปนี้
-
ขั้นตอนที่ 1 − วาดผ้าใบสี่เหลี่ยม tkinter ที่สามารถใช้เก็บเลย์เอาต์เพิ่มเติม เช่น กราฟิก ข้อความ และรูปภาพต่างๆ เป็นต้น
-
ขั้นตอนที่ 2 − สร้างลูกบอลที่จะตกลงมาจากด้านบน ใช้ create_oval วิธีการสำหรับมัน ต้องใช้ 4 พิกัดเพื่อสร้างวงรีซึ่งเป็นส่วนผสมของวงกลมและสี่เหลี่ยมผืนผ้า
-
ขั้นตอนที่ 3 − สร้างแถบที่ด้านล่างที่จะย้ายจากซ้ายไปขวาเมื่อกดปุ่มเมาส์ create_สี่เหลี่ยมผืนผ้า สามารถใช้วิธีนี้ได้
-
ขั้นตอนที่ 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()
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -