Научете се да програмирате игри за iOS: опознаване на Xcode (II)

Научете се да програмирате

След последната вноска, озаглавена научете се да програмирате игри за iOS: Познаване на Xcode, и преди да се потопим в Cocos2d, нека се потопим малко по-дълбоко в Xcode. По този повод ще взаимодействаме със създадените елементи, вместо да се ограничим до просто "Здравей, свят".

С това ще придобиете умения за работа с Xcode и ще можете бързо да създадете първите си „полезни“ приложения; чрез изучаване на основното използване на бутони и текстови етикети. Тъй като този клас е малко по-сложен от предишния, ще имате практически пример за изтегляне в края на публикацията, за да можете да го стартирате и да проверите дали работи правилно!

Първо, ние отваряме Xcode и създаваме нов проект, като избираме шаблона "приложение с един изглед", точно както в предишния клас; Това ще създаде работно пространство, базирано на един прозорец, със своя «графичен асистент». След като се отвори, ние избираме файла viewcontroller.xib (Спомнете си, че това е „графичното лице“ на първия ни изглед или сцена, наречено viewcontroller и чиято част от „код“ е във файловете viewcontroller.m y viewcontroller.h) и отиваме в полето за обекти, разположено долу вдясно, за да започнем да плъзгаме компоненти към нашата сцена: етикети, бутони ... ще има всичко!

Вмъкване на обекти в xcode

Както виждаме на изображението, този път изтеглихме следното:

  • Предмет "етикет«, По заглавие. Няма да взаимодейства с нищо.
  • Друг обект «етикет«, Което ще съдържа цифрови стойности.
  • A «степер«, Отговарящ за увеличаване или намаляване на числовата стойност на предишния« етикет ».
  • Un бутон за да проверим дали числовият „етикет“ съответства на стойност, която сме избрали преди това.

Знаете ли вече за какво става дума в това упражнение? Много лесно; Ще трябва да изберем възрастта си (година след година със «стъпка»), а след това, като използваме бутона за проверка, ще разберем дали сме пълнолетни. Колкото и абсурдно да е образователно, с това упражнение ще се научите от a удар на писалката няколко неща.

Персонализиране на етикета в xcode

Както можете да видите на изображението по-горе, размерът и цветът на «етикета» могат да бъдат персонализиране. Всеки обект има множество параметри, които можете да разберете, ако направите малко проучване. След като оставите всеки обект с характеристиките, които ви харесват най-много, е време да направите равносметка: засега имаме «нарисуван»Нашето приложение; нищо не взаимодейства с нищо ... трябва да му дадем единство.

За да направим това, ще се забъркаме с някои код (много елементарно и елементарно обяснено); конкретно с файла viewcontroller.h, в който се помещават основните дефиниции на класа на контролера за преглед (нашият основен прозорец!). Той не изпълнява код или действия, той само установява основите и необходимите функции, така че viewcontroller.m може да ги използва и да върши тежката работа ... в която ще видим отразено viewcontroller.xib! И трите страни на една и съща монета.

С това обяснено можем да започнем да дефинираме в „кода“ всички обекти, които сме дефинирали визуално. Отиваме в архива viewcontroller.hи добавяме следното:

внедряване на променливи в xcode

Има няколко начина за дефиниране на променливи или елементи, но в този случай, тъй като се нуждаем от елемент за достъп до тях (нашият прозорец, графичната част), ние ги присвояваме по този начин (започвайки с @property). Това е тема, която ще разгледаме в бъдещи класове, засега си струва да се знае към какво се отнася всеки или да се идентифицира: a «етикет»(Само един, тъй като заглавието, което създаваме, няма да взаимодейства с нищо и не е необходимо да го дефинираме в кода), целочислена променлива, наречена«Възрастово мнозинство»(Това е ново, не го поставихме в графичния раздел .. той ще съхранява само възрастта за пълнолетие, за да прави сравнения), a«степер»(Наречен степер1).

