Inicio > Cocos2d, Objective-c > [Cocos2d] Aprendiendo a desarrollar un videojuego para iOS (bases de Objective-c)

[Cocos2d] Aprendiendo a desarrollar un videojuego para iOS (bases de Objective-c)

Antes de Iniciar

Debido al trabajo (y al agrado del tema), estaré desarrollando un juego para iOS, así que me ha ocurrido la idea de hacer tutoriales sobre este tema (así como en algún momento lo hice con XNA). Este es el primero de ellos y aquí vamos a comenzar.

Ya saben un poco de introducción, para que vean de qué va esto y para aquellos que no tengan la menor idea (como yo), aquí vamos aprendiendo de la mano de estos tutoriales, así que si notan que hago algo mal favor de indicarlo en los comentarios. Tengan en cuenta que la mayoría de los conceptos y definiciones de lo que se describe a continuación son de mi interpretación, y con un lenguaje común. No son las definiciones que encontrarás en Google.

Iniciamos

iOS es el sistema operativo con el que trabajan los dispositivos de Apple como son: IPhone, IPod Touch y el IPad. Para poder trabajar sobre este Sistema Operativo contamos con un Framework llamada Cocos2d, el cual trabaja con un lenguaje llamado Objective-C. Este lenguaje a mi parecer es un poco similar a C (no sé si tenga fundamentos en él, pero de que se parece según yo sí).

Para poder trabajar con lo que vamos a ver a lo largo de estos Tutoriales, es necesario contar con un ambiente de desarrollo, el cual está compuesto por:

  • 1. Una MAC (bien puede ser una virtual, es así como yo trabajo porque no tengo MAC).
  • 2. Tener instalado Xcode, que es el IDE que contiene el Framework de Cocos2d .

Ahora veamos un poco de conceptos básicos para trabajar con Objective-C en Cocos2d.

Las Clases

Como lo entiendo (no específicamente hablando de POO) podemos decir que una Clase representa un concepto (lo que se les ocurra). Por ejemplo cuando desarrollamos un juego tenemos cosas como: menú, opciones, nivel, etc. Podemos tener una clase que represente cada uno de estos conceptos. Entonces entiéndase que cada concepto que modelemos es una Clase.

En Objective-C las clases se dividen en 2 archivos:

  • Un archivo con extensión .h
  • Un archivo con extensión .m

Porque lo hacen así, la verdad es que no sé, me da la impresión que tiene que ver con la manera de implementar dicha clase. A mi experiencia con .Net y principalmente con C# tiene que ver con las Interfaces y clases en este Framework (como son los WCF). A donde voy con esto es que en el archivo .H se encuentra la implementación (el código es si de cada método, función y propiedad) de lo que se define en el archivo .M (que es donde se encuentra la interfaz).

 

Sobre el Framework y el IDE

Entendiendo por Framework como un conjunto de clases, digamos que Cocos2d es un conjunto de clases definidas para la creación de juegos en 2D de manera fácil y rápida. El software de XCode incluye el Framework y las plantillas necesarias para trabajar.

Aquí podemos ver una imagen general del entorno de desarrollo

clip_image002

Algo interesante del IDE, es que nos compila en tiempo de edición, es decir; nos va indicando el momento en que tenemos un error o una alerta y basta con hacer clic en el área de notificaciones para que nos indique cual es la situación del error o alerta (muy similar a Visual Studio).

Como se puede observar tenemos un explorador de archivos del lado izquierdo y en la parte inferior una ventana de salida (así se llamaría en Visual Studio “output”), que nos indica lo que ocurre con la aplicación.

A grandes rasgos es lo que necesite para comenzar, así que creo que conforme comiencen a tirar código conoceremos más cosas del IDE, por el momento con esto nos basta.

Adentrando un poco más a Objective-c

Para poder iniciar con el código, es necesario mencionar ciertas cosas básicas del lenguaje, que aunque quizá algunas ya sepan, pero aun así las escribiré ya que a mí me parecen fundamentales.

 

Tipos de datos

En Objective-c existen varios tipos de datos, pero aquí describo los más comunes.

Int

Tipo de datos que se utilizar para almacenar un número entero sin decimales, por ejemplo 1. El ejemplo de un número entero es:

int contador = 1;

