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

Game Center y tablas de clasificación para tu aplicación de iOS

by
Difficulty:BeginnerLength:LongLanguages:

Spanish (Español) translation by Elías Nicolás (you can also view the original English article)

Introducción

Game Center es la red social de juegos de Apple. Permite a los usuarios rastrear sus puntuaciones más altas en una tabla de clasificación, comparar logros, invitar a amigos a jugar un juego y comenzar un juego de varios jugadores a través de la coincidencia automática. Por lo tanto, si ha creado un juego para iOS y desea que los usuarios puedan publicar sus puntajes en una tabla de clasificación de Game Center, este es el tutorial adecuado para usted.

Para obtener más información sobre las aplicaciones y el Game Center, visite su página de desarrollador de Apple.

El proyecto Xcode

Por el bien de este tutorial, he creado un proyecto básico de Xcode que puedes descargar de GitHub. Explicaré todos los pasos necesarios para crear una tabla de clasificación en iTunes Connect y el código necesario para enviar una puntuación, junto con un botón para abrir la tabla de clasificación desde dentro de la aplicación.

Así es como se ve el guión gráfico de la aplicación:

Demo Xcode project

Este proyecto tiene un UILabel con texto rojo. He llamado scoreLabel y un par de UIButtons. El rojo agregará 10 puntos al puntaje y lo enviará a una tabla de clasificación de Game Center, y el azul abrirá el GKGameCenterViewController y mostrará esa tabla de clasificación.

Lo primero que debe hacer es habilitar Game Center en la pestaña Capabilities en Xcode.

Enable Game Center in the Capabilities tab

Luego debe importar GameKit en la parte superior de su archivo ViewController.swift y agregar el protocolo GKGameCenterControllerDelegate a la declaración de clase.

Agreguemos algunas variables ahora. Puede pegar este código directamente en su clase ViewController:

La primera variable indica si tiene Game Center habilitado, y el segundo será utilizado más tarde por el código de autenticación del jugador local para permitir que GameKit identifique la clasificación predeterminada.

la puntuación score inicialmente será 0, por supuesto.

LEADERBOARD_ID es una Cadena String que debe establecer para que Game Center envíe su puntaje al servidor a través del identificador de tabla de clasificación predeterminado. Elija el nombre que desee, pero tenga en cuenta que debe tener una sintaxis invertida en la web. Es por eso que identifiqué esta clasificación como com.score.mygamename, donde mygamename debería reemplazarse por el nombre de su aplicación en minúsculas, sin espacios.

Antes de habilitar Game Center en la página de iTunes Connect de su aplicación, terminemos el código básico. Agregue esta línea a viewDidLoad():

Y agregue la siguiente función justo debajo de viewDidLoad():

En caso de que un usuario no haya iniciado sesión en Game Center desde Configuración en su dispositivo, el método anterior mostrará la pantalla de inicio de sesión de Game Center tan pronto como se conecte al servidor de GC. Una vez que el jugador inicia sesión, la aplicación obtiene la ID predeterminada de la tabla de clasificación.

En el siguiente método, haremos que la aplicación capture la cadena LEADERBOARD_ID que ha creado previamente y la pase como id del marcador predeterminado del servidor de Game Center.

El código anterior también agrega 10 puntos al puntaje actual, de modo que cada vez que haga clic en el botón Agregar puntaje y Enviar al GC, verá que cambia la etiqueta de puntaje roja, y la aplicación enviará ese puntaje actualizado a la tabla de clasificación de su GC.

Ahora necesita agregar un método de delegado GameKit que descartará el Controlador del GC.

Solo queda un método para codificar antes de crear tu tabla de clasificación en iTunes Connect, que es la acción para el botón que abrirá Game Center ViewController.

Como puede ver arriba, este código crea una instancia del controlador GC, asigna su delegado a ese controlador, establece el estado de la vista del controlador para mostrar tablas de clasificación y pasa su LEADERARD_ID antes de presentar el controlador.

Ahora hemos terminado de codificar, pero todavía no puedes ejecutar la aplicación. Si lo hace, recibirá un error de Xcode ya que no ha creado su propia tabla de clasificación en la página de iTunes Connect de su aplicación.

Configurar Game Center en iTunes Connect

Ya debería haber creado una aplicación de iOS en iTunes Connect con su propio identificador de paquete. Ahora ingrese su aplicación desde su tablero de iTunes Connect, y haga clic en Características y luego en Game Center.

