IOS के लिए गेम प्रोग्राम करना सीखें: Xcode (II) को जानें

प्रोग्राम करना सीखें

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

इसके साथ, आप Xcode को संभालने में कौशल हासिल करेंगे, और आप अपना पहला "उपयोगी" एप्लिकेशन जल्दी से बनाने में सक्षम होंगे; बटन और टेक्स्ट लेबल का बुनियादी उपयोग सीखकर। क्योंकि यह कक्षा पिछली कक्षा की तुलना में कुछ अधिक जटिल है, आपके पास प्रविष्टि के अंत में डाउनलोड के लिए व्यावहारिक उदाहरण उपलब्ध होगा, ताकि आप इसे चला सकें और जांच सकें कि यह सही ढंग से काम करता है!

सबसे पहले, हम Xcode खोलते हैं और पिछली कक्षा की तरह, "सिंगल व्यू एप्लिकेशन" टेम्पलेट चुनकर एक नया प्रोजेक्ट बनाते हैं; यह अपने "ग्राफ़िकल असिस्टेंट" के साथ एकल विंडो पर आधारित एक कार्यक्षेत्र बनाएगा। एक बार खुलने के बाद, हम फ़ाइल का चयन करते हैं viewcontroller.xib (याद रखें कि यह हमारे पहले दृश्य या दृश्य का "ग्राफिक चेहरा" है, जिसे व्यूकंट्रोलर कहा जाता है, और जिसका "कोड" भाग फाइलों में है viewcontroller.m y viewcontroller.h), और हम अपने दृश्य में घटकों को खींचना शुरू करने के लिए, नीचे दाईं ओर स्थित ऑब्जेक्ट बॉक्स पर जाते हैं: लेबल, बटन... इसमें सब कुछ होगा!

एक्सकोड में ऑब्जेक्ट सम्मिलित करना

जैसा कि हम छवि में देख सकते हैं, इस बार हमने निम्नलिखित को खींचा है:

  • एक वस्तु "लेबल", एक शीर्षक के रूप में. यह किसी भी चीज़ के साथ इंटरैक्ट नहीं करेगा.
  • अन्य वस्तु «लेबल", जो संख्यात्मक मान रखेगा।
  • एक «स्टेपर«, पिछले "लेबल" के संख्यात्मक मान को बढ़ाने या घटाने का प्रभारी।
  • Un बटन यह जांचने के लिए कि संख्यात्मक "लेबल" उस मान से मेल खाता है जिसे हमने पहले चुना है।

क्या आप पहले से ही जानते हैं कि यह अभ्यास किस बारे में है? बहुत आसान; हमें अपनी उम्र चुननी होगी ("स्टेपर" के साथ वर्ष दर वर्ष), और फिर, चेक बटन का उपयोग करके, पता लगाएं कि क्या हम कानूनी उम्र के हैं। यह शैक्षिक होने के साथ-साथ बेतुका भी है, इस अभ्यास से आप बहुत कुछ सीखेंगे कलम का आघात अनेक बातें।

एक्सकोड में टैग अनुकूलन

जैसा कि आप ऊपर की छवि में देख सकते हैं, "लेबल" का आकार और रंग हो सकता है निजीकृत. प्रत्येक ऑब्जेक्ट में कई पैरामीटर होते हैं जिन्हें आप थोड़ा शोध करने पर पता लगा सकते हैं। एक बार जब आप प्रत्येक वस्तु को उन विशेषताओं के साथ छोड़ देते हैं जो आपको सबसे अधिक पसंद हैं, तो इसका जायजा लेने का समय आ गया है: अभी के लिए हमारे पास «तैयार» हमारा आवेदन; कुछ भी किसी भी चीज़ के साथ परस्पर क्रिया नहीं करता... हमें इसे एकता प्रदान करने की आवश्यकता है।

ऐसा करने के लिए, हम कुछ के साथ खिलवाड़ करने जा रहे हैं कोड (बहुत बुनियादी, और प्रारंभिक रूप से समझाया गया); विशेष रूप से फ़ाइल के साथ viewcontroller.h, जिसमें व्यूकंट्रोलर क्लास (हमारी मुख्य विंडो!) की मूल परिभाषाएँ हैं। यह कोड या क्रियाओं को निष्पादित नहीं करता है, यह केवल आधार और आवश्यक कार्यों को स्थापित करता है, ताकि viewcontroller.m उनका उपयोग कर सकते हैं और कड़ी मेहनत कर सकते हैं... जिसे हम मूर्त रूप में देखेंगे viewcontroller.xib! एक ही सिक्के के तीन पहलू.