Por default este tipo de dato está representado en base 10, pero del mismo modo, un int puede ser expresado en base 16 (hexadecimal) precediendo el número con 0X. Por ejemplo

int contadorHexadecimal = 0xFFA2;

Y para representar un número entero en base 8 (Octal) puede ser expresado precediendo el número con un 0. Por ejemplo

int contadorOctal = 024;

float

Tipo de datos que se utilizar para almacenar un número decimal con un punto, por ejemplo 14.34567. El ejemplo de un número decimal con un punto es:

float radio = 14.34;

Vamos con los Strings (texto).

Char

Tipo de dato que se utilizar para almacenar un solo carácter, como una letra, un signo numérico, dígito o caracteres de espacio. Por ejemplo:

char myChar = ‘n’;

char myChar = ‘1’;

char myChar = ‘:’;

NSString

A diferencia de int, float, char, etc. Este tipo de dato es una Clase y almacena un arreglo de caracteres de tipo Char, por ejemplo: “hola mundo”. Por el hecho de ser una clase para poder implementarla tenemos que instanciarla, es decir; crear un objeto.

La sintaxis para usarlo es el siguiente:

NSString *mensaje = @”Hola mundo, desde Objective-c”;

Se puede observar que antes del nombre de la variable se encuentra un “*”, esto significa que “*mensaje” en realidad es un puntero a una instancia de la clase NSString (a alguien le suenan esos punteros).

Por otro lado está el “@” antes de iniciar el texto, si fuera C# diría que es una cadena literal y su capacidad multi-linea, pero en Objective-c leí por ahí que en torno a una cadena es la manera estándar de indicar cuando inicia y cuando termina.

 

NSNumber

Lo interesante de este tipo de datos (que también es una clase) es que puede almacenar diferentes tipos base, como int, float, etc. Además es mucho más flexible que usar los tipos base ya que podemos hacer sus respectivos Cast incluso a un string. La sintaxis para usarlo es el siguiente:

NSNumber *nuevoNumero = [NSNumber numberWithInt:10];

Aquí viene lo que en un principio vi y dije: “que demonios”, pues como pueden observar para inicializar el objeto *nuevoNumero de la Clase NSNumber lo hacemos asignándole cosas extrañas dentro de los [] , pero no se preocupen esto es más sencillo de lo que parece, recuerden que NSNumber es una Clase, por lo tanto lo que está dentro los corchetes es la llamada al método numberWithInt que recibe como argumento el número 10 y nos regresa un NSNumber (verdad que es más sencillo). En C# sería algo así:

System.Int32 nuevoNumero = System.Int32.ObtenerNumero(“10”)

Donde ObtenerNumero es una método de extensión (alumnos yo haría algo así).

Imprimir en pantalla

Bien aquí es muy similar a como se hace en el lenguaje C, ya que para imprimir es de la siguiente forma

· %i para enteros

· %f para flotantes

· %@ para objetos (NSString)

Para ser el primer post, creo que aquí le dejemos.

 

Saludos.

Technorati Tags: ,
Categorías:Cocos2d, Objective-c
  1. Aldo Bravo
    noviembre 30, 2012 a las 8:43 am

    hola
    a ver si tu me puedes ayudar: busco un curso de Cocos2D de nivel basico, no de muy larga duracion, para ver un poco de lleno de qué va la programacion en videojuegos…tengo experiencia en programación.
    No encuentro muchas formaciones asi, hoy he visto este curso
    http://agbo.biz/tech/curso-cocos2d-basico/ y si me pudieses dar tu opinion…te lo agradeceria mucho!
    Saludos

  2. Aldo Bravo
    diciembre 7, 2012 a las 8:16 am

    MIL GRACIAS
    Bueno basico digo porque si que me dedico a la programacion pero no he tocado el tema de los videojuegos hasta que no me he puesto a leer tutoriales, buscar videos etc…por esto pense que igual un cursito en plan “que es” y para que sirve etc me serviria. Pero no me quiero meter en algo a lo loco (que no estan las cosas como para tirar la pasta)
    Por esto cuando vi este blog (muy bueno, insisto) pues aproveche para preguntar a ver que pensabais de este curso: http://agbo.biz/tech/curso-cocos2d-basico/
    que igual me animo y hago
    De nuevo GRACIAS y os mantengo informados

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: