Первые шаги в iOS разработке
Сборка игр для устройств, вроде iPhone и iPad требует иного подхода, не такого, как для игр на ПК. В отличие от рынка ПК, ваше целевое оборудование стандартизировано и не такое быстрое или мощное, как компьютер с выделенной видеокартой. Поэтому, вы будете несколько по другому подходить к разработке игр на эти платформы. Функции, доступные в Unity для iOS, также немного отличаются от функций для ПК игр.
Настройка вашего аккаунта разработчика Apple
You don’t need an Apple Developer account to build to devices; any Apple ID is sufficient for building only to your own device for testing.
Прежде чем вы сможете запускать Unity iOS игры на реальном устройстве, вам понадобится собственный подтверждённый и настроенный аккаунт разработчика Apple (Apple Developer). Это включает учреждение вашей команды, добавление ваших устройств и настройка Provisioning профилей. Все эти установки выполняются через веб-сайт разработчиков Apple. Т.к. это сложный процесс, то мы немного обрисовали цели, которые должны быть выполнены до того, как вы сможете запускать код на ваших iOS устройствах. Однако что лучше всего, так это следовать пошаговой инструкции на портале Apple iPhone разработчиков.
Проект UnityXCode
Когда вы собираете Unity iOS игру, генерируется проект XCode. Этот проект необходимо подписать, скомпилировать, а затем подготовить вашу игру к распространению. Для дальнейшей информации см. Unity XCode project.
Получение доступа к функционалу iOS
Unity предоставляет различные API скриптинга, чтобы получить доступ к multi-touch экрану, акселерометру, устройству геолокации и многому другому. Вы можете узнать больше о классах скрипта на странице iOS скриптинга.
Обращение к нативному C, C++ или Objective-C коду в скриптах
Unity позволяет вам вызывать пользовательские нативные функции написанные на C, C++ или Objective-C прямо из C# скриптов. Для информации о том, как привязать нативные функции, посетите страницу Plugins.
Подготовка вашего приложения для In-App Purchases (внутриигровые покупки)
Unity iOS приложение позволяет вам скачивать новый контент, и вы можете использовать эту функцию, чтобы реализовать внутриигровые покупки. Для дальнейшей информации см. страницу справки загружаемый контент.
Настройка заставки (Splash Screen)
Как изменить изображение, которое показывает ваша игра во время загрузки, можно узнать на странице Настройка заставки (Splash Screen)
Решение проблем и отчёты о падении.
Если у вас происходят падения приложения на iOS устройстве, пожалуйста, изучите на странице Решение проблем на iOS список наиболее часто встречаемых проблем и их решения. Если вы не можете найти там решение, то, пожалуйста, отправьте отчёт об ошибке (меню: Help > Report A Bug в редакторе Unity).
В чём различия между iOS и стационарными целевыми платформами
Сжатие аудио MP3 вместо Ogg Vorbis
Unity supports importing a variety of source format sound files. However when importing these files (with the exception of tracker files), they are always re-encoded to the build target format. By default, this format is Vorbis, though this can be overridden per platform to other formats (ADPCM, MP3 etc) if required. MP3 playback offers slightly better performance on iPhone compared with Vorbis playback.
Сжатие текстур PVRTC вместо DXT
Unity iOS не поддерживает DXT текстуры. Вместо этого, на устройствах iPhone/iPad нативно поддерживается сжатие текстур PVRTC. Для дополнительной информации о форматах текстур на iOS см. Настройки импорта текстур.
Movie/Video playback
We recommend you use the Video Player to play video files. This supersedes the earlier Movie Texture feature.
- Video Player component added in Unity 5.6
Создание игры на iOS
Видеокурс рассказывает все тонкости построения полноценной мобильной игры от создания пустого проекта и до выгрузки игры в App Store. Поскольку движок Unity кроссплатформенный, то вы сможете загрузить игру как в App Store, так и в Google Play.
Курс в цифрах
737
200
16
8
96
Рассмотрим все моменты разработки
В видеокурсе мы рассмотрим все аспекты создания хорошей современной игры под самую популярную мобильную платформу в мире
Оптимизация игры
Мы займемся оптимизацией игры, дабы игра стабильно работала на всех устройствах, а также хорошо выглядела на разных экранах.
Вся химия публикации
Публикация игры — один из важнейших моментов, в котором новичку сложно разобраться. В курсе мы рассмотрим все тонкости публикации игры в App Store
Пропишем все сами
Мы не будем использовать готовые скрипты, а изучим все самостоятельно на практике. После курса у вас будет большой багаж знаний