इसे समझाकर, हम उन सभी वस्तुओं को "कोड" में परिभाषित करना शुरू कर सकते हैं जिन्हें हमने दृश्य रूप से परिभाषित किया है। हम फ़ाइल पर जाते हैं viewcontroller.h, और निम्नलिखित जोड़ें:

xcode में वेरिएबल लागू करना

वेरिएबल्स या तत्वों को परिभाषित करने के कई तरीके हैं, लेकिन इस मामले में, चूंकि हमें उन तक पहुंचने के लिए एक तत्व की आवश्यकता है (हमारी विंडो, ग्राफिकल भाग), हम उन्हें इस तरह से असाइन करते हैं (@property से शुरू)। यह एक ऐसा विषय है जिसे हम भविष्य की कक्षाओं में संबोधित करेंगे, अभी के लिए यह जानना उचित है कि प्रत्येक व्यक्ति क्या संदर्भित करता है उसे कैसे समझें या पहचानें: a «लेबल" (केवल एक, चूंकि हमारे द्वारा बनाया गया शीर्षक किसी भी चीज़ के साथ इंटरैक्ट नहीं करेगा, और हमें इसे कोड में परिभाषित करने की आवश्यकता नहीं है), एक पूर्णांक चर जिसे "बहुमत की उम्र» (यह नया है, हमने इसे ग्राफ़िक अनुभाग में नहीं रखा है... यह केवल तुलना करने के लिए वयस्कता की आयु को संग्रहीत करेगा), एक «स्टेपर» (स्टेपर1 नाम दिया गया)।

उपरोक्त के अलावा, दो फ़ंक्शन भी हैं (हाइफ़न से शुरू होने वाले दो फ़ंक्शन हैं); जब हम स्टेपर दबाएंगे तो उनमें से एक कुछ करने का प्रभारी होगा (उदाहरण के लिए, क्या "लेबल" हमारी उम्र बदल देता है? सटीक), और दूसरा हमारे द्वारा निर्धारित "लेबल" की वर्तमान आयु की तुलना करने का प्रभारी है।

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

हम ऊपर "प्लेसहोल्डर्स" को देखते हैं, जिसमें दो क्यूब हैं: एक पीला क्यूब (फ़ाइल का मालिक), जहां हम ऑब्जेक्ट को कोड (लेबल, बटन, आदि) के साथ जोड़ेंगे; और एक लाल रंग वाला (प्रथम प्रत्युत्तर), जहां हम उन कार्यों को संबद्ध करेंगे जिन्हें हमने विभिन्न कार्यों के लिए परिभाषित किया है (उदाहरण के लिए, किसी फ़ंक्शन को निष्पादित करने के लिए एक बटन दबाना)।

Xcode रूपरेखा मेनू

हम वस्तुओं से शुरू करते हैं। हम "फाइल्स ओनर" क्यूब पर राइट क्लिक करते हैं, और एक काला मेनू प्रदर्शित होगा। हम "आउटलेट" अनुभाग प्रदर्शित करते हैं, और हम वे सभी तत्व देखेंगे जिन्हें हमने कोड में परिभाषित किया है (केवल दो हैं, लेबल और स्टेपर1); हमें उन्हें उनके संबंधित ग्राफ़िक तत्व पर खींचना होगा: लेबल संख्यात्मक लेबल के साथ जो हमने बनाया है, और स्टेपर1 स्टेपर के साथ

इसे खींचकर हम देखेंगे कि कैसे एक "नीला तम्बू" बनाया जाता है जो हमारे माउस का अनुसरण उस वस्तु तक करता है जिसे हम संबद्ध करना चाहते हैं। (नोट: खींचने की प्रक्रिया शुरू करने के लिए, आपको प्रत्येक ऑब्जेक्ट के नाम के आगे छोटे खाली सर्कल पर क्लिक करना होगा, जैसा कि फोटो में है)

एक्सकोड में वस्तुओं को जोड़ना

