बेतरतीब गतिमान वस्तुएँ गेम को अधिक रोमांचक और चुनौतीपूर्ण बनाती हैं। जानें कि इसे अपने Pygame प्रोजेक्ट्स में कैसे शामिल करें।

पायगेम, गेम डेवलपमेंट के लिए एक लोकप्रिय पायथन लाइब्रेरी, आपको आसानी से रोमांचक और इंटरैक्टिव गेम बनाने की अनुमति देती है। अपनी Pygame कृतियों को बढ़ाने का एक तरीका यादृच्छिक गतिमान वस्तुओं को जोड़ना है। ये वस्तुएं बाधाएं, दुश्मन, पावर-अप या कुछ भी हो सकती हैं जो आपके खेल की दुनिया में गतिशीलता जोड़ती हैं।

एक सरल गेम बनाएं

एक बुनियादी Pygame विंडो सेट करके और कुछ प्लेटफ़ॉर्म के साथ एक प्लेयर ऑब्जेक्ट जोड़कर प्रारंभ करें। आप तीर कुंजियों का उपयोग करके बुनियादी खिलाड़ी आंदोलन को भी लागू कर सकते हैं स्पर्श इनपुट का उपयोग करना.

इस आलेख में प्रयुक्त कोड इसमें उपलब्ध है गिटहब रिपॉजिटरी और यह आपके लिए एमआईटी लाइसेंस के तहत उपयोग करने के लिए निःशुल्क है।

नामक एक नई फ़ाइल बनाएँ Simple-game.py और अपने मूल गेम के लिए कोड जोड़ें।

एकाधिक गतिशील वस्तुएँ जोड़ें

अब जब आपके पास प्लेयर ऑब्जेक्ट और प्लेटफ़ॉर्म के साथ एक सरल गेम है, तो गेम में कई यादृच्छिक चलती ऑब्जेक्ट जोड़ें। ये ऑब्जेक्ट अलग-अलग गति से स्क्रीन पर क्षैतिज रूप से घूमेंगे।

instagram viewer
object_width, object_height = 30, 30
object_speed_range = (2, 7)
objects = []

defcreate_random_object():
return {
'x': random.randint(0, screen_width - object_width),
'y': random.randint(0, screen_height - object_height),
'speed': random.randint(*object_speed_range)
}

for _ in range(5):
objects.append(create_random_object())

defdraw_object(obj):
obj_dim = (obj['x'], obj['y'], object_width, object_height)
pygame.draw.rect(screen, WHITE, obj_dim)

# Game loop
while running:
screen.fill((0, 0, 0))

#... (previous code)

for obj in objects:
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_width

draw_object(obj)

pygame.display.update()
clock.tick(60)

pygame.quit()

नीचे आउटपुट है:

रैंडम मूवमेंट एल्गोरिदम लागू करें

वर्तमान में, आपकी यादृच्छिक गतिमान वस्तुएँ केवल एक सीधी क्षैतिज रेखा में चलती हैं। उनके आंदोलन को और अधिक अप्रत्याशित बनाने के लिए, आप एक यादृच्छिक आंदोलन एल्गोरिदम जोड़ सकते हैं।

# Random Movement Algorithm
defupdate_random_movement(obj):
# Change the direction randomly
if random.random() < 0.01:
obj['speed'] = -obj['speed']

# Game loop
while running:
#... (previous code)

for obj in objects:
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_width

update_random_movement(obj)
draw_object(obj)

pygame.display.update()
clock.tick(60)

pygame.quit()

वस्तुओं को प्लेयर की ओर ले जाएँ

खेल में और अधिक जटिलता जोड़ने के लिए, आप कुछ ऐसी वस्तुएं पेश कर सकते हैं जो खिलाड़ी की ओर बढ़ती हैं। आप ऑब्जेक्ट और प्लेयर के बीच के कोण की गणना करके और तदनुसार ऑब्जेक्ट की स्थिति को समायोजित करके इसे प्राप्त कर सकते हैं।

import math

# Objects Moving Towards Player
defmove_towards_player(obj):
player_center_x = player_x + player_width // 2
player_center_y = player_y + player_height // 2
object_center_x = obj['x'] + object_width // 2
object_center_y = obj['y'] + object_height // 2

angle1 = player_center_y - object_center_y
angle2 = player_center_x - object_center_x

angle = math.atan2(angle1, angle2)
obj['x'] += obj['speed'] * math.cos(angle)
obj['y'] += obj['speed'] * math.sin(angle)

# Game loop
while running:
#... (previous code)

for obj in objects:
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_width

move_towards_player(obj)
draw_object(obj)

pygame.display.update()
clock.tick(60)

pygame.quit()

वस्तुओं को तभी हिलाएं जब खिलाड़ी परिवेश में प्रवेश करे

सभी वस्तुओं को प्रारंभ से गतिमान करने के बजाय, आप वस्तुओं को केवल तभी गतिमान होने की अनुमति दे सकते हैं जब खिलाड़ी उनके परिवेश में प्रवेश करता है।

# Objects Start to Move When Player Enters Surroundings
surrounding_distance = 150

defshould_start_moving(obj):
surrounded1 = abs(obj['x'] - player_x) < surrounding_distance
surrounded2 = abs(obj['y'] - player_y) < surrounding_distance
return surrounded1 or surrounded2

# Game loop
while running:
#... (previous code)

for obj in objects:
if should_start_moving(obj):
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_width

update_random_movement(obj)
move_towards_player(obj)

draw_object(obj)

pygame.display.update()
clock.tick(60)

pygame.quit()

टकराव का पता लगाना और बातचीत

गेम को और भी अधिक आकर्षक बनाने के लिए आप यह कर सकते हैं प्लेयर और चलती वस्तुओं के बीच टकराव का पता लगाना जोड़ें. उदाहरण के लिए, जब प्लेयर किसी ऑब्जेक्ट से टकराता है तो आप उसे स्क्रीन से हटा सकते हैं।

# Collision Detection and Interaction
defis_collision(obj):

condition1 = player_x + player_width > obj['x']
condition2 = player_x < obj['x'] + object_width
condition3 = player_y + player_height > obj['y']
condition4 = player_y < obj['y'] + object_height
return ( condition1 and condition2 and condition3 and condition4)

# Game loop
while running:
#... (previous code)

for obj in objects:
if should_start_moving(obj):
obj['x'] += obj['speed']
if obj['x'] > screen_width:
obj['x'] = -object_width

update_random_movement(obj)
move_towards_player(obj)

if is_collision(obj):
objects.remove(obj)

draw_object(obj)

pygame.display.update()
clock.tick(60)

pygame.quit()

अतिरिक्त सुविधाओं सहित

यादृच्छिक चलती वस्तुओं को जोड़ना आपके पायगेम में विभिन्न रोमांचक सुविधाओं को लागू करने के लिए एक आधार के रूप में काम कर सकता है। आपके खेल को अगले स्तर पर ले जाने के लिए यहां कुछ अतिरिक्त उपाय दिए गए हैं:

स्कोरिंग और प्रगति

वस्तुओं को उनके कठिनाई स्तर या दुर्लभता के आधार पर अलग-अलग अंक निर्दिष्ट करें। आप बना सकते हैं और एक स्कोरिंग प्रणाली प्रदर्शित करें जो खिलाड़ियों को चलती वस्तुओं के माध्यम से सफलतापूर्वक नेविगेट करने या विशेष वस्तुओं को इकट्ठा करने के लिए पुरस्कृत करता है।

एक प्रगति ट्रैकर लागू करें जो गेम की कठिनाई को बढ़ाता है क्योंकि खिलाड़ी उच्च स्कोर प्राप्त करते हैं, जिससे वे व्यस्त रहते हैं और सुधार करने के लिए प्रेरित होते हैं।

पावर-अप और बोनस

विशेष ऑब्जेक्ट बनाएं जो एकत्रित होने पर खिलाड़ी को अस्थायी लाभ प्रदान करें। इन पावर-अप में बढ़ी हुई गति, अजेयता, या यहां तक ​​कि अन्य वस्तुओं को अस्थायी रूप से स्थिर करने या नष्ट करने की क्षमता भी शामिल हो सकती है।

गेमप्ले में रणनीतिक गहराई जोड़ने के लिए इन पावर-अप के प्रभावों के साथ रचनात्मक बनें।

शत्रु एआई और व्यवहार

दुश्मन वस्तुओं के लिए अधिक परिष्कृत आंदोलन पैटर्न डिज़ाइन करें ताकि खिलाड़ियों के लिए उनसे बचना अधिक चुनौतीपूर्ण हो सके। दुश्मनों को समझदारी से खिलाड़ी का पीछा करने या समन्वित पैटर्न में आगे बढ़ने के लिए सरल एआई एल्गोरिदम लागू करें।

शत्रु के अलग-अलग व्यवहार से खिलाड़ी सतर्क रहेंगे और खेल को नीरस होने से रोका जा सकेगा।

संग्रहणीय वस्तुएं और पुरस्कार

खेल जगत में संग्रहणीय वस्तुएँ बिखेरें। ये सिक्के, रत्न, या कोई अन्य विषयगत वस्तुएँ हो सकती हैं। जब खिलाड़ी इन वस्तुओं की एक निश्चित संख्या एकत्र करता है, तो वे गेम में नए स्तरों, पात्रों या यहां तक ​​कि गुप्त सुविधाओं को अनलॉक कर सकते हैं।

यादृच्छिक गतिमान वस्तुओं को जोड़ने के लिए सर्वोत्तम अभ्यास

अपने पायगेम में बेतरतीब चलती वस्तुओं को शामिल करते समय, इन सर्वोत्तम प्रथाओं का पालन करने से आपको एक अच्छी तरह से संतुलित और परिष्कृत गेमिंग अनुभव बनाने में मदद मिलेगी:

संतुलन बनाने में कठिनाई

उचित चुनौती प्रदान करने के लिए यादृच्छिक गतिमान वस्तुओं की गति और गति पैटर्न को सावधानीपूर्वक संतुलित किया जाना चाहिए। वस्तुओं को बहुत तेज़ या अनियमित ढंग से हिलाने से बचें, क्योंकि इससे खिलाड़ी निराश हो सकते हैं और खेल को अनुचित बना सकते हैं।

दूसरी ओर, अत्यधिक धीमी गति से चलने वाली वस्तुएं खेल को बहुत आसान और कम आकर्षक बना सकती हैं।

प्रदर्शन के लिए अनुकूलन

यदि आपके गेम में बड़ी संख्या में यादृच्छिक चलती वस्तुएं या जटिल आंदोलन एल्गोरिदम शामिल हैं, तो प्रदर्शन को बेहतर बनाने के लिए कोड को अनुकूलित करने पर विचार करें। टकरावों और गति गणनाओं को संभालने के लिए कुशल डेटा संरचनाओं और एल्गोरिदम का उपयोग करें।

सुचारू और प्रतिक्रियाशील गेमप्ले सुनिश्चित करने के लिए अनावश्यक गणनाओं को कम करें, विशेष रूप से पुराने या कम शक्तिशाली उपकरणों पर।

परीक्षण और बदलाव

यह सुनिश्चित करने के लिए कि यादृच्छिक चलती वस्तुएं अन्य गेम तत्वों के साथ सही ढंग से इंटरैक्ट करती हैं, विभिन्न परिदृश्यों के साथ अपने गेम का पूरी तरह से परीक्षण करें। टकरावों, खिलाड़ी के साथ बातचीत और किसी विशेष गतिविधि व्यवहार का परीक्षण करें।

इष्टतम गेमप्ले अनुभव प्राप्त करने के लिए प्लेटेस्टिंग फीडबैक के आधार पर वस्तुओं की गति, व्यवहार और पैटर्न को समायोजित करें।

नियंत्रण के साथ यादृच्छिकता

हालाँकि "यादृच्छिक" शब्द का प्रयोग इन गतिशील वस्तुओं के लिए किया जाता है, पूर्ण यादृच्छिकता होना हमेशा वांछनीय नहीं हो सकता है। नियंत्रित यादृच्छिकता को शामिल करने पर विचार करें, जहां कुछ गतिविधियों या पैटर्न को संभावनाओं की एक सीमा या सेट के भीतर परिभाषित किया जाता है।

नियंत्रित यादृच्छिकता यह सुनिश्चित करती है कि खेल अत्यधिक अराजक हुए बिना चुनौतीपूर्ण और मनोरंजक बना रहे।

यादृच्छिक गतिमान वस्तुओं के साथ खेलों को और अधिक आकर्षक बनाना

बेतरतीब गतिमान वस्तुएं आपके गेम में आश्चर्य और अप्रत्याशितता का तत्व जोड़ती हैं, जिससे यह अधिक गतिशील और आकर्षक बन जाता है। वे खिलाड़ियों को सतर्क रखते हैं, जिसके लिए त्वरित प्रतिक्रिया और रणनीतिक सोच की आवश्यकता होती है। इसके अतिरिक्त, इन वस्तुओं के साथ गतिविधियों और इंटरैक्शन की विविधता यह सुनिश्चित करती है कि कोई भी दो गेमप्ले अनुभव समान नहीं हैं।