GMS2 प्रोजेक्ट वर्कफ़्लो: फ़ोल्डर खोलने से लेकर प्लेटेस्ट तक
03
परिदृश्य
एक ऐसा प्रोजेक्ट जहां कैमरा हिलता है
अक्सर लोग आज के GameMaker की बात करते समय GMS2 शब्द का प्रयोग करते हैं। मान लीजिए आपका प्लेयर आगे-पीछे चल रहा है और कैमरा ज़टर कर रहा है क्योंकि पोज़िशन में फ़्रैक्शनल वैल्यूज़ हैं। आप प्रोजेक्ट फ़ोल्डर खोलते हैं, लक्षण को 1 वाक्य में बताते हैं और PixelTread को कोड ढूंढने देते हैं। एजेंट list_dir और glob से फ़ोल्डर मैप करता है, मूवमेंट और कैमरा स्क्रिप्ट्स को read_file से पढ़ता है, और एक छोटा बदलाव डिफ़ के रूप में सुझाता है। तब तक कुछ नहीं बदलता जब तक आप तय न करें, इसलिए पहली सत्र यह सीखने का एक सुरक्षित तरीका भी है कि हर टूल क्या करता है। यह लूप ज्यादातर छोटे बग्स के लिए काम करता है: बताएं, पढ़ें, समीक्षा करें, टेस्ट करें। हर पास एडिटर में खत्म होता है, जहां आप प्ले दबाते हैं और नतीजा खुद देखते हैं। अगर पहला फ़िक्स काफी नहीं है, तो आप बताएं कि क्या बदला है और अगला कार्ड पिछले पर आधारित होगा। काम करते समय प्रोजेक्ट को एडिटर में खुला रखें।
01
फ़ोल्डर खोलें
चैट के वर्किंग फ़ोल्डर के रूप में अपना GameMaker प्रोजेक्ट फ़ोल्डर चुनें, ताकि फ़ाइल टूल्स आपकी स्क्रिप्ट्स और प्रोजेक्ट की टेक्स्ट फ़ाइलों को देख सकें। हर बग के लिए एक नई चैट शुरू करें, जिससे हर कनवर्सेशन एक समस्या और एक डिफ़ पर केंद्रित रहे। वर्किंग फ़ोल्डर फ़ाइल टूल्स के लिए सीमा है, इसलिए इसे प्रोजेक्ट पर पॉइंट करें और कुछ और नहीं। उस फ़ोल्डर के बाहर की कोई चीज़ फ़ाइल टूल्स के कवरेज में नहीं है।
02
समस्या का वर्णन करें
वर्णन करें कि आपको क्या दिख रहा है और कहाँ, उदाहरण के लिए कि प्लेयर के मुड़ने के दौरान कैमरा हिलता है, और अगर आपको पता है तो स्क्रिप्ट का जिक्र करें। एक विशिष्ट लक्षण एजेंट को grep से खोजने के लिए कुछ देता है। बताएं कि आपने पहले क्या कोशिश की थी, क्योंकि इससे एजेंट उसे दोहराने से बचता है। छोटे वाक्य अच्छे काम करते हैं।
03
डिफ़ की समीक्षा करें
हर कार्ड पढ़ें, डिफ़ खोलें और केवल वही लाइनें स्वीकार करें जिन्हें आप समझते हैं। बाकी को अस्वीकार करें और बताएं क्यों, और एजेंट फिर से कोशिश करता है। Ask first मोड हर उस एक्शन से पहले रुक जाता है जो फ़ाइल बदलता है, इसलिए कुछ भी आपके बैकग्राउंड में सेव नहीं होता। पूरा डिफ़ देखने के लिए एक्सपैंडेड कार्ड खोलें, न कि केवल सारांश लाइन।
04
बिल्ड करें और टेस्ट करें
GameMaker एडिटर में अपना बिल्ड चलाएं, रूम चलाएं, और रिपोर्ट करें कि आपको क्या दिखता है ताकि अगला कदम तथ्यों से शुरू हो। अगर बिल्ड फेल होता है, तो लॉग को फ़ोल्डर में एक फ़ाइल में पेस्ट करें और एजेंट को उसे पढ़ने दें। फिर चैट में नतीजा लिखें, ताकि अगली रिक्वेस्ट का स्पष्ट शुरुआती बिंदु हो। हर स्वीकृत बदलाव के बाद उसी रूम में वही टेस्ट चलाएं।
एक छोटी मूवमेंट स्क्रिप्ट
PixelTread · पोज़िशन को राउंड करें● Ask first
कैमरा ज़टर रोकने के लिए ड्रॉ करने से पहले प्लेयर की पोज़िशन राउंड करें।
read_filescr_move.gmlread
grepdraw_sprite3 matches
edit_filescr_move.gml+2 lines
Shellbuildexit 0
अगले चरण से पहले आपकी अनुमति की प्रतीक्षाअस्वीकार करेंस्वीकार करें
scr_move.gml
// Move an object with the arrow keys
function scr_move(_speed) {
var _r = keyboard_check(vk_right);
var _l = keyboard_check(vk_left);
var _d = keyboard_check(vk_down);
var _u = keyboard_check(vk_up);
x += (_r - _l) * _speed;
y += (_d - _u) * _speed;
// keep the position on whole pixels
x = round(x);
y = round(y);
}
यह फ़ंक्शन keyboard_check के साथ तीर के बटन पढ़ता है, x और y को स्पीड वैल्यू से मूव करता है, और दोनों को राउंड करता है ताकि स्प्राइट पूर्ण पिक्सेलों पर ड्रॉ हो। राउंडिंग ऊपर बताए गए हिलने का फ़िक्स है। इस जैसी स्क्रिप्ट्स को एजेंट ठीक से खोल सकता है, बदल सकता है और डिफ़ के रूप में दिखा सकता है, और आप इसे एक मिनट में एक रूम में टेस्ट कर सकते हैं। इसे पहले एक स्क्रिप्ट एसेट के रूप में सेव करें, और एक समय में एक लाइन बदलें। एजेंट से हर बदलाव के ऊपर एक कमेंट जोड़ने के लिए कहें ताकि आप बाद में उसे ढूंढ सकें। _speed जैसे प्लेसहोल्डर नाम आसानी से बदले जा सकते हैं।
game maker studio 2 में शुरू किए गए प्रोजेक्ट्स के लिए चार कार्य
अपनी खुद की स्क्रिप्ट्स बदलकर सीखें
लोग अक्सर पूछते हैं कि GameMaker कोडिंग को वास्तव में कैसे सीखा जाए, और एक अच्छा जवाब है असली स्क्रिप्ट्स बदलना और देखना कि क्या होता है। एक छोटा प्रोजेक्ट खोलें और एजेंट से एक स्क्रिप्ट लाइन-दर-लाइन समझाने के लिए कहें। यह read_file से फ़ाइल पढ़ता है और web_search का उपयोग करके आधिकारिक मैनुअल से फ़ंक्शन नाम उद्धृत करता है। फिर एक छोटे बदलाव के लिए कहें, जैसे तेज़ वॉक स्पीड। Ask first मोड में डिफ़ पढ़ें, इसे स्वीकार करें, बिल्ड करें और प्ले करें। हर दिन एक नए बदलाव के साथ दोहराएं, और एजेंट से write_file के साथ एक नोट्स फ़ाइल लिखने के लिए कहें, ताकि आप हर एडिट से क्या सीखा, उसे बाद में देख सकें। धीमी प्रगति भी प्रगति है।
एक स्प्राइट को धुंधले हिस्से के साथ ड्रॉ करें
आप शायद स्प्राइट के केवल एक हिस्से को पारदर्शी बनाना चाहते हैं, उदाहरण के लिए पानी में खड़े एक किरदार का निचला आधा हिस्सा। एजेंट read_file के साथ आपकी draw स्क्रिप्ट पढ़ता है, grep के साथ मौजूदा draw कॉल खोजता है और edit_file बदलाव सुझाता है जो draw_sprite_part_ext के साथ स्प्राइट को दो टुकड़ों में ड्रॉ करता है, उनमें से एक में कम alpha वैल्यू के साथ। Plan only आपको पहले 2 टुकड़े दिखा सकता है। छोटा और टेस्टेबल। डिफ़ स्वीकार करें, रूम चलाएं, और पिक्सेल लेवल पर दोनों हिस्सों के बीच की सीम चेक करें, क्योंकि एक पिक्सेल का गैप मूशन में आसानी से दिखता है। अगर पानी का लेवल बदलता है, तो एजेंट से स्प्लिट को एक वेरिएबल से बांधने के लिए कहें।
दीवार से टकराने से पहले मूवमेंट रोकें
किसी ऑब्जेक्ट से टकराने से पहले मूवमेंट रोकने के लिए, एक स्क्रिप्ट को अगली पोज़िशन टेस्ट करनी चाहिए और फिर ही मूव करना चाहिए। एजेंट से अपनी मूवमेंट स्क्रिप्ट पढ़ने और हर स्टेप को टार्गेट पोज़िशन पर place_meeting चेक में लपेटने के लिए कहें। edit_file कार्ड नई लाइनें दिखाता है और Shell आपके बिल्ड कमांड के एक्सिट कोड की रिपोर्ट करता है। रूम में दीवार से टकराएं। पहले डिफ़ की समीक्षा करें, फिर धीमी और तेज़ स्पीड पर टेस्ट करें, क्योंकि तेज़ ऑब्जेक्ट पतली दीवार को छोड़ सकता है, और अगर ऐसा होता है तो छोटा स्टेप मांगें। टेस्ट रूम छोटा रखें, एक दीवार और एक प्लेयर के साथ।
बिल्ड लॉग में पहली त्रुटि खोजें
एक लंबा बिल्ड लॉग उस लाइन को छिपा देता है जो मायने रखती है। लॉग को प्रोजेक्ट फ़ोल्डर में एक टेक्स्ट फ़ाइल के रूप में सेव करें, फिर एजेंट से read_file के साथ उसे खोलने और error शब्द के लिए grep से खोजने के लिए कहें। यह script नाम और लाइन के साथ पहली त्रुटि रिपोर्ट करता है, और वह स्क्रिप्ट पढ़कर edit_file के साथ फ़िक्स सुझा सकता है। पहली त्रुटि ठीक करने से अक्सर नीचे वाली त्रुटियां भी साफ़ हो जाती हैं। Ask first में डिफ़ स्वीकार करें, फिर से बिल्ड करें और देखें कि त्रुटियों की संख्या कम हुई या नहीं, इसके लिए नए लॉग को पुराने लॉग से तुलना करें। तब तक दोहराएं जब तक लॉग साफ़ न हो जाए।