विकसक कन्सोल प्रदर्शित झाल्यास काय करावे. विकसक कन्सोल कसा उघडायचा? कोडच्या तुकड्याच्या अंमलबजावणीची वेळ मोजणे

iOS वर - iPhone, iPod touch 08.02.2019
iOS वर - iPhone, iPod touch

वळण्यासाठी विकसक कन्सोल कसे वापरावे गुगल क्रोमसमानतेत मजकूर संपादक? jQuery वरून अनेकांना परिचित असलेल्या आयकॉनचा काय अर्थ होतो? $ ? मी कन्सोलमध्ये मूल्यांचा संच कसा प्रदर्शित करू शकतो, एक सुंदर सभ्य सारणी म्हणून स्वरूपित? या प्रश्नांची उत्तरे लगेच लक्षात आली नाहीत, तर टॅब कन्सोलसाधनांमधून Chrome विकसकत्याने अद्याप आपल्या सर्व वैभवात स्वतःला प्रकट केले नाही.

पहिल्या दृष्टीक्षेपात, आमच्यासमोर एक पूर्णपणे सामान्य JavaScript कन्सोल आहे, जो फक्त सर्व्हर प्रतिसाद लॉग किंवा व्हेरिएबल व्हॅल्यू प्रदर्शित करण्यासाठी योग्य आहे. तसे, जेव्हा मी पहिल्यांदा प्रोग्रामिंग सुरू केले तेव्हा मी ते कसे वापरले. तथापि, कालांतराने, मी अनुभव मिळवला, थोडे अधिक शिकले आणि अनपेक्षितपणे आढळले की Chrome कन्सोल अशा बऱ्याच गोष्टी करू शकते ज्याबद्दल मला कल्पना नव्हती. मला आज याबद्दल बोलायचे आहे. होय, जर तुम्ही सध्या मोबाईलवर वाचत नसाल तर तुम्ही हे सर्व लगेच करून पाहू शकता.

1. DOM घटक निवडणे

जर तुम्ही jQuery शी परिचित असाल, तर मला तुम्हाला यासारख्या रचनांचे महत्त्व सांगणे नाही $('.वर्ग')आणि $('id'). ज्यांना माहित नाही त्यांच्यासाठी, ते तुम्हाला नियुक्त केलेले वर्ग आणि अभिज्ञापक निर्दिष्ट करून DOM घटक निवडण्याची परवानगी देतात. विकसक कन्सोलमध्ये समान कार्यक्षमता आहे. येथे “$” चा jQuery शी काहीही संबंध नाही, जरी ते मूलत: समान गोष्ट करते. हे फंक्शनचे उपनाम आहे document.querySelector().

स्वरूपाची आज्ञा $('tagName'), $('.वर्ग'), $('#id')आणि $('.class #id')निवडकर्त्याशी जुळणारा पहिला DOM घटक परत करा. शिवाय, दस्तऐवजात jQuery उपलब्ध असल्यास, त्याचे “$” ही कार्यक्षमताकन्सोल अवरोधित केले जाईल.

येथे आणखी एक डिझाइन आहे: $$ . त्याचा वापर दिसतो $$('tagName')किंवा $$('.वर्ग'). हे तुम्हाला सिलेक्टरशी जुळणारे सर्व DOM घटक निवडण्याची आणि त्यांना ॲरेमध्ये ठेवण्याची परवानगी देते. त्याच्यासह कार्य करणे इतर ॲरेपेक्षा वेगळे नाही. विशिष्ट घटक निवडण्यासाठी, आपण अनुक्रमणिकेद्वारे त्यात प्रवेश करू शकता.

उदाहरणार्थ, आदेश $$('.className')कॉल करताना निर्दिष्ट केलेल्या वर्ग नावासह आम्हाला सर्व पृष्ठ घटकांची ॲरे प्रदान करेल. संघ $$('.className')आणि $$('.className') परिणामी ॲरेच्या पहिल्या आणि दुसऱ्या घटकांना अनुक्रमे प्रवेश देईल.



आदेशांसह प्रयोग करत आहे $ आणि $$

2. ब्राउझरला टेक्स्ट एडिटरमध्ये बदला

तुम्ही थेट ब्राउझरमध्ये डीबग करत असलेल्या वेब पेजचा मजकूर संपादित करणे चांगले होईल असा विचार तुम्ही कधी केला आहे का? जर होय, तर तुम्हाला खाली दाखवलेली कमांड आवडेल.

Document.body.contentEditable=true

कन्सोलमध्ये त्याची अंमलबजावणी केल्यानंतर, ब्राउझरमध्ये उघडलेले दस्तऐवज शोध न घेता संपादित केले जाऊ शकते. इच्छित तुकडा HTML कोड मध्ये.

3. घटकाशी बांधील इव्हेंट हँडलर शोधणे

डीबगिंग दरम्यान, तुम्हाला घटकांशी बांधील असलेले इव्हेंट हँडलर शोधण्याची आवश्यकता असू शकते. कन्सोल वापरून हे करणे खूप सोपे आहे. तुम्हाला फक्त ही कमांड वापरायची आहे:

GetEventListeners($('निवडक'))

त्याच्या अंमलबजावणीच्या परिणामस्वरुप, घटकांची एक सूची तयार केली जाईल ज्यामध्ये घटक प्रतिसाद देऊ शकतात.



कार्यक्रम हाताळणारे

विशिष्ट कार्यक्रमासाठी हँडलर शोधण्यासाठी, आपण खालील बांधकाम वापरू शकता:

GetEventListeners($('selector')).eventName.listener

ही कमांड इव्हेंट हँडलर फंक्शन कोड प्रिंट करेल. येथे कार्यक्रमाचे नावएक ॲरे आहे ज्यामध्ये सर्व इव्हेंट आहेत विशिष्ट प्रकार. उदाहरणार्थ, सराव मध्ये ते असे दिसू शकते:

GetEventListeners($('#firstName')).click.listener

परिणामी, आम्हाला इव्हेंटशी संबंधित फंक्शनचा कोड प्राप्त होईल क्लिक करा id सह घटक पहिले नाव.

4. कार्यक्रम निरीक्षण

