Pergunta

Olá, quero escrever um jogo com uma forma de jogo principal e muitas outras formas normais.Qual é a melhor maneira de gerenciar o ciclo de atualização e pintura nesse caso?

O loop de pintura da forma do jogo deve ser substituído apenas?ou devo fazer um application.do events() no método principal?

Por favor, me oriente sobre isso.eu sou novo no mundo do Windows Forms

Foi útil?

Solução

Seu thread lógico deve ser separado do formulário, então você não precisará de DoEvents().Se você estiver usando GDI+, deverá forçar um Update() em um loop.O Windows Forms não executa muito bem o buffer duplo; portanto, dependendo de quão sofisticados serão seus gráficos, você poderá ter algumas dificuldades com cintilação.

Minha sugestão é usar o Biblioteca gerenciada DirectX.É muito para aprender, mas dá tudo que você precisa.

EDITAR:Tenho lido recentemente sobre o WPF, que parece ser uma plataforma muito melhor para jogos simples a moderadamente complexos, porque fornece uma API de nível muito mais alto que o Biblioteca gerenciada por DirectX.Provavelmente tem limitações de desempenho e flexibilidade para jogos mais complexos.

Outras dicas

O corpo da pergunta não menciona Compact Framework, apenas Winforms.Esta é praticamente a resposta aceita para Winforms de Tom Miller (Xna Game Studio e gerente de DirectX da Microsoft):

Loop de jogo WinForms

@Rico B:O loop do jogo é independente de como a renderização é feita (DirectX, MDX, GDI+)

Se você está fazendo um jogo, você deve investigar DirectX, OpenGL, ou XNA.

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