LA bucle del juego
consigue su código para actualizar el mundo del juego en tu iPhone o iPad muchas veces por segundo - lo suficiente rápido como para que se vea como un movimiento fluido al jugador.
Para ello, es necesario actualizar la posición de todos sus puntos de vista cada vez que la pantalla se vuelve a dibujar por iOS. Para ser notificado cuando esto sucede, es necesario utilizar una clase CADisplayLink. CADisplayLink es un objeto que, al crearlo, envía tu clase un mensaje justo antes de que la pantalla está a punto de actualizar. Esto le da la oportunidad de mover sus puntos de vista alrededor.
Para configurar una CADisplayLink.
Crear un método que se llama cuando la pantalla updates- hacer que el método se parece a esto:
(void) actualización (CADisplayLink *) DisplayLink {}
Cuando se carga la vista, crear y preparar un objeto CADisplayLink añadiendo este código a la viewDidLoad: método en el archivo .m de su controlador de vista:
DisplayLink = [CADisplayLink displayLinkWithTarget: auto
Selector:selector (actualización)] - [DisplayLink addToRunLoop: [NSRunLoop mainRunLoop]
forMode: NSRunLoopCommonModes] -
Cuando su visión cargas, recibirá el actualizado: mensaje muchas veces por segundo, que es su oportunidad para actualizar el mundo del juego.
Configuración de una plumilla para tu iPhone o iPad
Archivos Plumín terminan en .xib y se utilizan en Interface Builder para construir las pantallas de la aplicación de juego para tu iPhone o iPad.
Para empezar a construir un archivo semilla, haga doble clic en Xcode para abrir el archivo en Interface Builder. A continuación, puede arrastrar puntos de vista y los controles, como imágenes y botones, en el archivo semilla.
Para hacer su código de cuenta cuando el usuario pulsa los botones en la pantalla, siga estos pasos:
Para cada botón en la pantalla, añadir sus métodos de acción en el fichero .h para su controlador de vista.
Métodos de acción se ven así:
- (IBAction) doSomething-
Conecte el botón a la punta siguiendo estos pasos:
Volver al archivo de semilla en Interface Builder, y abrir la ventana de documento pulsando Comando + 0.
Usted ve la entrada propietario de un archivo en la parte superior de la lista.
Mantenga presionada la tecla Control y haga clic y arrastre desde el botón en el propietario del archivo.
Una lista de los métodos de acción puede adjuntar el botón para que aparezca.
Haga clic en el método que desea.
Agregue el código de método que se ejecuta cuando el botón se pulsa en el fichero .m para su controlador de vista.
Este código se ve algo como esto:
- (IBAction) doSomething {// se ejecuta este código cuando se pulsa el botón}
Es posible que también desea que su código sea capaz de referirse a los puntos de vista en su punta. Para ello, es necesario tener una variable de salida para cada vista que desea hacer referencia.
Para configurar la variable de salida, siga estos pasos:
Añadir una variable de salida para almacenar la referencia al control y lo puso en el archivo .h para su controlador de vista, entre las llaves.
Las variables de salida se ven así:
IBOutlet UIButton * myButton-
Conecte el control para la variable de salida con la apertura de la ventana de documento, manteniendo pulsada la tecla Control y arrastrando desde el propietario del archivo en el control.
Ahora cada vez que utilice la variable myButton, se trabaja con el control gracias a la conexión a la punta.
Cuándo utilizar subclases en el iPhone y el iPad de Desarrollo de Juegos
Subclassing es uno de los mecanismos que se utilizan para personalizar los comportamientos mientras usted desarrolla su juego para el iPhone o el iPad. Subclassing implica las dos etapas siguientes:
La creación de una nueva clase, un llamado subclase, que hereda propiedades de otro (super) Clase
Adición de propiedades según sea necesario para su aplicación para iPhone
En general, usted quiere subclase
UIView: Para crear su (más complejo) vistas de contenido, que puede llenar con los controles, gráficos, etc.
UIViewController: Para administrar los puntos de vista de contenido y conectarlo con el modelo
NSObject: Para crear vistas de modelo y delegados
Uso de objetos del bloque en el iPhone y el iPad de Desarrollo de Juegos
Bloques son una extensión del lenguaje C y están plenamente apoyado por Objective-C, el lenguaje de programación subyacente para todas las cosas de Mac. En el nuevo iOS 4, los bloques se utilizan cada vez más en lugar de (o reemplazar)
Los delegados y delegadas métodos
Funciones de devolución de llamada
Manipuladores de equipamiento para las operaciones de una sola vez
Otras técnicas de enumeración
Tareas asíncronas que necesitan realizar
Con iOS 4, los siguientes métodos y funciones de los marcos del sistema toman bloques como parámetros:
Los bloques pueden ser declaradas como variables, pero también se puede escribir una línea literal bloque donde se requiere como argumento.
Para declarar una variable de bloque:
Utilice el operador ^ con el nombre de la variable.
Por ejemplo, para declarar una variable de bloque que devuelve void y toma un NSNotification * como argumento único, haga lo siguiente:
void (^ keyBoardWillShow) (NSNotification *)
Al igual que con cualquier otra declaración de variables (como int i = 1), siga el signo de igualdad con su definición.
Usted lo hace mediante el operador ^ de nuevo para indicar el comienzo de la bloque literal - la definición asignada a la variable de bloque. El bloque literal incluye nombres de argumentos, así como el cuerpo (o código) de la manzana. Por ejemplo, para informar al compilador que el nombre del argumento es entr, haga lo siguiente
= ^ (NSNotification * entr) {código
Y luego terminar el bloque literal con el habitual
} -
Utilice la variable de bloque, como lo haría con cualquier otra variable, como argumento en un mensaje:
usingBlock: keyBoardWillShow
Para escribir una línea literal bloque, utilice el operador ^ para indicar el comienzo del bloque literal - la definición asignada a la variable de bloque. El bloque literal incluye nombres de argumentos, así como el cuerpo (código) del bloque.
Por ejemplo, para escribir una línea literal bloque donde se requiere como argumento para usingBlock, haga lo siguiente:
usingBlock: ^ (NSNotification * entr) {código
Y luego terminar el bloque literal con la habitual (no se necesita ningún punto y coma porque está siendo utilizado como un argumento dentro de un mensaje)
}