Программа курса
Разработка игры
#1 — Вступление в Unity iOS
#2 — Предварительные настройки
#3 — Главная сцена в игре
#4 — Плавное движение туч
#5 — Динамическая смена времени и анимация машины
Показать все темы уроков
#6 — Добавление пользовательского интерфейса
#7 — Функциональные кнопки и переход между сценами
#8 — Создание игровой сцены
#9 — Барьеры по бокам
#10 — Основная механика игры
#11 — Экран проигрыша
#12 — Обучение и эффекты в игре
#13 — Создание магазина машин
#14 — Звуковые эффекты
#15 — Монетизация игры
#16 — Публикация в App Store
Описание
![]()
В ходе первой лекции вы познакомитесь с игровым движком Unity и узнаете на что он способен. Мы поговорим о плане курса, а также про различные моменты игрового движка.
2 минуты Задания Исходники
Выдача сертификата

После прохождения курса, каждый ученик купивший курс с типом «Наилучший» или «Всё включено» сможет получить сертификат об успешном прохождении онлайн видеокурса. Сертификаты помогают при дальнейшем трудоустройстве, так как работодатель сразу же видит что перед ним человек, проходивший курсы по определенным языкам и технологиям Размер сертификата — А4
Формат — PDF
Стоимость курса
Все включено
Все видео уроки
Исходники к урокам
Подписка на сайте
Если вы плохо знаете программирование, то лучше приобрести курс «Наилучший», тогда вы получите консультации от лектора, а также весь исходный материал по видео курсу. Если знаний достаточно и вы уже не новичок, то можете смело брать курс «Стандарт».
Программа обучения

Вы можете приобрести полноценную программу обучения, которая будет включать в себе несколько видео курсов связанных одной сферой. При покупке программы обучения вы экономите 20% от общей стоимости курсов
Все включено
Добавить к оплате
Частые вопросы
Какие знания необходимы?
Видеокурс рассчитан на новичков, поэтому вам не нужно обладать специальными знаниями. Вы можете приступить к курсу будучи полным новичком в сфере создания игр
Что входит в уроки?
Каждый урок состоит из теоретической и практической части. Весь материал, что вы изучите будет подкрепляться практикой для лучшего понимания. К каждому уроку также прилагается готовый код, который вы можете скачать для дальнейшего изучения
Где проходит обучения по курсу?
После покупки курса всё обучение будет проходить на сайте в удобной форме. Вы сможете просматривать материалы в любое удобное для вас время, а также проходить домашние задания, практические задания, тесты и многое другое здесь на сайте. Видеокурс можно будет скачать к себе на компьютер по необходимости.
Что входит в видеокурс?
Видеокурс состоит из 16 уроков, каждый из которых по 30-40 минут в среднем. Общая продолжительность курса около 8 часов обучения. Дополнительно в курс входят учебные материалы при покупке курса от 20$.
Что вы получите в конце курса?
В курсе вы создадите полноценную игру, которую сможете загрузить в App Store или же Google Play. Вы получите огромный багаж знаний, который поможет вам в дальнейшем создавать современные игры с применением различных игровых сервисов.
Что такое подписка на сайте?
Подписка на сайте даст вам дополнительные домашние задания. Если у вас уже есть подписка, то она будет продлена дополнительно. Прочитать более детально про подписку можно здесь.
Что такое практические задачи?
Практические задачи это дополнительные задания на закрепления знаний. Они представлены на сайте в разделе «Тесты и практика». Там вы найдете более 200 дополнительных заданий по Unity, Unity C# и C#.
Как выбрать видеокурс?
Видеокурс необходимо выбирать исходя из тех знаний, что вы имеете на данный момент. Если вы плохо знаете программирование, то лучше приобрести курс «Наилучший», тогда вы получите консультации от лектора, а также весь исходный материал по видеокурсу. Если знаний достаточно и вы уже не новичок, то можете смело брать курс «Стандарт».
Зачем нужны консультации?
Консультации это отличная помощь вам, ведь если вы чего-либо не будете знать, то всегда сможете задать вопрос лектору и получить ответ на свой вопрос. Это поможет вам в решение спорных вопросов, а также позволит быстрее изучить необходимый материал.
Зачем покупать курс «Всё включено»?
Если вы планируете изучить Unity хорошо, то практические задания, а также тесты вам в этом отлично помогут. Выбирая этот тип курса вы получаете полностью весь набор необходимых знаний для полного изучения курса.
Нужно ли докупать подписку?
Нет, подписку дополнительно приобретать не нужно. Она выдается автоматически при покупке курса на сайте. Просмотр курса на сайте осуществляется на время подписки. Продление подписки не обязательное. Также все уроки вы сможете скачать с сайта.
Какой язык программирования используется в курсе?
В Unity можно программировать на языках: C# или JavaScript. В курсе все программирование происходит на языке C#, так как он является более популярным нежели JavaScript в Unity.
Какое оборудование мне потребуется чтобы пройти курс?
Unity это хорошо оптимизированная программа, поэтому вы сможете запустить её даже на стареньком ПК. Помимо ПК вам также необходимо иметь телефон: iOS или Андроид. Если ваш смартфон не поддерживает современные игры и игровые сервисы (внутриигровую оплату, таблицы результатов и прочее), то тестирование приложений будет возможным лишь на компьютере через программу Unity.
Сделай игру для iPhone за 10 минут. Прямо сейчас