Luego haz clic en el ícono + al lado de Marcadores.

App Features page on iTunes Connect

Elija Single Leaderboard en la siguiente pantalla.

Add a leaderboard

Aquí tienes que escribir el nombre que quieres darle a tu tabla de clasificación. En la captura de pantalla a continuación, he usado el nombre de mi Leaderboard solo como un ejemplo. Puede llamar al mejor marcador de su puntuación o lo que desee.

En el campo Id. Del marcador Leaderboard ID , pegue la cadena del LEADERBOARD_ID que hemos creado previamente en el proyecto de Xcode.

Como el puntaje es un número, seleccione Entero en el campo Tipo de formato de puntaje. Puede elegir la opción que desee para el Tipo de envío y el Orden de clasificación. Deje el rango de puntuación (opcional) en blanco.

Por último, haz clic en el botón Agregar idioma.

Set leaderboards details

En la ventana emergente, debe seleccionar el idioma de su tabla de clasificación. El valor predeterminado es siempre inglés. Escriba el nombre en inglés de su tabla de clasificación nuevamente y seleccione un Formato de puntaje (elegí comas para separar grupos de dígitos).

Los campos de sufijo de formato de puntaje son opcionales; puede dejar ambos campos en blanco o escribir el sufijo deseado. Por ejemplo, si su juego tiene puntos de puntuación, puede escribir "punto" y "puntos" para el plural, por lo que el controlador de Game Center agregará ese sufijo al final de los puntajes que se muestran en su tabla de clasificación, como "1 punto" o "100 puntos".

También puedes agregar un ícono. La imagen debe ser un archivo .jpeg, .jpg o .png que tenga 512x512 o 1024x1024 píxeles, al menos 72 DPI, y en el espacio de color RGB sin un fondo transparente. Haga clic en Elegir archivo para cargar su imagen.

Por último, haz clic en Guardar y listo. Puede repetir los pasos anteriores para agregar más idiomas, solo asegúrese de escribir los nombres de la tabla de clasificación según el idioma seleccionado.

Add a leaderboards language

Una vez que haya agregado una ventana, puede verificar los detalles de su tabla de clasificación. Si todo está bien, haz clic en Guardar y serás redirigido a la página de Características, con tu nueva tabla de clasificación.

Language added for a new leaderboard
Features page

Ahora es el momento de habilitar Game Center en la sección App Store de su aplicación. Haga clic en App Store y prepáre para presentación.

App Store section

Desplázate hacia abajo hasta encontrar Game Center con un interruptor al lado. Habilítalo, y se pondrá verde. Luego haz clic en el signo + al lado de Marcadores, selecciona tu tabla de clasificación de la lista y haz clic en Listo.

Haga clic en Guardar en la esquina superior derecha de la ventana y habrá terminado de configurar Game Center en iTunes Connect.

Save your app with Game Centers leaderboard

Ahora puede volver a su proyecto de Xcode y ejecutar la aplicación en un dispositivo real o incluso en el simulador de iOS. Si aún no has iniciado sesión en Game Center, aparecerá el controlador de inicio de sesión. Se parece a esto:

Game Center Sing In screen

Inicia sesión con tus credenciales y puedes comenzar a probar la aplicación.

En nuestro método addScoreAndSubmitToGC (), agregamos la siguiente llamada a print():

Entonces, si toca el botón rojo, ScoreLabel mostrará "10" y la consola Xcode imprimirá el mejor puntaje enviado a su tabla de clasificación.

Score updated and submitted to your leaderboard

Toque el botón rojo tres veces más, y luego toque el azul para abrir su tabla de clasificación, y verifique que el puntaje enviado sea 40. Debería ver algo como esto:

GC controller for leaderboards

Conclusión

Si quieres ver Game Center en acción con una aplicación de juego totalmente funcional, te recomendamos que consultes mi plantilla de juego CodeCanyon Four Dots. Es una plantilla para un juego mínimo e infinito que guarda los mejores puntajes y los envía al Game Center.

Four Dots iOS app template on CodeCanyon

Las plantillas de juego como esta son una gran manera de tener una ventaja en tu próximo juego. CodeCanyon tiene cientos de plantillas de juegos de iOS que puedes usar para impulsar el desarrollo, ¡permitiéndote construir el próximo juego de asesinatos mucho más rápido!

Gracias por leer, y nos vemos la próxima vez! Consulte algunos de nuestros otros tutoriales sobre el desarrollo de aplicaciones de iOS y Swift.

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.