martes, 12 de junio de 2012

ChipMunk - Librería de física 2D - Videojuegos para Iphone - Introducción (Parte 1)

ChipMunk es una librería para física 2D muy facil, rápida e independiente del engine gráfico que utilizas para tus juegos. En este caso vamos a utilizar Cocos2D.
En este artículo veremos las características básicas de esta librería para que después puedas continuar por tu cuenta.
LLegaremos a hacer la simulación que se muestra en la figura:

Setup:
Antes de comenzar debemos configurar el proyecto para luego enfocarnos en ChipMunk.
Creamos un proyecto de XCode seleccionando el template "View-Based-Application" o "Single View Application" para versiones posteriores de XCode.
Luego debemos importar todos los archivos de ChipMunk necesarios, para eso descargamos el código de ChipMunk desde aquí , al descomprimirlo vamos a encontrarnos con documentos, demos, etc pero lo que vamos a necesitar esta en la carpeta "src" aunque en nuevas versiones de chipmunk los archivos necesarios los encontré en la carpeta "include".
Antes de importar todos los archivos, sugeriría que creen un nuevo grupo en el proyecto al que llamaremos "Other Sources" y luego hacer "Add Existing Files ..." y seleccionar los archivos que se encuentran en la carpeta src. Tenemos que asegurarnos de seleccionar "Copy items into destination group´s folder (if needed)"  . El proyecto debería quedar como muestra la imagen siguiente:


Ahora debemos agregar al proyecto las dos imágenes:



y en el header del View Controller agregar el siguiente código:

UIImageView *floor; // imagen del piso
UIImageView *ball; //  imagen de la pelota
En el método viewDidLoad que se encuentra en el archivo de implementación agregamos el siguiente código:
floor = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"floor.png"]];

floor.center = CGPointMake(160, 350);

ball = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ball.png"]];

ball.center = CGPointMake(160, 230);

[self.view addSubview:floor];

[self.view addSubview:ball];
Fuente: http://www.alexandre-gomes.com/articles/chipmunk/

Compartir en twitter y en facebook

Una de las opciones es utilizar el framework ShareKit: http://www.getsharekit.com que además de permitirnos compartir en twitter nos va a permitir hacerlo en otras redes sociales como facebook, google reader, delicious, etc.
Compartir un item consite en dos pasos:

1.Crear un SHKItem con el texto que se quiere postear.
2.Llamar al método shareItem: de la subclase apropiada


- (IBAction)tweet:(id)sender
{
    SHKItem *aTweet = [SHKItem text: @"Share this text"];
    [SHKTwitter shareItem:aTweet];
}

- (IBAction)facebook:(id)sender
{
    SHKItem *post = [SHKItem text: @"Share this text"];
    [SHKFacebook shareItem:post];
}

Otras opciones para twitter son

RSOAuthEngine OAuth engine basado en ARC
MGTwitterEngine
MPOAuth


Para compartir en facebook  podemos utilizar el sdk de ellos que lo podemos descargar desde aquí
https://github.com/facebook/facebook-ios-sdk
Tienen también un buen tutorial:
https://developers.facebook.com/docs/mobile/ios/build/

lunes, 11 de junio de 2012

UIView

Cada subclase de UIView tiene un método drawRect:. El código para dibujar un view se encuentra en este método. Cada vez que se dibuja una instancia de UIView el sistema prepara un contexto para esa view.
El contexto es de tipo  CGContextRef (Core Graphics Context Reference) y es responsable de producir la imagen y de recibir los comandos para poder dibujar. Un contexto gráfico también tiene información del color que se esta utilizando para dibujar, del sistema de coordenadas y del ancho de las lineas que se están dibujando.
drawRect recibe como parámetro una estructura CGRect que es el rectángulo que se va a dibujar. CGRect tiene origen y tamaño que también son estructuras. Origen es un CGPoint que tiene dos miembros x e y. CGSize tiene también dos miembros width y height. La imagen siguiente nos muestra un CGRect.


Hay dos formas de instanciar un UIView una es mediante alloc e initWithFrame y otra es crearlo a través del Interface Builder.