В закладки

В этой статье мы пошагово разберем, как сделать элементарную игру для iOS, ничего об этом не зная!
Вы пройдете путь от создания проекта до просмотра готовой игры на устройстве за 12 шагов и освоите основные принципы создания игр в xCode. Ну а потом решите, продолжать ли учиться разработке под iOS.
На все действия уйдет 10-15 минут.
Нам понадобятся:
- Mac с установленным Xcode;
- Устройство с iOS;
- Изображение цветка;
- Изображение травы.
Шаг 1. Создаем новый проект в Xcode

Запускаем xCode, выбираем пункт меню File -> New -> Project.
Шаг 2. Выбираем тип проекта

На следующем экране выбираем тип проекта – Game.
Шаг 3. Указываем основную информацию о проекте

Указываем название проекта и сверяем остальные настройки с картинкой.
Шаг 4. Выбираем место для папки с проектом

В открывшемся окне Finder указываем папку, в которой будем хранить проект. При необходимости можно воспользоваться кнопкой Create Folder в левом нижнем углу окна.
Шаг 5. Настраиваем игру

Теперь перед нами окно детальных настроек приложения. Снимаем галочку с Portrait в разделе Deployment Info, чтобы игра работала только в горизонтальном режиме.
Шаг 6. Смотрим на стандартный пример игры

Нажимаем на кнопку запуска симулятора в левом верхнем углу. Ждем некоторое время, пока симулятор загрузится. Кликаем на серое поле, чтобы появлялись космические корабли.
Шаг 7. Меняем космические корабли на цветы


В правом меню выбираем пункт assets.wcassets, потом делаем активным объект Spaceship и на место картинки с космическими кораблем перетаскиваем картинку с цветком.
Шаг 8. Смотрим, что изменилось

Снова запускаем эмулятор. Теперь вместо космических кораблей появляются цветы.
Шаг 9. Уменьшаем размер цветка


Уменьшим цветы в пять раз. В правом меню выбираем файл GameScene.swift и находим в нем строчки кода:
sprite.xScale = 0.5 sprite.yScale = 0.5
sprite.xScale = 0.1 sprite.yScale = 0.1
Шаг 10. Добавляем траву в коллекцию картинок


Идем в assets.wcassets, находим плюсик (см. картинку), нажимаем на него и выбираем пункт меню New Image Set. Называем новый набор картинок Background (название должно быть точным) и перетаскиваем в него картинку с травой из Finder.
Шаг 11. Добавляем траву в код

Удаляем код, который делает фоновую надпись HelloWorld:
class GameScene: SKScene < override func didMoveToView(view: SKView) < /* Setup your scene here */ let myLabel = SKLabelNode(fontNamed:"Chalkduster") myLabel.text = "Hello, World!" myLabel.fontSize = 45 myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)) self.addChild(myLabel) >
На его место вставляем:
class GameScene: SKScene < var background = SKSpriteNode(imageNamed: "Background") override func didMoveToView(view: SKView) < /* Setup your scene here */ background.position = CGPoint(x: frame.size.width / 2, y: frame.size.height / 2) addChild(background) >
Шаг 12. Тестируем игру на устройстве

Идем в Xcode -> Preferencies -> Accounts и добавляем свой Apple ID:
1. Подключаем iOS-устройство к компьютеру.
2. Выбираем устройство и жмем на кнопку запуска.
3. Если появляется сообщение о проблемах с безопасностью, идем на iOS-устройстве в Настройки -> Основные -> Управление устройством и разрешаем запуск приложений от нужного разработчика.
4. Находим на Spring Board иконку приложения и запускаем его.Теперь устройство можно отсоединить от компьютера и продолжать пользоваться приложением.
Если возникли какие-то проблемы, то обновите iOS и xCode.
В App Store такую игру не примут, но можно развлекаться на своих устройствах. Если проявить немного усердия, из этой основы можно сделать что-то действительно интересное с помощью Google и StackOverflow.
Не разбираясь в программировании, мы создали простую игру и потратили всего 10 минут. Чему же можно научиться за год интенсивного обучения под руководством опытных преподавателей?
Где учиться разработке под iOS?

Лучший вариант — поcтупить на факультет iOS-разработки в онлайн-университет GeekUniversity, созданный GeekBrains и Mail.ru. Целый год несколько вечеров в неделю вы будете изучать программирование под iOS. Занятия проходят в формате вебинаров и учиться можно в любой стране мира.
В GeekUniversity практикуют проектно-ориентированное обучение. За год вы создадите 4 собственных приложения для iOS:
- Погодное приложение;
- Мобильную игру;
- Приложение для интернет-магазина;
- Командный проект.
После года обучения вы получите годовой опыт индивидуальной и командной разработки, примеры реальных проектов для портфолио и знания, достаточные для работы разработчиками. У каждого ученика на курсе есть наставник, который контролирует прогресс и отвечает на все вопросы.
Какие знания вы получите на факультете iOS-разработки?
За год супер-интенсивного обучения ученики усваивают огромный объем знаний:
- Навыки программирования на Swift
- Навыки программирования на Objective C
- Навыки разработки мобильных игр
- Знание алгоритмов и структур данных
- Понимание компьютерных сетей и операционных систем
- Работа в команде
- Методологии разработки: Agile, Scrum
- Умение работать с GIT
- Знание принципов ООП
- Навыки успешного прохождения собеседований и общения с заказчиками
- Навыки проектирования архитектуры, использования шаблонов проектирования singletone, adapter, factory, dependency injection
- Навыки использования IOS SDK, карт, геолокации, push-уведомлений, анимаций и 3d-touch
- Навыки разработки мобильных приложений под iOS
- Навыки написания чистого кода
Это очень мощная теоретическая база, на основе которой можно вырасти в действительно крутого спеца, если не снижать темп и продолжать интенсивное обучение.
Что вас ждет после обучения?

Выпускники получают сертификат об окончании GeekUniversity, гарантированное трудоустройство и год онлайн-обучения английскому языку в подарок.
Узнайте больше о факультете о факультете iOS-разработки и запишитесь на подготовительные курсы здесь.
(10 голосов, общий рейтинг: 4.50 из 5)
Хочешь ещё? Читай больше в Telegram
Ищешь ответ на вопрос? Приходи на Форум
В этой статье мы пошагово разберем, как сделать элементарную игру для iOS, ничего об этом не зная! Вы пройдете путь от создания проекта до просмотра готовой игры на устройстве за 12 шагов и освоите основные принципы создания игр в xCode. Ну а потом решите, продолжать ли учиться разработке под iOS. На все действия уйдет 10-15.
Разработка игр под iOS – пошаговая инструкция создания игры на iPhone с нуля

Хотите освоить iOS-разработку? Мы подготовили для вас руководство, которое является отличной отправной точкой на пути становления ios-разработчиком. Наш туториал подходит, даже если у вас нет никаких знаний в области программинга. Для работы нужен MacBook (подходят большинство моделей) и iPhone (необязательно).
Что разрабатываем?
- Установка и настройка среды разработки Xcode.
- Создание пользовательского интерфейса в iOS-разработке.
- Основы программирования на языке Swift.
- Добавление дополнительных возможностей в ios-игру.
1. Устанавливаем Xcode
Программа бесплатная. Загрузите Xcode из AppStore на вашем макбуке. Чтобы открыть App Store, нажмите на значок Apple в левом верхнем углу экрана, затем кликайте App Store.

В строку поиска в правом верхнем углу введите Xcode. Установите приложение на ноутбук.

2. Создаем новый проект в Xcode
После инсталляции запустите Xcode. Сразу отображается такая заставка:

Кликайте «Create a new Xcode project» и выберите шаблон, предложенный программой. Мы создаем игру на айфон. Поэтому в верхнем меню выбираем вкладку iOS и жмем «Single View App» .

В следующем окне указываем название игры и жмем «Далее» (Next)

На этом этапе ваш Xcode выглядит примерно так:

3. Создаем пользовательский интерфейс
Откройте основную раскадровку в конструкторе интерфейсов Xcode. Для этого щелкните на главной раскадровке в панели слева. Если она не отображается, нажмите сочетание клавиш CMD+1.

Конструктор интерфейсов
Сейчас на этом экране происходит очень многое. При открытии раскадровки вы видите множество панелей и разделов. Эти визуальные инструменты и есть конструктор интерфейса Xcode. Но не пугайтесь. Со временем вы освоите нужный функционал.
Начнем с простого – изменим цвет фона нашей игры. На главном экране кликаем на большой белый прямоугольник. При наведении представление выделяется и на панели контуров слева.

Инспектор атрибутов
Найдите в правой части экрана Панель инспектора. Здесь несколько вкладок. Чтобы задать цвет, кликаем Инспектор атрибутов .

Здесь мы можем менять различные свойства выбранного представления. Нам нужно изменить цвет в опции Background .

После того, как выбрали цвет, сохраняем файл, нажав CMD+S .
4. Запускаем iOS-приложение
На этом этапе мы узнаем как запустить наше приложение на эмуляторе. В верхнем углу слева отображается кнопка Play, Stop, название проекта и симулятор, на котором запускаем нашу игру.

В нашем случае выбран симулятор iPhone 7. Вы можете выбрать любой.

Давай запустим симулятор. Нажмите кнопку Play. После этого приложение должно запуститься. На экране должен отобразиться цвет, который мы выбрали ранее:

Теперь попробуйте самостоятельно изменить цвет фона в Инспекторе атрибутов и запустить повторно приложение.
5. Добавляем фоновое изображение
Добавим это изображение:

Для этого нужно создать представление изображения. Откройте библиотеку объектов, в правом верхнем углу нажмите кнопку Home как на старом айфоне или нажмите сочетание клавиш CMD+Shift+L . В строку поиск вводим название нашего изображения.

Щелкните на изображение и перетащите его в основной вид. Настройте размер изображения, чтобы оно заполнило весь основной вид.

Добавляем изображение в наш проект Xcode. В левой панели навигации откройте файл Assets.xcassets (или нажмите CMD+1) . Затем в нижней части экрана нажмите «плюс»:

Выбираем New Image Set (Новый набор изображений) , перетаскиваем изображение из Mac Finder в один из слотов:

Открываем панель Инспектора атрибутов и меняем параметр Scales на Single Scale .

