Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. iOS SDK
Code

Game Center и список лидеров в вашем приложении для iOS

by
Difficulty:BeginnerLength:LongLanguages:

Russian (Pусский) translation by Ellen Nelson (you can also view the original English article)

Введение

Game Center это социальная игровая сеть Apple. Она позволяет пользователям отслеживать свои рекорды в таблице лидеров, сравнивать достижения, приглашать друзей в игру и запускать многопользовательскую игру через авто-поиск. Поэтому, если вы создали игру iOS и хотите, чтобы пользователи могли публиковать свои баллы в таблице лидеров Game Center, это подходящий урок для вас!

Дополнительную информацию о приложениях и Game Center можно найти на странице Apple Developer.

Проект Xcode

Для этого урока я создал базовый проект Xcode, который можно загрузить с GitHub. Я объясню все необходимые шаги, для создания таблицы лидеров в iTunes Connect и необходимый код для отправки туда очков, а также кнопку, чтобы открыть таблицу лидеров из приложения.

Вот как выглядит Storyboard приложения:

Demo Xcode project

Этот проект имеет UILabel с красным текстом, который я назвал scoreLabel и парочка UIButtons. Красный добавит 10 очков к рекорду и отправит это в таблицу лидеров Game Center, а синяя откроет GKGameCenterViewController и покажет эту таблицу лидеров.

Самое первое, что нужно сделать так это включить Game Center на вкладке Capabilities в Xcode.

Enable Game Center in the Capabilities tab

Затем вы должны импортировать GameKit в верхней части вашего ViewController.swift и добавить протокол GKGameCenterControllerDelegate к объявлению класса.

Теперь добавим несколько переменных. Вы можете вставить этот код прямо в класс ViewController:

Первая переменная указывает, включен ли Game Center, а второй будет использоваться позже с помощью кода аутентификации игрока, чтобы GameKit смог определить таблицу лидеров по умолчанию.

score первоначально будет 0, конечно.

LEADERBOARD_ID это String, которую вы должны установить, чтобы игровой центр (Game Center) отправил ваши очки на сервер с помощью идентификатора таблица лидеров по умолчанию. Выберите название какое хотите, но имейте в виду, что оно должно быть обратно веб-формату. Вот почему я определил эту таблицу лидеров как com.score.mygamename, где mygamename должен быть заменен на название вашего приложения в строчных символах без пробелов.

Прежде чем включить Game Center на странице iTunes Connect вашего приложения, давайте закончим базовый код. Добавьте эту строку в viewDidLoad():

И добавьте следующую функцию прямо под viewDidLoad():

В случае, если пользователь не зашел в Game Center из настроек на своем устройстве, приведенный выше метод отобразит экран входа в Game Center, как только он подключится к серверу GC. После входа в систему приложение получает идентификатор таблицы лидеров по умолчанию.

В следующем методе мы заставим приложение схватить строку LEADERBOARD_ID, которую вы создали ранее и передать её как идентификатор таблица лидеров по умолчанию на сервер Game Center.

В приведенном выше коде также добавляется 10 баллов к текущему счёту, поэтому каждый раз, когда вы нажимаете кнопку Add Score and Submit To GC, вы увидите, что надпись с красной меткой меняется и приложение отправит обновленный счет в вашу таблицу лидеров GC.

Теперь вам нужно добавить метод делегирования GameKit, который завершит контроллер GC.

Перед созданием вашей таблицы лидеров в iTunes Connect остался только один метод, который является действием на кнопку, которая откроет ViewController игрового центра.

Как вы видите выше, этот код создает экземпляр контроллера GC, назначает делегирование на этот контроллер, устанавливает состояние вида контроллера для отображения лидеров и проходит по вашему элементу LEADERBOARD_ID перед показом контроллера.

Ну вот, мы закончили писать код, но вы ещё не можете запустить приложение. Если вы это сделаете, вы получите сообщение об ошибке от Xcode, так как вы не создали собственную таблицу лидеров на странице iTunes Connect вашего приложения.

Настроить игровой центр на iTunes Connect

Вы уже должны создать приложение iOS в iTunes Connect с вашим идентификатором Bundle. Теперь войдите в своё приложение с панели инструментов iTunes Connect и нажмите Features, а затем Game Center.

Затем кликните по значку + рядом с Leaderboards.

