दृश्य स्क्रिप्टिंग ट्यूटोरियल (लॉजिक ब्रिक्स)
पहले कदम: खिलाड़ी के लिए कूद लॉजिक बनाना
Lesson 2 of 10 • 20 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
इस पाठ में, हम अपने Player के लिए मूल आंदोलन तर्क बनाने की शुरुआत करेंगे।
केवल Cave Engine के Logic Bricks का उपयोग करके, हम दृश्य तर्क के माध्यम से एक सरल कूद तंत्र को लागू करेंगे। यह आपको यह समझने में भी मदद करेगा कि Logic Bricks के पीछे की सबसे महत्वपूर्ण विचारधाराओं में से एक: events, conditions, और actions खेल के व्यवहार को नियंत्रित करने के लिए कैसे एक साथ काम करते हैं।
इस मामले में, तर्क बहुत सरल होगा:
- जांचें कि क्या खिलाड़ी ने कूद की कुंजी दबाई।
- जांचें कि क्या Player को कूदने की अनुमति है।
- यदि सब कुछ सही है, तो Player के Character Component से कूदने के फ़ंक्शन को कॉल करें।
यह एक अच्छा पहला उदाहरण है क्योंकि कूदना एक बहुत सामान्य खेल तंत्र है, लेकिन यह आपको Logic Bricks के साथ गेम बनाते समय कई बार उपयोग में आने वाली मूल संरचना भी परिचित कराता है।
1. कूद जोड़ना
Player आंदोलन तर्क बनाना शुरू करने के लिए, हमें सबसे पहले खेल के Events प्राप्त करने की आवश्यकता है।
Events ऑब्जेक्ट आपको इनपुट से संबंधित जानकारी तक पहुंच प्रदान करता है, जैसे कीबोर्ड कुंजी, माउस बटन, और अन्य घटनाओं की जांच जो खेल के दौरान होती हैं।
Logic Bricks संपादन क्षेत्र के अंदर, नोड खोज मेनू खोलने के लिए राइट-क्लिक करें।
किसी नोड को जल्दी से खोजने के लिए, खोज फ़ील्ड का उपयोग करें जिसे आवर्धक कांच के आइकन द्वारा पहचाना जाता है और उस नोड का नाम टाइप करें जिसे आप चाहते हैं।
Entity, Scene, और Events नोड्स का उपयोग अक्सर किया जाता है, इसलिए वे पहले से ही खोज विंडो के शीर्ष पर हाइलाइट करते हुए दिखाई देते हैं। इसलिए, आपको आमतौर पर उनकी नाम से मैन्युअल खोज करने की आवश्यकता नहीं होती है।
अपनी तर्क में Events नोड जोड़ने के लिए Get Events का चयन करें।

अब Pressed नोड जोड़ें।
यह नोड यह जांचने के लिए जिम्मेदार होगा कि क्या खिलाड़ी द्वारा कोई विशेष कुंजी दबाई जा रही है।
अर्थात, यह वह शर्त होगी जो हमारी तर्क को बताएगी: "खिलाड़ी अब कूदना चाहता है।"

उस कुंजी का चयन करें जिसका उपयोग कूद को निष्पादित करने के लिए किया जाएगा।
ज्यादातर खेलों में, Space कुंजी सामान्यतः कूदने के लिए उपयोग की जाती है, इसलिए हम इसे यहाँ भी उपयोग करेंगे।

कूदने की कुंजी कॉन्फ़िगर करने के बाद, हमें जांचने की आवश्यकता है कि क्या इस कुंजी को वास्तव में खिलाड़ी द्वारा दबाया गया था।
इसके लिए, हम If (Bool) नोड का उपयोग करेंगे।
If (Bool) नोड एक बूलियन मान लेता है, जिसका अर्थ है एक ऐसा मान जो या तो True या False हो सकता है। यदि शर्त सत्य है, तो तर्क True आउटपुट के माध्यम से निरंतरता बनाए रखता है। यदि शर्त गलत है, तो यह False आउटपुट के माध्यम से जारी रहता है।
इस मामले में, शर्त यह होगी कि क्या Space कुंजी दबाई गई है या नहीं।

अब, जिस तरह से हमने Events नोड जोड़ा, हमें अपने वर्तमान Entity को भी प्राप्त करने की आवश्यकता है।
यह महत्वपूर्ण है क्योंकि कूदने की कार्रवाई Events ऑब्जेक्ट से संबंधित नहीं है। Events ऑब्जेक्ट केवल यह बताता है कि क्या कुंजी को दबाया गया। असली कूदने का व्यवहार Player Entity का है, विशेष रूप से इसके Character Component का।
Entity नोड के माध्यम से, हम Player से जुड़े घटकों तक पहुँच प्राप्त कर सकेंगे।

Character Component के Output से एक कनेक्शन खींचें और Jump के लिए खोजें।
यह नोड तब लोकेशन होगी जब शर्त पूरी होने पर चरित्र को कूदने का कार्यान्वयन किया जाएगा।
तो, इस स्थिति में, हम मूल रूप से कह रहे हैं:
"जब खिलाड़ी कूदने की कुंजी दबाता है, तो Player के Character Component को प्राप्त करें और इसकी Jump फ़ंक्शन को कॉल करें।"

यह कूदने की तर्क की मुख्य धारा होगी:
Entity → Character Component → Jump
इस प्रवाह के साथ, हम Entity से चरित्र घटक का उपयोग करते हैं और फिर उसके कूदने के फ़ंक्शन का उपयोग करते हैं।