Изменим название изображения на background-image :

Далее открываем резервную копию файла Main.storyboard . Определяем вид изображения и переходим в инспектор атрибутов (CMD+Option+4). Выбираем фоновое изображение, задаем режим содержимого на Aspect Fill .

Последний шаг в установке фонового изображения: настраиваем ограничения для представления изображения. Ограничения – это правила, которые указывают iOS, где рисовать те или иные представления. Щелкните на кнопке «Tie-fighter» в нижней части конструктора интерфейса. Убедитесь, что для всех ограничений установлено значение 0. Затем выделите все линии ограничений, чтобы они выделились ярко-красным цветом. Выберите Add Constraints (Добавить ограничения) .

Запускаем приложение кнопкой Play или сочетанием клавиш CMD+R . Результат:

6. Добавляем кнопки
Создаем кнопки для нашей игры на iOS. Открываем библиотеку объектов (CMD+Shift+L), вбиваем в поиск button .


Теперь давайте отредактируем наши две кнопки, чтобы они стали более заметными. Я изменю цвет фона на черный с непрозрачностью 60% и цвет шрифта на белый. Эти параметры мы зададим в инспекторе атрибутов (CMD+Option+4). Перед открытием инспектора атрибутов убедитесь, что кнопка выделена.
Делаем кнопки более заметными. Изменяем цвет фона на черный. Для этого выделяем кнопку и заходим в Инспектор атрибутов (CMD+Option+4). Задаем параметры:
- непрозрачность 60%;
- шрифт – белый.

7. Добавляем текст
Задаем текст для счета (Score) в игре. Открываем библиотеку объектов (CMD+Shift+L) и вбиваем запрос Label :

Перетаскиваем Label в верхнюю часть представления и заменяем текст через Инспектор атрибутов (CMD+Option+4) , пишем Score: 0 . Выбираем для текста белый цвет и размер 40px.

В нашей игре карты будем представлять цифрами от 1 до 13, где:
- 1 – туз,
- 11 – валет,
- 12 – королева,
- 13 – король.
В центр экрана добавляем ноль. Возвращаемся в библиотеку объектов (CMD+Shift+L) и перетаскиваем метку на экран. Задаем номер «0», выбираем размер и цвет шрифта:

Изображения игровых карт добавим позже. Теперь начинаем кодить.
8. Программируем на языке Swift
Swift – язык программирования от Apple. На нем разрабатывают нативные приложения для iOS, macOS, watchOS и tvOS. Swift – легко читаемый язык и отлично подходит для начинающих разработчиков, которые никогда не писали код.
Итак, удерживаем клавишу Option на клавиатуре, кликаем на файл ViewController.swift в Project Navigator (CMD+1) . Xcode должен открыть файл рядом с нашим пользовательским интерфейсом:

IBOutlets
IBOutlet подразумевает связь элемента UI (кнопки или лейбла) с его ссылкой в коде.
Слева находится пользовательский интерфейс, справа – код. С помощью IBOutlet соединяем пользовательский интерфейс приложения с кодом. Для этого удерживаем клавишу ctrl, кликаем на нужный элемент мышкой и перетаскиваем метку числа в код:

Далее переименовываем метку в коде, задаем имя cardLabel :