अब आपको फ़ंक्शन के साथ भी ऐसा ही करना होगा; "प्रथम प्रत्युत्तरकर्ता" पर राइट क्लिक करें, और हम निम्नलिखित कार्य करते हैं:

  1. हम "चेकएज" पर क्लिक करते हैं, और बिना जाने दिए, हम अपनी ग्राफिक विंडो के बटन पर खींचते हैं, जो उम्र की जांच करता है। एक नया ड्रॉप-डाउन मेनू खुलता है और हम "टच डाउन" चुनते हैं।
  2. हम "स्टेपरवैल्यूचेंज्ड" के साथ भी ऐसा ही करते हैं, लेकिन इस बार हम इसे अपने ग्राफिकल "स्टेपर" पर खींचते हैं, और ड्रॉप-डाउन मेनू में हम "वैल्यू चेंजेड" चुनते हैं।

एक्सकोड में क्रियाओं को जोड़ना

अभी इसमें केवल "असली कोड" जोड़ना बाकी है viewcontroller.m; हमें यह बताना होगा कि घटित होने वाली प्रत्येक क्रिया के साथ क्या करना है। हम आपको इसमें परिभाषित चरों के बारे में जागरूक रहने के लिए कहकर शुरुआत करते हैं viewcontroller.h (कानूनी आयु चर, स्टेपर चर, और लेबल चर; दोनों अपने ग्राफिक समकक्ष के साथ जुड़े हुए हैं) द्वारा "@synthesize name_of_the_variable_u_element«, जैसा कि हम छवि में देखते हैं:

एक्सकोड में चर का कार्यान्वयन

छोड़े बिना viewcontroller.m, हम समारोह में जाते हैं viewDidLoad (फ़ाइल के अंत में), और जो पहले से लिखा गया है उसके ठीक नीचे, लेकिन "से पहले"}«, हम परिभाषित करते हैं कि हमारे देश में बहुमत की आयु क्या होनी चाहिए। इस मामले में, 18:

xcode डिलोड फ़ंक्शन

अंत में, हम इसे बनाने और प्रोग्राम करने जा रहे हैं कार्यों जिसे हमने viewcontroller.h में परिभाषित किया है (केवल दो हैं)। हर बार जब हम स्टेपर दबाते हैं तो एक निष्पादित हो जाएगा, और इसे हमारे "लेबल" में परिवर्तन की उम्र दिखानी होगी।

जब हम बटन दबाएंगे तो दूसरा निष्पादित हो जाएगा उम्र की जाँच करें, और यह जांच करेगा (अतिरेक के लायक) कि जो उम्र हमने दर्ज की है वह वयस्कता की उम्र के बराबर या उससे अधिक है: यदि उत्तर सकारात्मक है, तो ऐप की पृष्ठभूमि हरे रंग में बदल जाएगी; यदि ऐसा नहीं है, तो यह लाल हो जाएगा। दोनों को फ़ाइल में रखा जाना चाहिए viewcontroller.m; उदाहरण के लिए, समारोह से ठीक पहले -(शून्य) व्यूडिडलोड.

कक्षा दो के कार्य

अब सबसे अच्छा आता है. आपको कोशिश करनी पड़ेगी! ऊपर दिए गए प्ले बटन पर जाएं, यह जांचें कि "आईफोन सिम्युलेटर" चुना गया है, और इसे दबाएं। आपकी विंडो खुल जाएगी, और आप उससे बातचीत कर सकेंगे!

व्यायाम दो की तस्वीर

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

अधिक जानकारी - कोड करना सीखें: Xcode को जानना (I)

डाउनलोड - Xcode के लिए दूसरी प्रोग्रामिंग क्लास


शीर्ष 15 खेल
इसमें आपकी दिलचस्पी है:
IPhone के लिए शीर्ष 15 खेल
Google समाचार पर हमारा अनुसरण करें

7 टिप्पणियाँ, तुम्हारा छोड़ दो

अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: एबी इंटरनेट नेटवर्क 2008 SL
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   अबेकर कहा

    बिल्कुल सही, मुझे आशा है कि अधिक पाठ्यक्रम प्रकाशित करने में अधिक समय नहीं लगेगा। लेकिन आप विस्तार से निर्दिष्ट कर सकते हैं कि प्रत्येक फ़ंक्शन क्या करता है, उदाहरण के लिए: "*)प्रेषक" और "चुना: %d" क्योंकि ऐसे लोग हैं जिन्हें उद्देश्य-सी में ज्ञान नहीं है। बहुत अच्छी पोस्ट.

    नमस्ते सर्जियो एब्रिल।

    1.    सर्जियो अप्रैल कहा

      हैलो!
      आपका बहुत-बहुत धन्यवाद, मैं संक्षेप में, कुछ हद तक "त्वरित" और "आसान" तरीके से समझाऊंगा, क्योंकि यह एक बहुत ही सही प्रश्न है:

      आम तौर पर जब आप किसी फ़ंक्शन को परिभाषित करते हैं, तो आपको वे पैरामीटर जोड़ने होते हैं जिन्हें आप उस फ़ंक्शन में भेजना चाहते हैं, और जिनके साथ आप उसमें काम करना चाहते हैं; बटन और स्टेपर के मामले में, हम उन्हें जोड़ते हैं ताकि फ़ंक्शन को पता चले कि एक निश्चित ऑब्जेक्ट को कॉल किया जा रहा है (एक के मामले में, एक यूआईबटन, और दूसरे के मामले में, एक यूआईस्टेपर), जिसे हम नाम देते हैं हम फ़ंक्शन के अंदर इसके साथ काम करना चाहते हैं (इस मामले में दोनों "प्रेषक", लेकिन कोई भी करेगा)। इसलिए, फ़ंक्शन के नाम के बाद, एक कोलन होता है, और फिर (UIButton*)Sender होता है।

      आपको यह दिखाने के लिए कि इन फ़ंक्शंस को "वह ऑब्जेक्ट जो उन्हें कॉल करता है" प्राप्त हो रहा है, हालाँकि यह सच है कि मैंने इसका लाभ नहीं उठाया है, निम्नलिखित प्रयास करें:

      checkerValuechanged फ़ंक्शन में (viewcontroller.m के भीतर), आपको मिले सभी "स्टेपर1" को "प्रेषक" से बदलें। आप देखेंगे कि यह वैसे ही काम करना जारी रखता है, और परिणाम वही है (हालांकि इस अभ्यास के मामले में, मैंने उस डेटा का लाभ नहीं उठाया है जो "प्रेषक" प्राप्त करता है और संग्रहीत करता है, बल्कि मैंने इसका सीधा संदर्भ दिया है स्टेपर1 (जो वही है) ... इसलिए संदेह पैदा होता है... बहुत अच्छा पूछा!

      दूसरे के लिए, एक एनएसएलओजी एक स्क्रीन "लॉग" से ज्यादा कुछ नहीं है, ताकि जो टेक्स्ट हम उद्धरणों के बीच डालते हैं वह नीचे एक्सकोड कंसोल में दिखाई दे। यदि, इसके अतिरिक्त, हम चाहते हैं कि यह कुछ मान दिखाए, उदाहरण के लिए, इस मामले में, प्रत्येक क्षण में स्टेपर1 का क्या मान है, तो इसे जोड़ने का यही सही तरीका है; जहां हम चाहते हैं कि मान %d हो, वहां रखें और उद्धरण चिह्नों के पीछे वेरिएबल का नाम रखें। (%d इस तथ्य को संदर्भित करता है कि यह एक पूर्णांक मान है। उदाहरण के लिए, यदि यह एक दशमलव होता, तो आपको %f लगाना होता)।

      एक बिंदु पर आप सोच सकते हैं कि हमें NSLog (@»chosen: VARIABLE»); रखना चाहिए, लेकिन चूँकि उद्धरणों में जो कुछ भी है वह "शाब्दिक" आता है, यह मान नहीं होगा बल्कि VARIABLE शब्द होगा... और हमारे पास है NSLog (@»chosen : %d», VARIABLE) का सहारा लें, ताकि जब वह «%» का पता लगाए तो उसे पता चले कि एक मान है जिसे हम अल्पविराम के बाद रखेंगे।

      यह थोड़ा भ्रमित करने वाला है, लेकिन मुझे आशा है कि मैंने खुद को समझाया 😉

      1.    दानी कहा

        आपकी उदारता के लिए धन्यवाद; इसे जारी रखो 🙂

  2.   santi_xixon कहा

    कृपया पोस्ट बनाना बंद न करें, यह बहुत उपयोगी है और मुझे यकीन है कि मेरे सहित कई लोग इसे पसंद करेंगे।

  3.   गुस्तावो डे ला रोजा कहा

    आपके अब तक के दो लेख उत्कृष्ट हैं। मैं इस नई भाषा के बारे में सीखना जारी रखने के लिए अगले लेखों की प्रतीक्षा कर रहा हूँ। एक प्रश्न, उपयोग किए गए फ़ंक्शन IBAction प्रकार के क्यों होते हैं और केवल शून्य क्यों नहीं होते?

  4.   VicT04- कहा

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

  5.   लुसाना कहा

    क्या कोई तीसरा भाग होगा? हम पहले से ही मार्च में हैं