В допълнение към горното, има и две функции (двете, които започват с тире, са функции); един от тях ще отговаря за извършването на нещо, когато натиснем степера (Например да накараме „етикетът“ да промени възрастта ни? точно), а друг отговаря за сравнението на текущата възраст на етикета с тази, която сме задали.

Засега имаме дефинирана графична част, а също и кодовата част. Как обаче да научим нашето приложение на какво съответства всяка променлива или елемент от кода, с еквивалента му в графичната част? Е, много лесно. Кликваме върху viewcontroller.xibи кликваме върху кръглия сив бутон с формата на «игра» и текста «показване на контура на документа», който намираме в долния ляв ъгъл на квадратния лист. С това ще се покаже панел с елементите на нашия прозорец.

Разглеждаме «Placeholders» по-горе, който съдържа два куба: жълт (собственик на файла), където ще свързваме обектите с кода (етикети, бутони и т.н.); и друг червеникав (First Responder), където ще свържем функциите, които сме дефинирали, с различни действия (например, че при натискане на бутон се изпълнява функция).

Меню с контури на Xcode

Започваме с предметите. Щракнете с десния бутон върху куба «Собственик на файлове» и ще се покаже черно меню. Показваме раздела "Outlets" и ще видим всички елементи, които сме дефинирали в кода (има само два, label и stepper1); трябва да ги плъзнем до съответния им графичен елемент: етикет с цифровия етикет, който сме създали, и стъпка1 със стъпка.

Когато го плъзнем, ще видим как се създава „синя пипало“, което следва нашата мишка до обекта, който искаме да свържем. (Забележка: за да стартирате процеса на плъзгане, трябва да щракнете върху празните кръгове до името на всеки обект, както е на снимката)

Свързване на обекти в xcode

Сега трябва да направите същото с функциите; щракнете с десния бутон върху «Първи отговор» и правим следното:

  1. Кликваме върху «checkAge» и без да пускаме, плъзгаме до бутона на нашия графичен прозорец, този за проверка на възрастта. Отваря се ново падащо меню и ние избираме «Touch down».
  2. Правим същото със "stepperValueChanged", но този път го плъзгаме до нашия графичен "stepper" и в падащото меню избираме "Value Changed".

Свързване на действия в xcode

В момента остава само да добавим "реалния код" към viewcontroller.m; трябва да ви кажем какво да правите с всяко действие, което се случва. Започваме като ви казваме да сте наясно с променливите, дефинирани в viewcontroller.h (законната възрастова променлива, стъпковата променлива и променливата на етикета; и двете свързани с графичния им аналог) използвайки «@synthesize променлива_име_u_element«, Точно както виждаме на изображението:

Внедряване на променливи в xcode

Без да си тръгва viewcontroller.m, насочихме се към функцията viewDidLoad (в края на файла) и точно под вече написаното, но преди «}«, Ние определяме каква трябва да бъде възрастта за пълнолетие у нас. В този случай 18:

Xcode функция за зареждане

Накрая ще създадем и програмираме funciones които сме дефинирали в viewcontroller.h (има само двама). Един ще бъде изпълнен всеки път, когато натиснем степера и той трябва да показва възрастта, която се променя, в нашия «етикет».

Другият ще бъде изпълнен, когато натиснем бутона проверете възрасттаи ще провери (струва ли излишъкът) дали възрастта, която сме въвели, е равна или по-голяма от пълнолетие: Ако отговорът е положителен, фонът на приложението ще се промени на зелен; ако не е, ще стане червено. И двете трябва да бъдат поставени във файла viewcontroller.m; например непосредствено преди функцията - (void) viewDidLoad.

клас две функции

Сега идва най-доброто. Трябва да опитате! Отидете до бутона за възпроизвеждане по-горе, като проверите дали е избран „iPhone Simulator“ и го натиснете. Вашият прозорец ще се отвори и ще можете да взаимодействате с него!

снимка на упражнение две

Упражнението би могло да бъде по-сложно, но с това имате основите да проучите сами и да изпробвате нови опции. За да улесните следването на урока, от любопитство или просто в случай, че не можете да го накарате да работи, ето проекта в архив компресиран! Надявам се, че ви е служило ... до следващия път!

Повече информация - Научете се да програмирате: опознаване на Xcode (I)

Изтегли - Втори клас по програмиране за Xcode


Топ 15 игри
Интересувате се от:
ТОП 15-те игри за iPhone
Следвайте ни в Google Новини

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Abekoers каза той

    Перфектно, надявам се да не забавяте да публикувате още курсове. Но бихте могли да посочите подробно какво прави всяка функция, например: "*) sender" и "Chosen:% d", тъй като има хора, които нямат познания за target-c. Много добър пост.

    Поздрави Серджо Абрил.

    1.    Серджо Април каза той

      Здравейте!
      Благодаря ви много, обяснявам накратко, по "бърз" и "лесен" начин, тъй като това е много успешен въпрос:

      Като цяло, когато дефинирате функция, трябва да добавите параметрите, които искате да изпратите към тази функция и с които искате да работите по нея; В случай на бутони и степери, ние ги добавяме, така че функцията да знае, че извиква определен обект (в случай на един, UIB бутон, а в случай на друг, UIStepper), на който поставяме името искаме да работим с вътрешността на функцията (в този случай и двамата «изпращач», но всеки работи). Следователно след името на функцията има двоеточие и след това (UIButton *) Изпращач.

      За да ви покажем, че тези функции получават „обекта, който ги извиква“, въпреки че е вярно, че не съм се възползвал от него, опитайте следното:

      Заменете във функцията checkerValuechanged (вътре viewcontroller.m) всички "stepper1", които намерите, от "sender". Ще видите, че той продължава да работи по същия начин, а резултатът е един и същ (въпреки че в случая на това упражнение не съм се възползвал от данните, които „изпращачът“ получава и съхранява, но направих директно препратка към stepper1 (което е същото) ... оттук възникват съмнения .. толкова добре попитани!

      Що се отнася до втория, NSLog не е нищо повече от "дневник" на екрана, така че текстът, който поставяме между кавичките, се появява по-долу в конзолата Xcode. Ако освен това искаме да показва определени стойности, за да видим, например в този случай, каква стойност има stepper1 по всяко време, това е правилният начин да го добавим; поставяне там, където искаме стойността да отиде% d, а след кавичките името на променливата. (% d се отнася до факта, че е целочислена стойност. Ако беше например десетична запетая, ще трябва да поставите% f).

      В един момент може да си помислите, че трябва да сложим NSLog (@ »selected: VARIABLE»);, но тъй като всичко, което е в кавички, излиза «буквално», стойността няма да се появи, а думата VARIABLE ... и вие имате да прибягва до NSLog (@ »избран:% d", ПРОМЕНЛИВ), така че при откриване на "%" да знае, че има стойност, която ще поставим след запетаята.

      Малко объркващо е, но се надявам да съм се обяснил 😉

      1.    да Ан каза той

        Благодаря за вашата щедрост; продължете така 🙂

  2.   santi_xixon каза той

    Моля, не спирайте да правите публикацията, тя е много полезна и съм сигурен, че много хора, включително и аз, я харесвам.

  3.   Густаво де ла Роса каза той

    Двете статии, които имате до момента, са отлични. Очаквам с нетърпение следващите, за да продължа да уча за този нов език. Един въпрос, защото използваните функции са от типа IBAction, а не просто анулирани?

  4.   VicT04- каза той

    Никога не сте програмирали нищо и правите всичко толкова просто Благодаря ви много, че пишете тези статии. Очаквам с нетърпение останалите, съжалявам, но някои книги или уеб страници да продължат да изучават предмета. Много съм любопитен да науча как да правя приложения, които прави без значение дали са на английски, надявам се да ми помогнете благодаря.

  5.   Люсан каза той

    Ще има ли трета част? Вече сме през март