Таким же способом перетаскиваем в код счет (Score) и кнопки High и Low. После этого Теперь тем же методом перетащите в свой код счет, кнопку high и кнопку low. После этого наш код выглядит так:
import UIKit class ViewController: UIViewController < @IBOutlet weak var cardLabel: UILabel! @IBOutlet weak var scoreLabel: UILabel! @IBOutlet weak var highButton: UIButton! @IBOutlet weak var lowButton: UIButton! override func viewDidLoad() < super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib.
9. Создаем случайные игровые числа
В игре нам нужно получить случайное число от 1 до 13, представляющее новую разыгрываемую карту. Также нам необходимо создать туз, валет, королеву, короля и пронумерованные карты.
Функция random в языке Swift позволяет нам легко это сделать. Добавляем эту строку кода в функцию viewDidLoad()
// Do any additional setup after loading the view, typically from a nib. var currentCardValue = Int.random(in: 1 . 13)
Эта строка кода присваивает переменной с именем currentCardValue случайное число. var в Swift определяет переменную . Функция Int.random(in: 1 … 13) генерирует случайное целое число от 2 до 14.
Переменные – это контейнеры, в которых хранятся данные . На эту информацию можно ссылаться и изменять ее. Мы можем присваивать данные переменной с помощью символа “=”. В нашей игре мы используем переменную currentCardValue для отслеживания текущей отображаемой карты.
Что такое целые числа, наверняка знает каждый. Далее мы присваиваем целое число нашей метке. Добавляем эту строку в viewDidLoad() как показано ниже:
cardLabel.text = String(currentCardValue)
UILabels имеет свойство text , которое представляет собой тип String . Вы можете присвоить текст метке, установив это свойство. Перед тем как присвоить текст метке, нам необходимо преобразовать наше значение curentCardValue в строку.
Теперь наш файл ViewController.swift должен выглядеть так:
import UIKit class ViewController: UIViewController < @IBOutlet weak var cardLabel: UILabel! @IBOutlet weak var scoreLabel: UILabel! @IBOutlet weak var highButton: UIButton! @IBOutlet weak var lowButton: UIButton! override func viewDidLoad() < super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. var currentCardValue = Int.random(in: 1 . 13) cardLabel.text = String(currentCardValue) >>
Запускаем приложение (CMD+R). На экране должно появиться случайное число. При повторном запуске приложения должно появится новое рандомное число от 1 до 13.

Далее нужно сделать так, чтобы число менялось в зависимости от нажатия на кнопку. Для этого добавляем в код IBAction наших кнопок. Нажимаем на кнопку High или Low , открываем ее инспектор соединений (CMD+Option+6) .

Перетаскиваем точку Touch Up Inside в наш код:

Назовем их highButtonPressed и lowButtonPressed .
@IBAction func lowButtonPressed(_ sender: Any) < >@IBAction func highButtonPressed(_ sender: Any)
Теперь мы можем добавить код, который активизируется при нажатии кнопок. Оборачиваем наш предыдущий случайный код в функцию randomizeCard , вызываем ее из viewDidLoad() .
Функции – это контейнеры кода, которые можно вызывать несколько раз. Они похожи на код многократного использования.
Вот так должен выглядеть наш randomizeCard :
func randomizeCard()
Вызываем эту функцию в каждом из наших кнопочных IBActions , которые мы только что создали. Теперь весь код должен выглядеть так:
import UIKit class ViewController: UIViewController < @IBOutlet weak var cardLabel: UILabel! @IBOutlet weak var scoreLabel: UILabel! @IBOutlet weak var highButton: UIButton! @IBOutlet weak var lowButton: UIButton! override func viewDidLoad() < super.viewDidLoad() randomizeCard() // Do any additional setup after loading the view, typically from a nib. >func randomizeCard() < var currentCardValue = Int.random(in: 1 . 13) cardLabel.text = String(currentCardValue) >@IBAction func lowButtonPressed(_ sender: Any) < randomizeCard() >@IBAction func highButtonPressed(_ sender: Any) < randomizeCard() >>
Запускаем наше приложение для iOS (CMD+R) и кликаем кнопки.Теперь при нажатии кнопок числа рандомизируются:
10. Добавляем подсчет очков
Игроки получают очко, когда угадывают каким будет следующее число: больше или меньше. Нам нужно добавить простую логику подсчета очков, чтобы отслеживать их количество.
Чтобы определить, угадал ли игрок правильно или нет, понадобится переменная, в которой будет храниться предыдущее значение карточки. Добавим эту переменную над нашим IBOutlets . Изначально задаем ей значение “0”. Также переносим объявление переменной CurrentCardValue на самый верх.
var previousCardValue = 0 var currentCardValue = 0
Значение должно обновляться при каждом вызове randomizeCard . Поэтому мы изменим функцию randomizeCard :
func randomizeCard()
Для отслеживания результатов нужна переменная score . Добавляем ее в верхнюю часть файла:
var score = 0
Добавляем простую логику для каждого нажатия кнопки, чтобы определить, следует ли увеличивать счет или сбрасывать его. Для кнопки low мы будем увеличивать счет, если currentCardValue меньше previousCardValue , в противном случае мы сбросим счет в 0.
@IBAction func highButtonPressed(_ sender: Any) < setLabelToRandomNumber() if currentCardValue >= previousCardValue < increaseScore() >else < gameOver() >>
Теперь создаем функцию increaseScore , которая будет обновлять текст на экране и score :
func increaseScore()
Для функции gameOver мы обнулим счет и изменим текст на «Game Over!» .
func gameOver()
На этом этапе весь наш код выглядит примерно так:
import UIKit class ViewController: UIViewController < var previousCardValue = 0 var currentCardValue = 0 var score = 0 @IBOutlet weak var cardLabel: UILabel! @IBOutlet weak var scoreLabel: UILabel! @IBOutlet weak var highButton: UIButton! @IBOutlet weak var lowButton: UIButton! override func viewDidLoad() < super.viewDidLoad() randomizeCard() // Do any additional setup after loading the view, typically from a nib. >func randomizeCard() < previousCardValue = currentCardValue currentCardValue = Int.random(in: 1 . 13) cardLabel.text = String(currentCardValue) >func increaseScore() < score = score + 1 scoreLabel.text = "Score: " + String(score) >func gameOver() < scoreLabel.text = "Game over!" score = 0 >@IBAction func lowButtonPressed(_ sender: Any) < randomizeCard() if currentCardValue < previousCardValue < increaseScore() >else < gameOver() >> @IBAction func highButtonPressed(_ sender: Any) < randomizeCard() if currentCardValue >= previousCardValue < increaseScore() >else < gameOver() >> >
Запускаем игру. Теперь она должна работать.
Видим, что иногда текст в игре обрезается. Чтобы исправить это, открываем Main.storyboard и перетаскиваем эти представления, чтобы они стали больше:

11. Добавляем изображения карт
Наша игра работает. Осталось добавить изображения карт. Будем использовать изображения карт, которые можно скачать здесь. После скачивания перетаскиваем их из Finder прямо в файл Assets.xcassets .
Теперь, когда у нас есть изображения, делаем так, чтобы вместо цифр выводились изображения карты. Открываем файл Main.storyboard .
Нажимаем на цифру в центре и удаляем ее. Добавляем изображение через библиотеку объектов (CMD+Shift+L) и перетаскиваем изображение на экран.

Размещаем изображение на экране, задаем ему нужный размер и перетаскиваем его в код. Если код закрыт, удерживайте клавишу option и нажмите ViewController.swift чтобы открыть.

Удаляем из кода метку cardLabel . Теперь мы будем устанавливать изображение в соответствии с номером, а не менять текст метки.
Изменяем функцию randomizeCard :
func randomizeCard()
Весь код выглядит так:
import UIKit class ViewController: UIViewController < var previousCardValue = 0 var currentCardValue = 0 var score = 0 @IBOutlet weak var scoreLabel: UILabel! @IBOutlet weak var highButton: UIButton! @IBOutlet weak var lowButton: UIButton! @IBOutlet weak var cardImageView: UIImageView! override func viewDidLoad() < super.viewDidLoad() randomizeCard() // Do any additional setup after loading the view, typically from a nib. >func randomizeCard() < previousCardValue = currentCardValue currentCardValue = Int.random(in: 1 . 13) cardImageView.image = UIImage(named: String(currentCardValue)) >func increaseScore() < score = score + 1 scoreLabel.text = "Score: " + String(score) >func gameOver() < scoreLabel.text = "Game over!" score = 0 >@IBAction func lowButtonPressed(_ sender: Any) < randomizeCard() if currentCardValue < previousCardValue < increaseScore() >else < gameOver() >> @IBAction func highButtonPressed(_ sender: Any) < randomizeCard() if currentCardValue >= previousCardValue < increaseScore() >else < gameOver() >> >
Запускаем приложение (CMD+R) . Поздравляем, вы создали игру для iOS!