App Features page on iTunes Connect

Выберите Single Leaderboard на следующем экране.

Add a leaderboard

Здесь вам нужно ввести название, которое вы хотите дать своей таблице лидеров. На скриншоте ниже я использовал My Leaderboard Name, в качестве примера. Вы можете назвать вашу Best Score Leaderboard или как угодно ещë.

В поле Leaderboard ID вставьте строку LEADERBOARD_ID, которую мы ранее создали в проекте Xcode.

Поскольку счёт это число, выберите Integer в поле Score Format Type. Вы можете выбрать нужный вариант для типа отправления (Submission Type) и порядка сортировки (Sort Order). Оставьте Score Range (Optional) пустым.

Наконец, нажмите кнопку Add Language, для добавления языка.

Set leaderboards details

Во всплывающем окне вы должны выбрать язык своей таблицы лидеров. По умолчанию всегда используется английский язык. Введите ещё раз название вашей таблицы лидеров, например, на английском и выберите Score Format (я выбрал запятые для разделения групп цифр).

Поля Score Format Suffix необязательны; вы можете оставить оба поля пустыми или ввести нужный суффикс. Например, если в вашей игре баллы, вы можете набрать «балл» и «баллов» для множественного числа, тогда контроллер Game Center добавит этот суффикс в конец оценок, отображаемых в вашей таблице лидеров, например «1 балл» или «100 баллов".

Вы также можете добавить значок. Изображение должно быть файлом .jpeg, .jpg или .png, с размером 512x512 или 1024x1024 пикселей, не менее 72 DPI, в цветовом пространстве RGB без прозрачного фона. Нажмите Choose File, чтобы загрузить изображение.

Наконец нажмите Save и всё готово. Вы можете повторить описанные выше шаги, чтобы добавить больше языков — просто введите названия таблица лидеров в соответствии с выбранным языком.

Add a leaderboards language

После того, как вы добавили окно, вы можете проверить детали вашей таблицы лидеров. Если всё в порядке, нажмите Save и вы будете перенаправлены на страницу функций (Features) для вашей новой таблицей лидеров.

Language added for a new leaderboard
Features page

Теперь пришло время включить Game Center в разделе App Store вашего приложения. Нажмите App Store и Prepare for Submission.

App Store section

Прокрутите вниз до тех пор, пока вы не увидите Game Center и переключатель рядом с ним. Включите его и он станет зеленым. Затем нажмите на значок + рядом с Leaderboards, выберите свою таблицу лидеров из списка и нажмите Done.

Нажмите Save в правом верхнем углу окна и всё будет готово к настройке Game Center на iTunes Connect.

Save your app with Game Centers leaderboard

Теперь вы можете вернуться к проекту Xcode и запустить приложение на реальном устройстве или даже на симуляторе iOS. Если вы ещё не вошли в Game Center, появится контроллер Sign In. Выглядит это так:

Game Center Sing In screen

Войдите в систему со своими учетными данными и вы сможете начать тестирование приложения!

В нашем методе addScoreAndSubmitToGC() мы добавили следующий вызов print():

Так что, если вы нажмёте красную кнопку, в scoreLabel будет отображаться «10», а консоль Xcode напечатает Best Score submitted to your Leaderboard!

Score updated and submitted to your leaderboard

Коснитесь красной кнопки ещё три раза, а затем нажмите синюю, чтобы открыть таблицу лидеров и проверьте, что отправлены очки равны 40. Вы должны увидеть что-то вроде этого:

GC controller for leaderboards

Заключение

Если вы хотите увидеть Game Center в действии с полнофункциональным игровым приложением, вы можете проверить мой шаблон игры Four Dots на CodeCanyon. Это шаблон для минималистичной бесконечной игры, которая сохраняет лучшие результаты и отправляет их в Game Center.

Four Dots iOS app template on CodeCanyon

Шаблоны игр, подобные этому это отличный способ начать работать над вашей следующей игрой. CodeCanyon содержит сотни шаблонов игр для iOS, которые вы можете использовать, чтобы быстро начать разработку, это позволит вам построить следующую игру-убийцу намного быстрее!

Спасибо что прочли и увидимся в следующий раз! Ознакомьтесь с некоторыми из наших других руководств по разработке приложений Swift и iOS.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.