Pergunta

Eu sou novo para o desenvolvimento do iPhone. Eu tenho uma configuração loop do jogo da seguinte forma.

(void)CreateGameTick:(NSTimeInterval) in_time
{
  [NSThread detachNewThreadSelector:@selector(GameTick) toTarget:self withObject:nil];
}

Meu carrapato básico do jogo / render olhares como este

(void)GameTick
{
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

  CGRect wrect = [self bounds];

  while( m_running )
  {
    [self drawRect: wrect];
  }

  [pool release];       
}
função

Meu tornar é chamado. No entanto nada é desenhado (estou usando Core Graphics para desenhar algumas linhas em um UIView derivada).

Se eu chamar minha atualização através de um temporizador, então tudo está bem e bom.

Você pode me dizer por que o render falha quando feito através de tópicos? E é possível fazê-lo funcionar através de tópicos?

Graças Rica

Foi útil?

Solução

Você não pode (bem, não deveria) chamar -drawRect: diretamente. Em vez disso, use -setNeedsDisplay; sua visão será então atualizada na próxima vez através do laço evento. Se você estiver executando isso em um segmento separado, você pode precisar usar performSelectorOnMainThread:.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top