UMA loop do jogo
recebe o seu código para atualizar o mundo do jogo em seu iPhone ou iPad muitas vezes por segundo - rápido o suficiente para fazer com que pareça movimento fluido para o jogador.
Para fazer isso, você precisa atualizar a posição de todos os seus pontos de vista cada vez que a tela é redesenhada pelo iOS. Para ser notificado de quando isso acontece, você precisa usar uma classe CADisplayLink. CADisplayLink é um objeto que, ao criá-lo, envia sua classe uma mensagem pouco antes de a tela está prestes a atualizar. Isto dá-lhe a oportunidade de mudar seus pontos de vista ao redor.
Para configurar uma CADisplayLink.
Crie um método que é chamado quando a tela updates- tornar o método parecido com este:
(Void) update: (CADisplayLink *) DisplayLink {}
Quando sua visão é carregado, criar e preparar um objeto CADisplayLink adicionando este código ao viewDidLoad: método no arquivo m do seu controlador de exibição:
DisplayLink = [CADisplayLink displayLinkWithTarget: auto
selector: @selector (update:)] - [DisplayLink addToRunLoop: [NSRunLoop mainRunLoop]
forMode: NSRunLoopCommonModes] -
Quando seus vista cargas, receberá a atualizar: mensagens muitas vezes por segundo, o que é a sua oportunidade para atualizar o mundo do jogo.
Configurando um Nib para o seu iPhone ou iPad
arquivos nib terminar em .xib e são usados em Interface Builder para construir as telas de sua aplicação do jogo para o seu iPhone ou iPad.
Para começar a construir um arquivo nib, clique duas vezes no Xcode para abrir o arquivo no Interface Builder. Você pode arrastar pontos de vista e controles, como imagens e botões, para o arquivo nib.
Para fazer o seu código ciente de quando o usuário toca botões na tela, siga estes passos:
Para cada botão na tela, adicionar os seus métodos de ação para o arquivo .h para o seu controlador de exibição.
Os métodos de ação semelhante a este:
- (IBAction) doSomething-
Ligue o botão para a ponta, seguindo estes passos:
Volte para o arquivo nib no Interface Builder, e abra a janela de documento pressionando Command + 0.
Você vê a entrada proprietário de um arquivo no topo da lista.
Mantenha pressionada a tecla Control e clique e arraste a partir do botão para o dono do arquivo.
Uma lista de métodos de ação você pode anexar o botão para aparecer.
Clique no método que você deseja.
Adicione o código de método que é executado quando o botão for pressionado para o arquivo .m para o seu controlador de exibição.
Este código é algo como isto:
- (IBAction) doSomething {// Este código é executado quando o botão for pressionado}
Você também pode querer que seu código seja capaz de se referir aos pontos de vista no seu bico. Para fazer isso, você precisa ter uma variável de saída para cada modo de exibição que você deseja consultar.
Para configurar a variável de saída, siga estes passos:
Adicionar uma variável de saída para armazenar a referência para o controle e colocá-lo no arquivo .h para o seu controlador de vista, entre as chaves.
variáveis de saída parecido com este:
IBOutlet UIButton * myButton-
Conecte o controle para a variável de saída, abrindo a janela do documento, mantendo pressionada a tecla Control, e arrastando a partir do dono do arquivo para o controle.
Agora, sempre que você usar a variável de myButton, você trabalha com o controle que você conectou no bico.
Quando usar Subclassing no iPhone e iPad Desenvolvimento de Jogos
subclassing é um dos mecanismos que você usa para personalizar comportamentos enquanto você desenvolver o seu jogo iPhone ou iPad. Subclassing envolve as duas etapas seguintes:
Criando uma nova classe, uma apelidado subclasse, que herda as propriedades de outro (super) classe
Adicionando propriedades conforme necessário para seu aplicativo para iPhone
Em geral, você deseja subclasse
UIView: Para criar a sua (mais complexa) pontos de vista de conteúdo, que você pode preencher com controles, gráficos e afins
UIViewController: Para gerenciar os pontos de vista de conteúdo e conectá-lo com o modelo
NSObject: Para criar vistas de modelo e delegados
Usando objetos bloco no iPhone e iPad Desenvolvimento de Jogos
blocos são uma extensão da linguagem C e são totalmente suportados pelo Objective-C, a linguagem de programação subjacente para todas as coisas do Mac. Nos novos iOS 4, os blocos são cada vez mais utilizados em vez de (ou para substituir)
Os delegados e os métodos de delegado
funções de retorno
manipuladores de conclusão para as operações de uma só vez
Outras técnicas de enumeração
tarefas assíncronas que precisam ser executadas
Com o iOS 4, os seguintes métodos e funções das estruturas de sistemas de tomar blocos como parâmetros:
manipuladores de conclusão
notificação manipuladores
Enumeração
Ver animação e transições
classificando
Os blocos podem ser declarados como variáveis, mas você também pode escrever uma linha literal bloco onde é exigido como um argumento.
Para declarar uma variável de bloco:
Use o operador ^ com o nome da variável.
Por exemplo, para declarar uma variável de bloco que retorna void e tem um NSNotification * como seu único argumento, faça o seguinte:
void (^ keyBoardWillShow) (NSNotification *)
Assim como com qualquer outra declaração de variável (como int i = 1), siga o sinal de igual com a sua definição.
Para fazer isso usando o operador ^ novamente para indicar o início do bloco literal - a definição atribuída à variável bloco. O bloco literal inclui nomes de argumento, bem como o corpo (ou código) do bloco. Por exemplo, para informar o compilador que o nome do argumento é de notificação, faça o seguinte
= ^ (NSNotification * notificação) {code
E, em seguida, acabar com o bloco literal com o habitual
} -
Use a variável de bloco, como faria com qualquer outra variável, como um argumento em uma mensagem:
usingBlock: keyBoardWillShow
Para escrever um bloco em linha literal, use o operador ^ para indicar o início do bloco literal - a definição atribuída à variável bloco. O bloco literal inclui nomes de argumentos, bem como o corpo (código) do bloco.
Por exemplo, para escrever uma linha literal bloco onde é exigido como um argumento para usingBlock, faça o seguinte:
usingBlock: ^ (NSNotification * notificação) {code
E, em seguida, acabar com o bloco literal com a usual (não é necessário nenhum ponto e vírgula, porque ele está sendo usado como um argumento dentro de uma mensagem)
}