अब If (Bool) नोड के True आउटपुट को Jump नोड के Flow इनपुट से जोड़ें।
इसका मतलब है कि जब Space कुंजी दबाई जाती है, तो शर्त सत्य होगी और Player कूदने का कार्यान्वयन करेगा।
यदि कुंजी को नहीं दबाया गया है, तो शर्त गलत होगी और कुछ नहीं होगा।

हालांकि, इस तर्क को वास्तव में चलाने के लिए, इसे एक Flow घटना से जोड़ा जाना चाहिए।
Logic Bricks यादृच्छिक रूप से निष्पादित नहीं होते हैं। उन्हें एक प्रविष्टि बिंदु की जरूरत होती है, जो वह नोड है जो निष्पादन प्रवाह को शुरू करता है।
On Start नोड केवल एक बार चलता है, जब Entity शुरू होता है। यह शुरू करने वाले तर्क के लिए उपयोगी है, जैसे चर को सेट करना, संदर्भ तैयार करना, या खेल के शुरुआत में कुछ कॉन्फ़िगर करना।
On Update नोड हर फ्रेम में चलता है। यह उस गेमप्ले तर्क के लिए उपयोगी है जिसे लगातार जांचने की जरूरत होती है, जैसे आंदोलन, इनपुट, कैमरा नियंत्रण, या कुछ भी जो खेल चलते समय बदल सकता है।
चूंकि हमें लगातार जांचना है कि क्या खिलाड़ी ने कूदने की कुंजी दबाई है, हम अपनी तर्क को On Update से जोड़ेंगे।
यह सुनिश्चित करता है कि कूदने की कुंजी की जाँच खेल के दौरान लगातार होती है।

इस तर्क के साथ, पात्र को पहले से ही कूदने में सक्षम होना चाहिए।
अपने Logic Bricks को व्यवस्थित रखने के लिए, आप सभी नोड्स का चयन कर सकते हैं जो इस कार्यक्षमता को बनाने के लिए उपयोग किए गए हैं, राइट माउस बटन के साथ क्लिक और खींचकर, या Shift को पकड़कर उन्हें व्यक्तिगत रूप से चुन सकते हैं।
नोड्स को चुनने के बाद, एक टिप्पणी बनाने के लिए C दबाएँ।
यह एक बहुत उपयोगी संगठन प्रथा है। जैसे-जैसे आपकी तर्क बढ़ती है, टिप्पणियाँ आपको विभिन्न भागों को दृश्यमान रूप से अलग करने में मदद करती हैं, जैसे कूद, आंदोलन, कैमरा, हमले, इंटरएक्शन, और इसी तरह।
हालाँकि तर्क अभी सरल है, आपके नोड्स को समय से पहले व्यवस्थित करने की आदत डालना बाद में आपके प्रोजेक्ट को समझने में बहुत आसान बना देगा।


2. जमीन की जाँच जोड़ना
इस बिंदु पर, आप शायद एक छोटे से समस्या का ध्यान देंगे: यदि हम Space कुंजी को लगातार दबाते रहें, तो पात्र लगातार कूद सकता है।
यह इस कारण होता है कि हमारी तर्क अभी यह सत्यापित नहीं करती है कि क्या पात्र वास्तव में उस क्षण में कूदने की अनुमति है। यह केवल यह जाँचता है कि क्या कूदने की कुंजी दबाई गई है, और फिर तत्काल कूदने के फ़ंक्शन को कॉल करता है।
ज्यादातर खेलों में, हम नहीं चाहते कि खिलाड़ी हवा में अनंत कूद करें। आमतौर पर, खिलाड़ी केवल तभी कूदना चाहिए जब वह जमीन को छू रहा हो।
सौभाग्य से, Cave में इसे हल करना बहुत सरल है।
इसके लिए, हम On Ground नोड का उपयोग करेंगे।
On Ground नोड एक बूलियन मान लौटाता है जो यह इंगित करता है कि पात्र वर्तमान में जमीन को छू रहा है या नहीं।
तो अब, एक ही शर्त की जाँच करने के बजाय, हम दो शर्तों की जाँच करेंगे:
- क्या कूद की कुंजी दबाई गई है?
- क्या पात्र जमीन पर है?
केवल तब जब दोनों शर्तें उचित हों, Jump नोड को निष्पादित किया जाना चाहिए।
तर्क यह हो जाता है:
- पहले, जांचें कि क्या Space कुंजी दबाई गई थी।
- यदि सत्य है, तो जांचें कि क्या Player जमीन पर है।
- यदि Player जमीन पर है, तो Jump निष्पादित करें।
- यदि Player जमीन पर नहीं है, तो कुछ नहीं करें।
यह पात्र को हवा में अनंत कूदने से रोकता है।

इस जमीन की जाँच के साथ, कूदने की तर्क एक मूल Player नियंत्रक के लिए अधिक सही हो जाती है।
अब Player केवल तभी कूदेगा जब कूदने की कुंजी दबाई जाए और Character Component यह रिपोर्ट करे कि Player वर्तमान में जमीन पर है। यह मूल संरचना है जिसे आप Cave में कई गेमप्ले क्रियाओं के लिए इस्तेमाल करेंगे: पहले इनपुट की जाँच करें, फिर जांचें कि क्या कार्रवाई की अनुमति है, और केवल तब कार्रवाई निष्पादित करें।