पायथन का उपयोग कंप्यूटर गेम बनाने के लिए भी किया जा सकता है। इस लेख में हम देखेंगे कि पायथन का उपयोग करके बॉल कैचिंग गेम कैसे बनाया जा सकता है। इस गेम में एक बॉल कैनवास विंडो के शीर्ष से गिरती रहती है और विंडो के निचले भाग में एक बार मौजूद होता है। बार को बाएं और दाएं दिशा में ले जाने के लिए दो बटन प्रदान किए जाते हैं। माउस बटन दबाकर हम नीचे के बार को गिरती हुई बॉल को पकड़ने के लिए ले जाते हैं। अलग-अलग समय पर बॉल अलग-अलग स्थितियों से गिरती है।
दृष्टिकोण
गेम बनाने का दृष्टिकोण निम्नलिखित चरणों में वर्णित है।
चरण 1 - एक टिंकर आयताकार कैनवास बनाएं जिसका उपयोग ग्राफिक्स, टेक्स्ट और इमेज आदि जैसे विभिन्न लेआउट को रखने के लिए किया जा सके।
चरण 2 - वह बॉल बनाएं जो ऊपर से गिरने वाली है। इसके लिए create_oval मेथड का उपयोग करें। यह एक अंडाकार बनाने के लिए 4 निर्देशांक लेता है जो सर्कल और आयत का मिश्रण होता है।
चरण 3 - नीचे वह बार बनाएं जो माउस बटन दबाने पर बाएं से दाएं चलेगा। इसके लिए create_rectangle मेथड का उपयोग किया जा सकता है।
चरण 4 - बॉल या बार को ले जाने के लिए canvas.move मेथड का उपयोग करें। इस मेथड का उपयोग उन ऑब्जेक्ट के ऊर्ध्वाधर और क्षैतिज दोनों मूवमेंट के लिए किया जाता है जिनसे यह जुड़ा होता है।
चरण 5 - वे बटन बनाएं जिनका उपयोग नीचे के बार को ले जाने के लिए किया जाएगा। उन पर इवेंट लागू होंगे जो बटन क्लिक होने पर ट्रिगर होंगे।
प्रोग्राम
नीचे उपरोक्त चरणों पर आधारित प्रासंगिक मेथड और ऑब्जेक्ट का उपयोग करके पूरा प्रोग्राम दिया गया है।
उदाहरण
# पायथन का उपयोग करके बॉल कैचिंग गेम
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()
आउटपुट
उपरोक्त कोड चलाने पर हमें निम्न परिणाम मिलता है -