तुम्हाला विशिष्ट DOM घटकाशी जोडलेल्या घटनांचे निरीक्षण करायचे असल्यास, कन्सोल यामध्ये मदत करू शकते. इव्हेंट्सचे निरीक्षण करण्यासाठी तुम्ही वापरू शकता अशा काही कमांड येथे आहेत.

  • संघ मॉनिटर इव्हेंट्स($('निवडक'))निवडकर्ता ज्या घटकाशी संबंधित आहे त्याच्याशी संबंधित सर्व इव्हेंटचे निरीक्षण आयोजित करण्यास तुम्हाला अनुमती देते. जेव्हा एखादी घटना घडते तेव्हा कन्सोलमध्ये एंट्री केली जाते. उदाहरणार्थ, आदेश मॉनिटर इव्हेंट्स($('#firstName'))तुम्हाला घटकाशी संबंधित सर्व इव्हेंट लॉग करण्याची अनुमती देईल ज्याचा अभिज्ञापक आहे पहिले नाव.
  • संघ मॉनिटर इव्हेंट्स($('निवडक'),'इव्हेंटचे नाव')मागील प्रमाणेच, परंतु हे एका विशिष्ट कार्यक्रमाचे लक्ष्य आहे. येथे, घटक निवडक व्यतिरिक्त, इव्हेंटचे नाव देखील फंक्शनमध्ये पास केले जाते. हा आदेश तुम्हाला कन्सोलवर एका इव्हेंटच्या घटनेबद्दल डेटा प्रदर्शित करण्यास अनुमती देईल. उदाहरणार्थ, आदेश मॉनिटर इव्हेंट्स($('#firstName'), 'क्लिक')केवळ इव्हेंटवर माहिती प्रदर्शित करेल क्लिक करा id सह घटक पहिले नाव.
  • संघ मॉनिटर इव्हेंट्स($('निवडक'),['eventName1','eventName3",...])तुम्हाला अनेक निवडक इव्हेंट्सचे निरीक्षण करण्याची परवानगी देते. येथे एक स्ट्रिंग ॲरे फंक्शनला पास केला जातो, ज्यामध्ये इव्हेंटची नावे असतात. उदाहरणार्थ, ही आज्ञा: मॉनिटर इव्हेंट्स($('#firstName'),['क्लिक','फोकस'])कन्सोलवर इव्हेंट माहिती आउटपुट करेल क्लिक कराआणि लक्ष केंद्रित id सह घटकासाठी पहिले नाव.
  • संघ अनमॉनिटर इव्हेंट्स($('निवडक'))तुम्हाला कन्सोलमधील इव्हेंटचे निरीक्षण आणि लॉगिंग थांबविण्यास अनुमती देते.

5. कोड फ्रॅगमेंटच्या अंमलबजावणीची वेळ मोजणे

IN Chrome कन्सोलपाहण्याचे कार्य उपलब्ध आहे console.time('labelName'), जे वितर्क म्हणून लेबल घेते आणि टाइमर सुरू करते. आणखी एक कार्य console.timeEnd('labelName'), टाइमर थांबवते ज्याला दिलेले लेबल नियुक्त केले आहे. ही फंक्शन्स वापरण्याचे एक उदाहरण येथे आहे:

Console.time("myTime"); // myTime console.timeEnd("myTime") असे लेबल असलेला टायमर सुरू करतो; // myTime //आउटपुट: myTime:123.00 ms असे लेबल असलेला टायमर थांबवतो

वरील उदाहरण तुम्हाला टायमर सुरू करणे आणि थांबवणे यामधील वेळ शोधू देते. तुम्ही JavaScript प्रोग्राममध्ये तेच करू शकता आणि कोडच्या तुकड्याच्या अंमलबजावणीची वेळ शोधू शकता.

समजा मला लूपचा कालावधी शोधण्याची गरज आहे. आपण हे असे करू शकता:

Console.time("myTime"); // (var i=0; i. साठी myTime लेबल केलेला टायमर सुरू करतो< 100000; i++){ 2+4+5; } console.timeEnd("mytime"); // Останавливает таймер с меткой myTime //Вывод - myTime:12345.00 ms

6. व्हेरिएबल्सची मूल्ये टेबलच्या स्वरूपात प्रदर्शित करणे

समजा आपल्याकडे यासारख्या वस्तूंचा ॲरे आहे:

Var myArray=[(a:1,b:2,c:3),(a:1,b:2,c:3,d:4),(k:11,f:22),(a:1 ,b:2,c:3)]

तुम्ही ते कन्सोलमध्ये प्रदर्शित केल्यास, तुम्हाला वस्तुंच्या ॲरेच्या स्वरूपात एक श्रेणीबद्ध रचना मिळेल. हे - उपयुक्त संधी, वस्तूंची सामग्री पाहून संरचनेच्या शाखांचा विस्तार केला जाऊ शकतो. तथापि, या दृष्टिकोनासह हे समजणे कठीण आहे, उदाहरणार्थ, समान घटकांचे गुणधर्म कसे संबंधित आहेत. अशा डेटासह कार्य करणे अधिक सोयीस्कर बनविण्यासाठी, ते रूपांतरित केले जाऊ शकतात सारणी दृश्य. हे करण्यासाठी, खालील आदेश वापरा:

Console.table(variableName)

हे आपल्याला व्हेरिएबल आणि त्याचे सर्व गुणधर्म टेबलच्या स्वरूपात प्रदर्शित करण्यास अनुमती देते. ते कसे दिसते ते येथे आहे.



सारणी म्हणून ऑब्जेक्ट्सच्या ॲरेचे आउटपुट करणे

7. घटक कोड पहा

खालील आदेशांचा वापर करून तुम्ही कन्सोलवरून घटक कोड पटकन मिळवू शकता:

  • संघ तपासणी ($('निवडक'))तुम्हाला पॅनेलमधील निवडकर्त्याशी संबंधित घटकाचा कोड उघडण्यास अनुमती देते घटकसाधने Google विकसकक्रोम. उदाहरणार्थ, आदेश तपासणी ($('#firstName'))तुम्हाला आयडेंटिफायरसह घटकाचा कोड पाहण्याची परवानगी देईल पहिले नाव. संघ तपासणी ($$('a')) DOM मध्ये उपस्थित असलेल्या चौथ्या लिंकसाठी कोड उघडेल.
  • स्वरूपाची आज्ञा $0 , $1 , $2 तुम्हाला अलीकडे पाहिलेल्या आयटमवर द्रुतपणे नेव्हिगेट करण्याची अनुमती देते. उदाहरणार्थ, $0 सर्वात अलीकडे पाहिलेल्या घटकाचा कोड उघडेल आणि असेच.

8. घटक गुणधर्मांची सूची प्रदर्शित करणे

जर तुम्हाला एखाद्या घटकाच्या गुणधर्मांची सूची पहायची असेल, तर कन्सोल यासही मदत करेल. खालील आदेश येथे वापरला जातो:

Dir($('निवडक'))

ते संबंधित गुणधर्म असलेली वस्तू परत करते दिलेला घटकडोम इतरांप्रमाणेच समान प्रकरणे, या ऑब्जेक्टची सामग्री त्याच्या झाडाची रचना पाहून शोधली जाऊ शकते.

9. प्राप्त झालेल्या शेवटच्या निकालाला कॉल करणे

कन्सोलचा वापर कॅल्क्युलेटर म्हणून केला जाऊ शकतो, जसे की प्रत्येकाला माहित आहे. परंतु काही लोकांना माहित आहे की त्यात अंगभूत साधने आहेत जी तुम्हाला मागील गणनेचे परिणाम कमांडमध्ये वापरण्याची परवानगी देतात. रचना करून $_ आपण मेमरीमधून मागील अभिव्यक्तीचा परिणाम पुनर्प्राप्त करू शकता. हे असे दिसते:

2+3+4 9 //- बेरीजचा परिणाम 9 $_ 9 आहे // मिळालेला शेवटचा निकाल प्रदर्शित केला जातो $_ * $_ 81 // शेवटचा निकाल 9 असल्याने, आम्हाला 81 Math.sqrt($) मिळतात _) 9 // वर्गमुळपासून शेवटचा निकाल, जे 81 $_ 9 च्या बरोबरीचे होते // आम्हाला पुन्हा 9 मिळतात - मागील गणनेचा परिणाम

10. कन्सोल आणि मेमरी साफ करणे

तुम्हाला कन्सोल आणि मेमरी साफ करायची असल्यास, ही सोपी कमांड वापरा:

एंटर दाबल्यानंतर, स्वच्छ कन्सोल नवीन प्रयोगांसाठी तयार होईल.
इतकंच.

11, 12, 13, 14…

खरे सांगायचे तर, हे सर्व नाही. मी त्यापैकी फक्त काही दाखवले स्पष्ट नसलेल्या संधी Google कन्सोलक्रोम. खरं तर, त्यापैकी बरेच आहेत. मला खात्री आहे की तुम्ही तुमच्या स्वतःच्या शोधांसह माझी यादी वाढवू शकता.

मला आशा आहे की माझ्या कथेने तुम्हाला Chrome कन्सोलबद्दल काहीतरी उपयुक्त, वेळ वाचवण्यास मदत केली आहे जी वेब प्रोग्रामरच्या दैनंदिन शस्त्रागाराचा भाग बनण्यास पात्र आहे.

कन्सोलच्या क्षमतेच्या विहंगावलोकनसाठी.

सामग्री

कन्सोलमध्ये मुद्रण

कन्सोलवर मजकूर इनपुट सर्व मॉड्यूल्समधून उपलब्ध आहे आणि Tier() द्वारे नियंत्रित केले जाते. 3 आहेत अतिरिक्त आदेश Msg() , DevMsg() आणि Warning() जे स्वरूपित स्ट्रिंग आउटपुट जसे की sprintf() समर्थन करतात:

DevMsg (char const* pMsg, ...) - फक्त विकसक मोडमध्ये Msg(char const* pMsg, ...) - नेहमी, पांढरा मजकूर चेतावणी(char const *pMsg, ...) - नेहमी, लाल मजकूर

च्या साठी मागास सहत्वता Con_Printf() आणि Con_DPrintf() कमांड HL1 वरून कायम ठेवल्या आहेत.

आदेशांची अंमलबजावणी

कमांड्स (स्ट्रिंग) कार्यान्वित करण्यासाठी इंजिन सर्व्हर आणि क्लायंट इंटरफेस वापरते. सर्व्हर IVEngineServer::ServerCommand() इंटरफेस वापरतो:

इंजिन->सर्व्हरकमांड("चेंजलेव्हल डी_डस्ट\n");

क्लायंट IVEngineClient इंटरफेस वापरतो आणि दोन कमांड्समधून निवडतो, जी कमांड क्लायंटवर प्रथम अंमलात आणली जाईल की थेट सर्व्हरवर पाठविली जाईल हे निर्धारित करते:

इंजिन->सर्व्हरसीएमडी("से हॅलो\n"); // सर्व्हरला कमांड पाठवा

इंजिन->ClientCmd("से हॅलो\n"); // क्लायंटवर कमांड कार्यान्वित करा

नवीन कमांड आणि व्हेरिएबल्स जोडत आहे

डेव्हलपर कन्सोल ही सोर्स इंजिनची उपप्रणाली आहे जी यामध्ये प्रवेश देते विविध मॉड्यूल्स, हे ICvar इंटरफेसद्वारे केले जाते (पहा \public\icvar.h). हा इंटरफेस नवीन कमांड्सची नोंदणी करतो आणि विद्यमान कमांड्स शोधतो. हा इंटरफेस क्लायंट-सर्व्हर कोड (इंजिन कोडमधील cv) मधील ग्लोबल व्हेरिएबल CVAR द्वारे उपलब्ध आहे. कन्सोल आदेश ConCommand वर्गाशी संबंधित आहेत, आणि ConVar कन्सोल व्हेरिएबल्स, जे दोन्ही येतात बेस वर्ग ConCommandBase (पहा \public\convar.h).

नवीन कमांड आणि व्हेरिएबल्स जोडणे अगदी सोपे आहे आणि सर्व्हर आणि क्लायंट (संपूर्ण इंजिनसाठी समान) मॉड्यूल दोन्हीसाठी वापरले जाऊ शकते. या वर्गांचे कन्स्ट्रक्टर आपोआप नोंदणी करतात नवीन संघकन्सोल प्रणालीमध्ये /व्हेरिएबल. या लहान उदाहरणकोड एक नवीन कमांड my_function आणि नवीन व्हेरिएबल my_variable 42 वर इनिशियलाइज जोडतो:

#समाविष्ट करा ConVar my_variable("my_variable", "42", FCVAR_ARCHIVE, "माझा आवडता नंबर"); void MyFunction_f(void) ( संदेश("हे माझे कार्य आहे\n"); ) ConCommand my_function("my_function", MyFunction_f, "एक संदेश दाखवते.", FCVAR_CHEAT);

या सामान्य वापरजेव्हा ऑब्जेक्टचे नाव आणि कमांड समान असतात आणि व्हेरिएबल्स फक्त एका स्त्रोत कोडमध्ये वापरले जातात तेव्हा त्यांचे वर्णन स्थिर म्हणून केले जाते.

ConVar क्लास वापरणे

प्रथम, सर्वात जास्त वापरलेले ConVar कन्स्ट्रक्टर पाहू:

ConVar(char const *pName, char const *pDefaultValue, int झेंडे, char const *pHelpString)

पहिला युक्तिवाद pName हे व्हेरिएबलचे नाव आहे (स्पेस नाही), पुढील वितर्क pDefaultValue नेहमी एक स्ट्रिंग असते, अगदी ConVar "s सह संख्यात्मक मूल्ये. फ्लॅग्स व्हेरिएबलची विशेष वैशिष्ट्ये परिभाषित करतात; pHelpString वापरणे चांगली कल्पना आहे जेणेकरून वापरकर्त्यांना व्हेरिएबल कशासाठी आहे हे समजू शकेल. ConVars एका विशिष्ट प्रकारापुरते मर्यादित नाहीत; त्यांचे मूल्य पूर्णांक, वास्तविक किंवा स्ट्रिंग असू शकते आणि आपण ते वापरू शकता. जोपर्यंत तुमच्याकडे स्वतः ConVar ऑब्जेक्ट किंवा पॉइंटर आहे तोपर्यंत तुम्ही त्याचे मूल्य थेट पाहू शकता आणि बदलू शकता. ही सर्व उदाहरणे बरोबर आहेत आणि समान परिणाम देईल:

जर (my_variable.GetInt() == 42) DoSomething(); if (my_variable.GetFloat() == 42.0f) DoSomething(); जर (strcmp(my_variable.GetString(), "42")==0) DoSomething();

ConVar चे मूल्य सेट करण्यासाठी तुम्ही कोणताही डेटा प्रकार वापरून SetValue() फंक्शन वापरणे आवश्यक आहे:

My_variable.SetValue(42); my_variable.SetValue(42.0f); my_variable.SetValue("42");

कोणत्याही वेळी, तुम्ही रिव्हर्ट() फंक्शन वापरून ] व्हॅल्यू त्याच्या डीफॉल्ट मूल्यावर रीसेट करू शकता.

जर ConVar मध्ये तयार केले असेल भिन्न मॉड्यूल, नंतर ICvar इंटरफेसमध्ये FindVar() फंक्शन व्हेरिएबलचे नाव सेट केल्यास ऑब्जेक्टला पॉइंटर मिळवण्यासाठी वापरले जाते. येथे एक साधे उदाहरण आहे जे इंजिन मॉड्यूलमध्ये परिभाषित केलेले ConVar sv_cheats स्थापित केले आहे की नाही हे तपासते:

ConVar *pCheats = cvar->FindVar("sv_cheats"); जर (pCheats && pCheats->GetInt() == 1) AllowCheating();

श्रेणी योग्य मूल्येदुसऱ्या कन्स्ट्रक्टरचा वापर करून अंकीय ConVars साठी परिभाषित केले जाऊ शकते. नंतर कन्सोल सिस्टीमद्वारे ConVar स्वयंचलितपणे तपासले जाते जेव्हा ते व्यक्तिचलितपणे बदलले जाते. जर एंटर केलेला क्रमांक श्रेणीबाहेर असेल, तर तो पुढील योग्य मूल्यापर्यंत पूर्ण केला जातो. 1 ते 100 पर्यंत योग्य मूल्यांची श्रेणी सेट करणे:

ConVar my_variable("my_variable", "42", 0, "helptext", true, 1, true, 100);

काहीवेळा जेव्हा वापरकर्ता किंवा इतर उपप्रणाली तुमच्या ConVar चे मूल्य बदलते तेव्हा तुम्हाला सूचित करायचे असते, त्यामुळे कॉलबॅक फंक्शन सेट केले जाऊ शकते:

स्टॅटिक व्हॉइड OnChangeMyVariable (ConVar *var, char const *pOldString) ( DevMsg("ConVar %s %s वरून %s\n", var->GetName(), pOldString, var->GetString());) ConVar my_variable("my_variable", "42", 0, "माझा आवडता क्रमांक", OnChangeMyVariable);

ConCommand वर्ग वापरणे

वर्ग ConCommand ConVar पेक्षा सोपे आहे आणि फक्त एक कन्स्ट्रक्टर आहे:

ConCommand(char const *pName, FnCommandCallback कॉलबॅक, char const *pHelpString = 0, int फ्लॅग्स = 0, FnCommandCompletionCallback पूर्णता फंक = 0);

ConVar प्रमाणे, pName कमांडचे नाव निर्दिष्ट करते (स्पेस नाही!). कॉलबॅक हे फंक्शन कार्यान्वित केले जाते जेव्हा वापरकर्ता ही कमांड कार्यान्वित करतो, pHelpString आणि फ्लॅग्जमध्ये ConVar प्रमाणेच कार्ये असतात. ConCommands पहिल्या पॅरामीटरसाठी स्वयंपूर्णतेचे समर्थन करते, विशेषत: जेव्हा फाइल्सवर प्रक्रिया करण्यासाठी वापरले जाते. उदाहरणार्थ, तुम्ही loadtext lt;textfilegt ही कमांड वापरता. जे इनपुटसाठी .txt फाइल गृहीत धरते, कन्सोल सर्व उपलब्ध .txt फाइल्स शोधते आणि वापरकर्त्याला सूचीमधून एक निवडण्याची परवानगी देते. बरोबर असल्यास, CompletionFunc पास होते, प्रत्येक वेळी कन्सोल सिस्टमला उपलब्ध वितर्कांची सूची आवश्यक असताना ते कॉल केले जाते.

जेव्हा कॉलबॅक फंक्शन कार्यान्वित केले जाते, तेव्हा पॅरामीटर्स कन्सोलमध्ये प्रविष्ट केले जातात नाहीफंक्शन आर्ग्युमेंट्स म्हणून पुरवले जातात. कॉलबॅक फंक्शन्सना इंजिन इंटरफेस फंक्शन Cmd_Argc() वापरून किती वितर्क प्राप्त झाले आहेत हे इंजिनला विचारणे आवश्यक आहे. त्यानंतर तुम्ही Cmd_Argv(index) वापरून वैयक्तिक वितर्क मिळवू शकता, जेथे अनुक्रमणिका 1 हा पहिला युक्तिवाद आहे. वितर्क नेहमी स्ट्रिंग म्हणून परत केले जातात.

Void MySay_f (void) ( जर (इंजिन->Cmd_Argc()< 1) { Msg(""Usage: my_say \n"); परत; ) संदेश ("मी म्हणतो: %s\n", इंजिन->Cmd_Argv(1)); ) ConCommand my_say("my_say", MySay_f, "काहीतरी सांगा", 0);

साधी स्वयं पूर्णता यादी कशी तयार करायची याचे हे उदाहरण आहे. अपूर्ण पॅरामीटर येथे वापरलेले नाही; त्यात फार पूर्वी एंटर केलेले वर्ण आहेत (स्वतः कमांडच्या नावासह):

स्टॅटिक इंट MySayAutoComplete (char const *आंशिक, char कमांड[ COMMAND_COMPLETION_MAXITEinMS ][ COMMAND_COMPLETION_ITEM_LENGTH ]) ( strcpy(commands, "hello"); strcpy(commands, "goodbye"); रिटर्न 2; //"माझ्या आदेशांची संख्या my_say", MySay_f, "काहीतरी म्हणा", 0, MySayAutoComplete);

FCVAR_ध्वज

कन्सोल कमांड/व्हेरिएबल्स हे ध्वज वापरतात ज्यांची विशिष्ट वैशिष्ट्ये आहेत आणि ती काळजीपूर्वक हाताळली पाहिजेत. हे ध्वज कन्स्ट्रक्टरद्वारे वापरले जातात आणि ConCommandBase::AddFlags() (अनेकदा वापरले जात नाहीत) वापरून बदलले जाऊ शकतात. मध्ये व्यतिरिक्त हे ध्वज बदलणे शक्य नाही स्रोत कोडफसवणूक टाळण्यासाठी. काही ध्वज स्वहस्ते सेट करणे आवश्यक आहे, इतर कन्सोल सिस्टमद्वारे स्वयंचलितपणे सेट केले जातात:

FCVAR_LAUNCHER, FCVAR_GAMEDLL, FCVAR_CLIENTDLL, FCVAR_MATERIAL_SYSTEM, FCVAR_STUDIORENDER

हे ध्वज नोंदणी प्रक्रियेदरम्यान सेट केले जातात आणि कमांड तयार केलेल्या मॉड्यूलकडे निर्देशित करतात (तुम्हाला ते सेट करण्याची आवश्यकता नाही). खालील ध्वज स्वहस्ते सेट करणे आवश्यक आहे:

FCVAR_CHEAT
ते डीबगिंगसाठी वापरले जातात आणि मॉड आणि मॅप डेव्हलपरना आवश्यक असू शकतात या वस्तुस्थितीमुळे ते रिलीझमधून काढले जात नाहीत. दुर्दैवाने, आम्ही सामान्य खेळाडूंना ही डीबगिंग साधने वापरण्याची परवानगी देऊ शकत नाही कारण हे इतर खेळाडूंसाठी (फसवणूक) अन्यायकारक असेल. चांगला नियमजोपर्यंत खेळाडूंसाठी हा अंतिम आणि कायदेशीर पर्याय नाही तोपर्यंत तुम्ही जोडलेल्या सर्व नवीन कन्सोल कमांडमध्ये FCVAR_CHEAT जोडा. अनुभव दर्शवितो की सर्वात निरुपद्रवी डीबगिंग कमांड्स देखील एक प्रकारे किंवा दुसर्या प्रकारे फसवणूक म्हणून वापरल्या जाऊ शकतात.

गेम सर्व्हर sv_cheats सेट करून फसवणूक करण्यास परवानगी आहे की नाही हे ठरवते. जर एखाद्या क्लायंटने अशा सर्व्हरशी कनेक्ट केले असेल जेथे फसवणूक अक्षम केली असेल (डीफॉल्ट असावी), FCVAR_CHEAT चिन्हांकित केलेले सर्व क्लायंट कन्सोल व्हेरिएबल्स त्यांच्या डीफॉल्ट मूल्यावर परत केले जातात आणि जोपर्यंत क्लायंट कनेक्ट केलेले आहे तोपर्यंत बदलले जाऊ शकत नाही. FCVAR_CHEAT चिन्हांकित कन्सोल आदेश देखील कार्यान्वित केले जाऊ शकत नाहीत.

FCVAR_USERINFO
काही कन्सोल व्हेरिएबल्समध्ये क्लायंट माहिती असते जी सर्व्हरला माहित असणे आवश्यक असते, जसे की वापरकर्तानाव किंवा वापरकर्तानाव सेटिंग्ज. हे व्हेरिएबल्स FCVAR_USERINFO ध्वजाने चिन्हांकित केले जातील, त्यानंतर ते सर्व्हरशी वचनबद्ध असतील आणि वापरकर्त्याने प्रत्येक वेळी ते बदलल्यावर ते अपडेट केले जातील. जेव्हा वापरकर्ता हे व्हेरिएबल्स बदलतो, तेव्हा इंजिन ClientSettingsChanged() वापरून सर्व्हर कोड सूचित करते. सर्व्हर नंतर इंजिन वैयक्तिक विनंती करू शकता क्लायंट सेटिंग्ज GetClientConVarValue() वापरून.
FCVAR_REPLICATED
गेम सर्व्हर आणि क्लायंट वापर सामान्य कोड, त्यामुळे दोन्ही बाजूंनी समान डेटा वापरून समान मार्गाचा अवलंब करणे महत्त्वाचे आहे (उदाहरणार्थ, हालचाल/शस्त्र अंदाज, खेळाचे नियम). हा कोड कन्सोल व्हेरिएबल्स वापरत असल्यास, त्यांच्याकडे असणे आवश्यक आहे समान मूल्येदोन्ही बाजूंनी. FCVAR_REPLICATED ध्वज हे सुनिश्चित करतो की मूल्ये सर्व क्लायंटना पाठवली जातात. कनेक्ट केलेले असताना, क्लायंट ही मूल्ये बदलू शकत नाहीत कारण ते सर्व्हर मूल्ये वापरतील.
FCVAR_ARCHIVE
काही कन्सोल व्हेरिएबल्समध्ये असतात सानुकूल सेटिंग्जप्रत्येक वेळी गेम लॉन्च झाल्यावर आम्ही ते पुनर्संचयित करू इच्छितो (नाव किंवा नेटवर्क_रेट म्हणून). कन्सोल व्हेरिएबलला FCVAR_ARCHIVE असे चिन्हांकित केले असल्यास, गेम संपल्यावर तो config.cfg फाइलमध्ये सेव्ह केला जातो आणि पुढच्या वेळी तो लॉन्च झाल्यावर लोड केला जाईल. (तसेच, host_writeconfig कमांड फाइलमध्ये सर्व FCVAR_ARCHIVE मूल्ये जतन करेल.)
FCVAR_NOTIFY
जर कन्सोल व्हेरिएबल FCVAR_NOTIFY चिन्हांकित केले असेल तर, जेव्हाही व्हेरिएबल बदलला जातो तेव्हा सर्व्हर सर्व क्लायंटना संदेश पाठवतो. हे सर्व खेळाडूंसाठी (उदाहरणार्थ mp_friendlyfire) महत्त्वाचे असलेल्या गेम बदलणाऱ्या व्हेरिएबल्ससाठी वापरले जावे.
FCVAR_PROTECTED
हे कन्सोल व्हेरिएबल असलेले आहे खाजगी माहिती(उदाहरणार्थ पासवर्ड), तो इतर वापरकर्त्यांना दिसावा अशी आमची इच्छा नाही. हे करण्यासाठी, ही माहिती गोपनीय म्हणून चिन्हांकित करण्यासाठी FCVAR_PROTECTED ध्वज सेट करणे आवश्यक आहे.
FCVAR_SPONLY
कधीकधी कमांड कार्यान्वित करणे किंवा व्हेरिएबल बदलणे केवळ एकल-वापरकर्ता मोडमध्ये योग्य असू शकते, नंतर कमांडला FCVAR_SPONLY म्हणून चिन्हांकित करा.
FCVAR_PRINTABLEONLY
काही महत्त्वाचे व्हेरिएबल्स हेवी किंवा ब्रॉडकास्ट आहेत (उदाहरणार्थ, गेमचे नियम) आणि त्यात फक्त छापण्यायोग्य अक्षरे आहेत (उदाहरणार्थ, कोणतेही नियंत्रण वर्ण नाहीत) हे महत्त्वाचे आहे.
FCVAR_NEVER_AS_STRING
हा ध्वज इंजिनला हे व्हेरिएबल कधीही स्ट्रिंग म्हणून आउटपुट करू नका कारण त्यात नियंत्रण वर्णांचा क्रम आहे.
FCVAR_DEMO
जेव्हा तुम्ही डेमो फाइल रेकॉर्ड करणे सुरू करता, तेव्हा ती योग्यरित्या प्ले होईल याची खात्री करण्यासाठी रेकॉर्डिंगमध्ये काही कन्सोल व्हेरिएबल्स जोडणे आवश्यक आहे.
FCVAR_DONTRECORD
हे FCVAR_DEMO च्या विरुद्ध आहे, काही कन्सोल व्हेरिएबल्स डेमो फाइल्सवर लिहू नयेत.

कमांड API Chrome स्ट्रिंग DevTools मध्ये समाविष्ट आहे मोठ्या संख्येने सोयीस्कर कार्येअंमलबजावणीसाठी साधी कामे: DOM घटक निवडणे आणि तपासणे, डेटा प्रदर्शित करणे वाचनीय स्वरूप, प्रोफाइलर चालवणे आणि तपासणे आणि DOM इव्हेंटचे निरीक्षण करणे.

टीप:हे API फक्त कन्सोलमध्ये उपलब्ध आहे. मध्ये प्रवेश मिळवा कमांड लाइनपृष्ठावरील स्क्रिप्टमधील API शक्य नाही.

$_

$_ अंमलात आणलेल्या शेवटच्या अभिव्यक्तीचे मूल्य परत करते.

खालील उदाहरण साध्या अभिव्यक्तीचे मूल्यमापन करते (2 + 2). नंतर $_ कार्यान्वित केले जाते आणि समान मूल्य नियुक्त केले जाते:

या उदाहरणात, कार्यान्वित केलेल्या अभिव्यक्तीमध्ये नावांची ॲरे आहे. $_.length कार्यान्वित केल्याने ॲरेची लांबी मिळेल आणि $_ अभिव्यक्ती स्वतःच अंमलात आणलेल्या शेवटच्या अभिव्यक्तीचे मूल्य घेईल, जे 4 आहे:

$0 – $4

$0 , $1 , $2 , $3 आणि $4 कमांड एलिमेंट्स पॅनलमध्ये पाहिलेल्या शेवटच्या 5 DOM घटकांसाठी किंवा प्रोफाइल पॅनेलमध्ये निवडलेल्या ढीगमधील शेवटच्या 5 JS ऑब्जेक्ट्ससाठी संदर्भ म्हणून काम करतात. $0 शेवटी निवडलेला घटक किंवा ऑब्जेक्ट परत करतो, $1 त्याच्या आधीचा एक परत करतो आणि असेच.

खालील उदाहरणामध्ये, वर्ग माध्यमाचा घटक घटक पॅनेलमध्ये निवडला आहे. कन्सोलमध्ये, $0 ने समान मूल्य घेतले:

खालील प्रतिमेमध्ये, त्याच पृष्ठावरील दुसरा घटक निवडला आहे. $0 आता या घटकाचा आणि $1 मागील घटकाचा संदर्भ देते:

$(निवडक)

$(निवडक) निर्दिष्ट CSS निवडकासह पहिल्या DOM घटकाचा संदर्भ परत करतो. हे फंक्शन document.querySelector() फंक्शनसाठी शॉर्टहँड आहे.

क्लिक करा राईट क्लिकनिकालावर माऊस करा आणि DOM मधील घटक शोधण्यासाठी "एलिमेंट्स पॅनेलमध्ये प्रकट करा" निवडा किंवा ते पृष्ठावर पाहण्यासाठी "दृश्यासाठी स्क्रोल करा" निवडा.

टीप:जर तुम्ही $ चिन्ह वापरणाऱ्या jQuery सारख्या लायब्ररी वापरत असाल तर त्या लायब्ररीची कार्यक्षमता वापरली जाईल.

$$(निवडक)

$$(निवडक) निर्दिष्ट सिलेक्टर असलेले घटकांचे ॲरे मिळवते. ही आज्ञा document.querySelectorAll() कॉलिंगच्या समतुल्य आहे.

खालील उदाहरण सर्व घटकांची ॲरे तयार करण्यासाठी $$() वापरते दस्तऐवजात आणि प्रत्येक घटकाची src मालमत्ता परत करते:

Var प्रतिमा = $$("img"); साठी (प्रतिमांमधील प्रत्येक) ( console.log(images.src); )

टीप:कन्सोलमध्ये जाण्यासाठी Shift + Enter दाबा नवीन ओळस्क्रिप्ट न चालवता.

$x(पथ)

$x(पथ) दिलेल्या XPath अभिव्यक्तीशी जुळणाऱ्या घटकांची ॲरे मिळवते.

हे उदाहरण सर्व घटक परत करेल

$x("//p")

आणि हे सर्व घटक आहेत

घटक असलेले :

$x("//p[a]")

स्पष्ट()

clear() कन्सोल इतिहास साफ करते.

साफ ();

कॉपी (वस्तू)

कॉपी(ऑब्जेक्ट) निर्दिष्ट ऑब्जेक्टचे स्ट्रिंग प्रतिनिधित्व क्लिपबोर्डवर कॉपी करते.

कॉपी($0);

डीबग (फंक्शन)

जेव्हा हे कार्य कॉल केले जाते, तेव्हा डीबगर कॉल केला जातो, जो तुम्हाला स्त्रोत पॅनेलमध्ये चरण-दर-चरण कार्यान्वित करण्यास अनुमती देतो.

डीबग (गेटडेटा);

डीबगिंग समाप्त करण्यासाठी undebug(fn) वापरा किंवा सर्व ब्रेकपॉइंट्स काढण्यासाठी इंटरफेस वापरा.

dir(वस्तू)

dir(ऑब्जेक्ट) निर्दिष्ट ऑब्जेक्टच्या सर्व गुणधर्मांची सूची प्रदर्शित करते. ही पद्धत console.dir() पद्धतीसाठी बदली आहे.

खालील उदाहरण कमांड लाइनवर document.body कॉल करणे आणि समान घटक प्रदर्शित करण्यासाठी dir() वापरणे यात फरक दर्शविते:

डॉक्युमेंट.बॉडी; dir(document.body);

अधिक माहितीसाठी, कन्सोल API चा console.dir() विभाग पहा.

dirxml(ऑब्जेक्ट)

dirxml(ऑब्जेक्ट) निर्दिष्ट ऑब्जेक्टचे XML प्रतिनिधित्व आउटपुट करते. ही पद्धत console.dirxml() पद्धतीशी समतुल्य आहे.

तपासणी (वस्तू/कार्य)

inspect(ऑब्जेक्ट/फंक्शन) उघडते आणि योग्य पॅनेलमधील निर्दिष्ट घटक किंवा ऑब्जेक्ट निवडते: घटक किंवा प्रोफाइल.

हे उदाहरण घटक पॅनेलमध्ये document.body उघडते:

तपासणी (document.body);

जेव्हा तुम्ही फंक्शन पास करता, तेव्हा ते स्त्रोत पॅनेलमध्ये दस्तऐवज उघडते.

getEventListeners(ऑब्जेक्ट)

getEventListeners(ऑब्जेक्ट) सर्व इव्हेंट श्रोत्यांना निर्दिष्ट ऑब्जेक्टशी बांधील आहे. रिटर्न व्हॅल्यू हे सर्व इव्हेंट प्रकारांसाठी ॲरे असलेले ऑब्जेक्ट आहे (उदाहरणार्थ, "क्लिक" किंवा "कीडाउन"). प्रत्येक ॲरेचे घटक प्रत्येक प्रकारच्या श्रोत्याचे वर्णन करणारे ऑब्जेक्ट असतात. उदाहरणार्थ, पुढील उदाहरणदस्तऐवज ऑब्जेक्टचे सर्व इव्हेंट श्रोते मुद्रित करेल:

GetEventListeners(दस्तऐवज);

एखाद्या ऑब्जेक्टमध्ये एकापेक्षा जास्त श्रोते जोडलेले असल्यास, ॲरेमध्ये त्या प्रत्येकासाठी घटक असतात. उदाहरणार्थ, येथे दोन "माऊसडाउन" इव्हेंट श्रोते #scrollingList घटकाशी संलग्न आहेत:

तुम्ही या प्रत्येक वस्तूचे गुणधर्म पाहू शकता:

कळा (वस्तू)

की(ऑब्जेक्ट) ऑब्जेक्ट प्रॉपर्टी नावांची ॲरे देते. गुणधर्मांचे मूल्य मिळविण्यासाठी, values() वापरा.

समजा तुमचा अर्ज खालील ऑब्जेक्ट घोषित करतो:

Var player1 = ( "नाव": "टेड", "स्तर": 42 )

प्लेयर1 जागतिक स्तरावर घोषित करू द्या, नंतर की(प्लेयर1) आणि व्हॅल्यू(प्लेअर1) खालील आउटपुट करतील:

मॉनिटर(कार्य)

जेव्हा तुम्ही निर्दिष्ट फंक्शनला कॉल करता, तेव्हा कन्सोलमध्ये एक संदेश प्रदर्शित केला जातो की हे फंक्शन योग्य वितर्कांसह कॉल केले होते.

फंक्शन बेरीज(x, y) ( रिटर्न x + y; ) मॉनिटर(सम);

रद्द करण्यासाठी, unmonitor(फंक्शन) वापरा.

मॉनिटर इव्हेंट्स (ऑब्जेक्ट, )

जेव्हा निर्दिष्ट ऑब्जेक्टवर निर्दिष्ट घटनांपैकी एक घडते, तेव्हा इव्हेंट ऑब्जेक्ट कन्सोलवर लिहिला जातो. तुम्ही विशिष्ट इव्हेंट, इव्हेंटची ॲरे किंवा इव्हेंटपैकी एक "प्रकार" निर्दिष्ट करू शकता. खाली उदाहरणे.

खालील क्वेरी विंडो ऑब्जेक्टच्या आकारातील सर्व बदलांचे निरीक्षण करते.

मॉनिटर इव्हेंट्स (विंडो, "आकार बदला");

ही क्वेरी विंडो ऑब्जेक्टवरील सर्व "आकार" आणि "स्क्रोल" इव्हेंटचे निरीक्षण करते:

मॉनिटर इव्हेंट्स(विंडो, ["आकार बदला", "स्क्रोल"])

तुम्ही खालील सारणीमधून उपलब्ध इव्हेंटपैकी एक "प्रकार" देखील निर्दिष्ट करू शकता:

उदाहरणार्थ, ही क्वेरी एलिमेंट पॅनेलमधील निवडलेल्या घटकावरील "की" प्रकारच्या सर्व इव्हेंटचे निरीक्षण करते:

मॉनिटर इव्हेंट्स($0, "की");

मजकूर फील्डमध्ये वर्ण टाइप केल्यानंतर आउटपुटचे उदाहरण येथे आहे:

profile() आणि profileEnd()

प्रोफाइलिंग चालवण्यासाठी:

प्रोफाइल("माझे प्रोफाइल")

समाप्त करण्यासाठी:

प्रोफाइलएंड("माझे प्रोफाइल")

प्रोफाइल देखील नेस्ट केले जाऊ शकतात:

प्रोफाइल("A"); प्रोफाइल("बी"); प्रोफाइलएंड("ए"); प्रोफाइलएंड("बी");

परिणाम:

टीप:प्रोफाइलर एकाच वेळी चालू शकतात आणि ते तयार केलेल्या क्रमाने बंद करण्याची गरज नाही.

टेबल (डेटा, )

सारणी स्वरूपात ऑब्जेक्ट डेटा आउटपुट. उदाहरणार्थ, नावांची सूची प्रदर्शित करण्यासाठी तुम्हाला पुढील गोष्टी करण्याची आवश्यकता आहे:

वार नावे = ( 0: ( पहिले नाव: "जॉन", शेवटचे नाव: "स्मिथ"), 1: (पहिले नाव: "जेन", शेवटचे नाव: "डो")); टेबल (नावे);

अनबग (कार्य)

undebug(function) निर्दिष्ट फंक्शन डीबग करणे थांबवते.

Undebug(getData);

अनमॉनिटर (कार्य)

अनमॉनिटर(फंक्शन) निर्दिष्ट फंक्शनचे निरीक्षण करणे थांबवते.

अनमॉनिटर(getData);

अनमॉनिटर इव्हेंट्स (ऑब्जेक्ट, )

unmonitorEvents(ऑब्जेक्ट, ) निर्दिष्ट ऑब्जेक्ट आणि इव्हेंट्सचे निरीक्षण करणे थांबवते:

अनमॉनिटर इव्हेंट्स(विंडो);

तुम्ही वैयक्तिक इव्हेंटचे निरीक्षण करणे देखील थांबवू शकता:

मॉनिटर इव्हेंट्स($0, "माऊस"); unmonitorEvents($0, "mousemove");

मूल्ये (वस्तू)

values(ऑब्जेक्ट) निर्दिष्ट ऑब्जेक्टच्या सर्व गुणधर्मांची मूल्ये असलेली ॲरे मिळवते.

आपण संगणक गेमचे चाहते असल्यास, आपण बहुधा ऐकले असेल की तेथे एक विशिष्ट विकसक कन्सोल आहे. पण ते काय आहे? हे कसे वापरावे? असे दिसून आले की ते केवळ संगणक गेममध्येच अस्तित्वात नाही: उदाहरणार्थ, ते प्रत्येक इंटरनेट ब्राउझरमध्ये आढळू शकते. आणि हे केवळ त्या विकसकांसाठीच नव्हे तर ज्यांच्यासाठी ते मूळ हेतूने होते त्यांच्यासाठी हे आश्चर्यकारकपणे उपयुक्त ठरू शकते. या लेखात, तुम्ही डेव्हलपरकडून त्याद्वारे तुम्ही काय करू शकता, तसेच गेमरना ते काय फायदे देऊ शकतात हे जाणून घ्याल.

हे काय आहे?

तर, सर्व प्रथम, नैसर्गिकरित्या, विकसक कन्सोल खरोखर काय आहे याबद्दल बोलणे योग्य आहे. या विशेष साधन, अनुक्रमे, सॉफ्टवेअर डेव्हलपरसाठी. जेव्हा आपण अशा कन्सोलला कॉल करता तेव्हा आपल्याला प्रवेश करण्याची संधी असते काही आदेश, जे तुमच्या क्षमतांचा लक्षणीय विस्तार करतात. म्हणून, ते योग्यरित्या वापरण्यासाठी, आपल्याला ते कसे कॉल करावे, ते कसे वापरावे, तसेच तेथे कोणत्या आज्ञा लिहिल्या जाऊ शकतात आणि कोणत्या क्रिया करायच्या हे माहित असणे आवश्यक आहे. पहिल्या दृष्टीक्षेपात असे दिसते की विकसक कन्सोल वापरण्यासाठी एक साधे साधन आहे, परंतु प्रत्यक्षात तसे नाही. कन्सोलमध्ये प्रभुत्व मिळविण्यासाठी आणि आपल्याला हवा असलेला निकाल पटकन मिळविण्यासाठी आपल्याला खूप सराव आवश्यक आहे. पण हा निकाल काय असावा?

विकसक कन्सोल अजिबात का अस्तित्वात आहे याबद्दल बोलण्याची वेळ आली आहे. तिच्या मुख्य उद्देश- प्रोग्रामरद्वारे तयार केलेले डीबगिंग सॉफ्टवेअर. याचा अर्थ असा की वापरणे हे कन्सोल, तुम्ही प्रोग्राममधील दोष शोधण्यात आणि त्यांचे निराकरण करण्यात सक्षम व्हाल, तसेच प्रोग्रामला तुम्हाला हवे तसे करायला लावू शकता, विक्रीसाठी सोडण्यापूर्वी त्यातील प्रत्येक पैलू तपासण्यासाठी. त्यानुसार, हे कन्सोल खूप खेळते महत्वाची भूमिकासॉफ्टवेअर तज्ञाच्या कामात.

बर्याचदा आपण संगणक गेम आणि इंटरनेट ब्राउझरमध्ये असे कन्सोल पाहू शकता आणि आम्ही याबद्दल बोलत आहोत. आम्ही बोलूनंतर आमच्या लेखात. प्रथम, आपण इंटरनेट ब्राउझरमध्ये विकसक कन्सोल कसे उघडायचे ते शिकाल आणि ते आपल्यासाठी काय करू शकते हे समजून घ्या आणि नंतर आपण कसे समजू शकाल महत्त्वाचा घटकती कॉम्प्युटर गेममध्ये असण्याची क्रिया करते.

ब्राउझरमध्ये कन्सोल कसे उघडायचे?

स्वाभाविकच, आपण त्या क्षणाची वाट पाहत आहात जेव्हा आपण दररोज वापरत असलेल्या इंटरनेट ब्राउझरमध्ये आपल्याला या कन्सोलची आवश्यकता का आहे हे आपण शोधू शकता, परंतु प्रथम आपण ते कसे उघडते याचा अभ्यास केला पाहिजे. असे दिसून आले की ते सर्व ब्राउझरमध्ये उपलब्ध आहे आणि जवळजवळ सर्वत्र त्याच प्रकारे उघडते. हे एकतर संयोजन वापरून केले जाते Ctrl की, Shift आणि I, किंवा एकच F12 की दाबून. आपण स्वतः कन्सोल उघडण्याचा प्रयत्न केला पाहिजे आणि जेव्हा आपण यशस्वी व्हाल तेव्हा आपण लेख वाचणे सुरू ठेवू शकता.

ब्राउझर कन्सोल काय करते?

जेव्हा तुम्ही तुमच्या स्क्रीनवर ब्राउझर कन्सोल आणता, तेव्हा तुम्ही पाहत असलेल्या प्रत्येक गोष्टीने तुम्हाला प्रथम आश्चर्य वाटेल. वस्तुस्थिती अशी आहे की कन्सोल खूप आहे मल्टीफंक्शनल साधन, आणि तुम्हाला सर्वात जास्त ऑफर केले जाईल विविध कार्ये. उदाहरणार्थ, तुम्ही पृष्ठाचा संपूर्ण कोड पाहू शकता, प्रत्येक घटक पाहू शकता, त्याची शैली पाहू शकता आणि तुम्हाला स्वारस्य असलेल्या प्रत्येक घटकासाठी वापरलेली JavaScript देखील पाहू शकता. प्रत्येक वेब डेव्हलपर जो किमान दोन महिन्यांपासून वेबसाइट तयार करत आहे त्याला अशा कन्सोलबद्दल माहिती असते आणि ते सक्रियपणे वापरतात, कारण तेथे तुम्ही कोडमधील त्रुटींचा मागोवा घेऊ शकता आणि त्यांचे निराकरण करण्याचा प्रयत्न करू शकता. किंवा तुम्ही शैली आणि सामग्री बदलण्याचा प्रयत्न करू शकता आणि कोणतेही अंतिम बदल करण्यापूर्वी ते कसे दिसते ते पाहू शकता. तथापि, हे कन्सोल त्याच्या अष्टपैलुत्वामुळे सामान्य वापरकर्त्यांसाठी देखील उपयुक्त ठरू शकते, परंतु असे वारंवार होत नाही. कॉम्प्युटर गेम्समध्ये, डेव्हलपर कन्सोल तुमच्यासाठी अधिक वेळा उपयुक्त ठरू शकतो. "द विचर 3", "माइनक्राफ्ट", "कॉन्ट्रा" आणि इतर बरेच लोकप्रिय खेळतुमच्याकडे कन्सोल आहेत जे तुम्ही वापरू शकता आणि त्याबद्दल आम्ही पुढे बोलू.

संगणक गेममध्ये कन्सोल

प्रत्येकाला अनेक संगणक गेममध्ये फसवणुकीच्या अस्तित्वाबद्दल माहिती आहे जे आपण मिळवण्यासाठी प्रविष्ट करू शकता विशेष क्षमता. आता फसवणूक का लक्षात ठेवा? वस्तुस्थिती अशी आहे की काही प्रकरणांमध्ये फसवणूकीची भूमिका विकसक कन्सोलद्वारे खेळली जाते, कारण ती आपल्यासाठी नवीन संधी उघडते ज्या गेमद्वारेच प्रदान केल्या जात नाहीत. पण गेममध्ये असा कन्सोल कसा संपतो? अगदी कोणत्याही प्रमाणेच सॉफ्टवेअर! तथापि, गेम देखील प्रोग्राम आहेत; ते प्रोग्रामरद्वारे त्यांच्यासाठी उपलब्ध असलेल्या सर्व साधनांचा वापर करून तयार केले गेले आहेत. त्यामुळे त्यांनी गेमवरील काम पूर्ण झाल्याची घोषणा करण्यापूर्वी गेमची सर्व कार्ये आणि वैशिष्ट्ये तपासण्यासाठी कन्सोलचा वापर केला. काही प्रकरणांमध्ये, विकसक गेममधील कन्सोल बोनस म्हणून सोडतात, इतरांमध्ये ते त्यात प्रवेश बंद करतात जेणेकरून खेळाडू प्रगत कार्ये वापरू शकत नाहीत. दोन्ही प्रकरणांची खाली चर्चा केली जाईल.

गेममध्ये कन्सोल वापरणे

सर्वात धक्कादायक उदाहरणांपैकी एक संगणकीय खेळ, ज्याला विकसक कन्सोलमध्ये थेट प्रवेश आहे, कॉन्ट्रा आहे. हा संघ-आधारित नेमबाज आज त्याच्या शैलीत एक अनुकरणीय उदाहरण आहे. आणि कन्सोल वापरुन, आपण येथे रंग, आकार आणि आकार बदलू शकता, बॉट्स जोडू शकता आणि इतर अनेक कार्ये देखील बदलू शकता. त्यापैकी काहींना सर्वत्र परवानगी आहे, तर इतरांना मनाई आहे, त्यामुळे तुम्ही गेम तयार केल्यास आणि कन्सोलद्वारे फसवणूकीचा वापर सक्रिय केल्यासच तुम्ही त्यांचा वापर करू शकता. डेव्हलपर कन्सोल Minecraft आणि इतर अनेक लोकप्रिय गेममध्ये अंदाजे त्याच प्रकारे कार्य करते.

फेरफार

तथापि, सर्व गेम विकसकांना विकासक कन्सोलमध्ये प्रवेश सोडू देत नाहीत. "द विचर (1.31 आवृत्ती) 3" आहे सर्वात स्पष्ट उदाहरणगेम विकसकांनी वैशिष्ट्ये कशी वापरली या साधनाचे, गेमची चाचणी आणि डीबग करण्यासाठी, त्यांनी त्यात प्रवेश पूर्णपणे अवरोधित केला. सुदैवाने, असे लोक होते जे हा प्रवेश पुनर्संचयित करण्यात सक्षम होते आणि एक विशेष बदल जारी केला, तो आपल्या संगणकावर डाउनलोड आणि स्थापित करून, आपण विकसक कन्सोल वापरण्यास सक्षम असाल, जे आपल्या क्षमतांचा लक्षणीय विस्तार करेल.

  • गुगल क्रोम,
  • एचटीएमएल,
  • जावास्क्रिप्ट,
  • वेबसाइट विकास
    • भाषांतर

    Google Chrome ला एका प्रकारच्या मजकूर संपादकात बदलण्यासाठी विकसक कन्सोल कसे वापरावे? jQuery वरून अनेकांना परिचित असलेल्या आयकॉनचा काय अर्थ होतो? $ ? मी कन्सोलमध्ये मूल्यांचा संच कसा प्रदर्शित करू शकतो, एक सुंदर सभ्य सारणी म्हणून स्वरूपित? या प्रश्नांची उत्तरे लगेच लक्षात आली नाहीत, तर टॅब कन्सोलक्रोम डेव्हलपर टूल्सने अद्याप आपल्या सर्व वैभवात स्वतःला प्रकट केले नाही.


    पहिल्या दृष्टीक्षेपात, आमच्यासमोर एक पूर्णपणे सामान्य JavaScript कन्सोल आहे, जो फक्त सर्व्हर प्रतिसाद लॉग किंवा व्हेरिएबल व्हॅल्यू प्रदर्शित करण्यासाठी योग्य आहे. तसे, जेव्हा मी पहिल्यांदा प्रोग्रामिंग सुरू केले तेव्हा मी ते कसे वापरले. तथापि, कालांतराने, मी अनुभव मिळवला, थोडे अधिक शिकले आणि अनपेक्षितपणे आढळले की Chrome कन्सोल अशा बऱ्याच गोष्टी करू शकते ज्याबद्दल मला कल्पना नव्हती. मला आज याबद्दल बोलायचे आहे. होय, जर तुम्ही सध्या मोबाईलवर वाचत नसाल तर तुम्ही हे सर्व लगेच करून पाहू शकता.

    1. DOM घटक निवडणे

    जर तुम्ही jQuery शी परिचित असाल, तर मला तुम्हाला यासारख्या रचनांचे महत्त्व सांगणे नाही $('.वर्ग')आणि $('id'). ज्यांना माहित नाही त्यांच्यासाठी, ते तुम्हाला नियुक्त केलेले वर्ग आणि अभिज्ञापक निर्दिष्ट करून DOM घटक निवडण्याची परवानगी देतात. विकसक कन्सोलमध्ये समान कार्यक्षमता आहे. येथे “$” चा jQuery शी काहीही संबंध नाही, जरी ते मूलत: समान गोष्ट करते. हे फंक्शनचे उपनाम आहे document.querySelector().

    स्वरूपाची आज्ञा $('tagName'), $('.वर्ग'), $('#id')आणि $('.class #id')निवडकर्त्याशी जुळणारा पहिला DOM घटक परत करा. शिवाय, दस्तऐवजात jQuery उपलब्ध असल्यास, त्याचे “$” या कन्सोल कार्यक्षमतेद्वारे अधिलिखित केले जाईल.

    येथे आणखी एक डिझाइन आहे: $$ . त्याचा वापर दिसतो $$('tagName')किंवा $$('.वर्ग'). हे तुम्हाला सिलेक्टरशी जुळणारे सर्व DOM घटक निवडण्याची आणि त्यांना ॲरेमध्ये ठेवण्याची परवानगी देते. त्याच्यासह कार्य करणे इतर ॲरेपेक्षा वेगळे नाही. विशिष्ट घटक निवडण्यासाठी, आपण अनुक्रमणिकेद्वारे त्यात प्रवेश करू शकता.

    उदाहरणार्थ, आदेश $$('.className')कॉल करताना निर्दिष्ट केलेल्या वर्ग नावासह आम्हाला सर्व पृष्ठ घटकांची ॲरे प्रदान करेल. संघ $$('.className')आणि $$('.className') परिणामी ॲरेच्या पहिल्या आणि दुसऱ्या घटकांना अनुक्रमे प्रवेश देईल.


    आदेशांसह प्रयोग करत आहे $ आणि $$

    2. ब्राउझरला टेक्स्ट एडिटरमध्ये बदला

    तुम्ही थेट ब्राउझरमध्ये डीबग करत असलेल्या वेब पेजचा मजकूर संपादित करणे चांगले होईल असा विचार तुम्ही कधी केला आहे का? जर होय, तर तुम्हाला खाली दाखवलेली कमांड आवडेल.

    Document.body.contentEditable=true
    कन्सोलमध्ये त्याची अंमलबजावणी केल्यानंतर, ब्राउझरमध्ये उघडलेले दस्तऐवज एचटीएमएल कोडमध्ये इच्छित तुकडा शोधल्याशिवाय संपादित केले जाऊ शकते.

    3. घटकाशी बांधील इव्हेंट हँडलर शोधणे

    डीबगिंग दरम्यान, तुम्हाला घटकांशी बांधील असलेले इव्हेंट हँडलर शोधण्याची आवश्यकता असू शकते. कन्सोल वापरून हे करणे खूप सोपे आहे. तुम्हाला फक्त ही कमांड वापरायची आहे:

    GetEventListeners($('निवडक'))
    त्याच्या अंमलबजावणीच्या परिणामस्वरुप, घटकांची एक सूची तयार केली जाईल ज्यामध्ये घटक प्रतिसाद देऊ शकतात.


    कार्यक्रम हाताळणारे

    विशिष्ट कार्यक्रमासाठी हँडलर शोधण्यासाठी, आपण खालील बांधकाम वापरू शकता:

    GetEventListeners($('selector')).eventName.listener
    ही कमांड इव्हेंट हँडलर फंक्शन कोड प्रिंट करेल. येथे कार्यक्रमाचे नावएक ॲरे आहे ज्यामध्ये विशिष्ट प्रकारच्या सर्व घटनांचा समावेश आहे. उदाहरणार्थ, सराव मध्ये ते असे दिसू शकते:

    GetEventListeners($('#firstName')).click.listener
    परिणामी, आम्हाला इव्हेंटशी संबंधित फंक्शनचा कोड प्राप्त होईल क्लिक करा id सह घटक पहिले नाव.

    4. कार्यक्रम निरीक्षण

    तुम्हाला विशिष्ट DOM घटकाशी जोडलेल्या घटनांचे निरीक्षण करायचे असल्यास, कन्सोल यामध्ये मदत करू शकते. इव्हेंट्सचे निरीक्षण करण्यासाठी तुम्ही वापरू शकता अशा काही कमांड येथे आहेत.
    • संघ मॉनिटर इव्हेंट्स($('निवडक'))निवडकर्ता ज्या घटकाशी संबंधित आहे त्याच्याशी संबंधित सर्व इव्हेंटचे निरीक्षण आयोजित करण्यास तुम्हाला अनुमती देते. जेव्हा एखादी घटना घडते तेव्हा कन्सोलमध्ये एंट्री केली जाते. उदाहरणार्थ, आदेश मॉनिटर इव्हेंट्स($('#firstName'))तुम्हाला घटकाशी संबंधित सर्व इव्हेंट लॉग करण्याची अनुमती देईल ज्याचा अभिज्ञापक आहे पहिले नाव.
    • संघ मॉनिटर इव्हेंट्स($('निवडक'),'इव्हेंटचे नाव')मागील प्रमाणेच, परंतु हे एका विशिष्ट कार्यक्रमाचे लक्ष्य आहे. येथे, घटक निवडक व्यतिरिक्त, इव्हेंटचे नाव देखील फंक्शनमध्ये पास केले जाते. हा आदेश तुम्हाला कन्सोलवर एका इव्हेंटच्या घटनेबद्दल डेटा प्रदर्शित करण्यास अनुमती देईल. उदाहरणार्थ, आदेश मॉनिटर इव्हेंट्स($('#firstName'), 'क्लिक')केवळ इव्हेंटवर माहिती प्रदर्शित करेल क्लिक करा id सह घटक पहिले नाव.
    • संघ मॉनिटर इव्हेंट्स($('निवडक'),['eventName1','eventName3",...])तुम्हाला अनेक निवडक इव्हेंट्सचे निरीक्षण करण्याची परवानगी देते. येथे एक स्ट्रिंग ॲरे फंक्शनला पास केला जातो, ज्यामध्ये इव्हेंटची नावे असतात. उदाहरणार्थ, ही आज्ञा: मॉनिटर इव्हेंट्स($('#firstName'),['क्लिक','फोकस'])कन्सोलवर इव्हेंट माहिती आउटपुट करेल क्लिक कराआणि लक्ष केंद्रित id सह घटकासाठी पहिले नाव.
    • संघ अनमॉनिटर इव्हेंट्स($('निवडक'))तुम्हाला कन्सोलमधील इव्हेंटचे निरीक्षण आणि लॉगिंग थांबविण्यास अनुमती देते.

    5. कोड फ्रॅगमेंटच्या अंमलबजावणीची वेळ मोजणे

    व्ह्यू फंक्शन Chrome कन्सोलमध्ये उपलब्ध आहे console.time('labelName'), जे वितर्क म्हणून लेबल घेते आणि टाइमर सुरू करते. आणखी एक कार्य console.timeEnd('labelName'), टाइमर थांबवते ज्याला दिलेले लेबल नियुक्त केले आहे. ही फंक्शन्स वापरण्याचे एक उदाहरण येथे आहे:

    Console.time("myTime"); // myTime console.timeEnd("myTime") असे लेबल असलेला टायमर सुरू करतो; // myTime //आउटपुट: myTime:123.00 ms असे लेबल असलेला टायमर थांबवतो
    वरील उदाहरण तुम्हाला टायमर सुरू करणे आणि थांबवणे यामधील वेळ शोधू देते. तुम्ही JavaScript प्रोग्राममध्ये तेच करू शकता आणि कोडच्या तुकड्याच्या अंमलबजावणीची वेळ शोधू शकता.

    समजा मला लूपचा कालावधी शोधण्याची गरज आहे. आपण हे असे करू शकता:

    Console.time("myTime"); // (var i=0; i. साठी myTime लेबल केलेला टायमर सुरू करतो< 100000; i++){ 2+4+5; } console.timeEnd("mytime"); // Останавливает таймер с меткой myTime //Вывод - myTime:12345.00 ms

    6. व्हेरिएबल्सची मूल्ये टेबलच्या स्वरूपात प्रदर्शित करणे

    समजा आपल्याकडे यासारख्या वस्तूंचा ॲरे आहे:

    Var myArray=[(a:1,b:2,c:3),(a:1,b:2,c:3,d:4),(k:11,f:22),(a:1 ,b:2,c:3)]
    तुम्ही ते कन्सोलमध्ये प्रदर्शित केल्यास, तुम्हाला वस्तुंच्या ॲरेच्या स्वरूपात एक श्रेणीबद्ध रचना मिळेल. हे एक उपयुक्त वैशिष्ट्य आहे ज्यामध्ये वस्तूंची सामग्री पाहून संरचनेच्या शाखांचा विस्तार केला जाऊ शकतो. तथापि, या दृष्टिकोनासह हे समजणे कठीण आहे, उदाहरणार्थ, समान घटकांचे गुणधर्म कसे संबंधित आहेत. अशा डेटासह कार्य करणे अधिक सोयीस्कर बनविण्यासाठी, ते टॅब्युलर फॉर्ममध्ये रूपांतरित केले जाऊ शकतात. हे करण्यासाठी, खालील आदेश वापरा:

    Console.table(variableName)
    हे आपल्याला व्हेरिएबल आणि त्याचे सर्व गुणधर्म टेबलच्या स्वरूपात प्रदर्शित करण्यास अनुमती देते. ते कसे दिसते ते येथे आहे.

    सारणी म्हणून ऑब्जेक्ट्सच्या ॲरेचे आउटपुट करणे

    7. घटक कोड पहा

    खालील आदेशांचा वापर करून तुम्ही कन्सोलवरून घटक कोड पटकन मिळवू शकता:
    • संघ तपासणी ($('निवडक'))तुम्हाला पॅनेलमधील निवडकर्त्याशी संबंधित घटकाचा कोड उघडण्यास अनुमती देते घटक Google Chrome विकसक साधने. उदाहरणार्थ, आदेश तपासणी ($('#firstName'))तुम्हाला आयडेंटिफायरसह घटकाचा कोड पाहण्याची परवानगी देईल पहिले नाव. संघ तपासणी ($$('a')) DOM मध्ये उपस्थित असलेल्या चौथ्या लिंकसाठी कोड उघडेल.
    • स्वरूपाची आज्ञा $0 , $1 , $2 तुम्हाला अलीकडे पाहिलेल्या आयटमवर द्रुतपणे नेव्हिगेट करण्याची अनुमती देते. उदाहरणार्थ, $0 सर्वात अलीकडे पाहिलेल्या घटकाचा कोड उघडेल आणि असेच.

    8. घटक गुणधर्मांची सूची प्रदर्शित करणे

    जर तुम्हाला एखाद्या घटकाच्या गुणधर्मांची सूची पहायची असेल, तर कन्सोल यासही मदत करेल. खालील आदेश येथे वापरला जातो:

    Dir($('निवडक'))
    हे दिलेल्या वस्तूंशी संबंधित गुणधर्म असलेली वस्तू परत करते DOM घटक. इतर तत्सम प्रकरणांप्रमाणे, या वस्तूची सामग्री त्याच्या झाडाची रचना पाहून तपासली जाऊ शकते.

    9. प्राप्त झालेल्या शेवटच्या निकालाला कॉल करणे

    कन्सोलचा वापर कॅल्क्युलेटर म्हणून केला जाऊ शकतो, जसे की प्रत्येकाला माहित आहे. परंतु काही लोकांना माहित आहे की त्यात अंगभूत साधने आहेत जी तुम्हाला मागील गणनेचे परिणाम कमांडमध्ये वापरण्याची परवानगी देतात. रचना करून $_ आपण मेमरीमधून मागील अभिव्यक्तीचा परिणाम पुनर्प्राप्त करू शकता. हे असे दिसते:

    2+3+4 9 //- बेरीजचा परिणाम 9 $_ 9 आहे // मिळालेला शेवटचा निकाल प्रदर्शित केला जातो $_ * $_ 81 // शेवटचा निकाल 9 असल्याने, आम्हाला 81 Math.sqrt($) मिळतात _) 9 // मागील निकालाचे वर्गमूळ, जे 81 $_ 9 होते // आम्हाला पुन्हा 9 मिळतात - मागील गणनेचा परिणाम

    10. कन्सोल आणि मेमरी साफ करणे

    तुम्हाला कन्सोल आणि मेमरी साफ करायची असल्यास, ही सोपी कमांड वापरा:

    साफ करा()
    एंटर दाबल्यानंतर, स्वच्छ कन्सोल नवीन प्रयोगांसाठी तयार होईल.
    इतकंच.

    11, 12, 13, 14…

    खरे सांगायचे तर, हे सर्व नाही. मी Google Chrome कन्सोलच्या केवळ काही गैर-स्पष्ट क्षमता दाखवल्या आहेत. खरं तर, ते

    आम्ही वाचण्याची शिफारस करतो

    वर