Eu tenho uma classe de jogo com minhas principais funções de jogo e instâncias de objetos de jogo como tela, etc. Meu jogo é feito usando C ++ e SDL.
Eu estava pensando, no entanto, deveria ser uma função principal da minha classe? Ou devo fazer "Game game"; de "int main ();" e tem o loop dentro de main?
Minha dúvida é: se eu fizer isso de fora, principalmente, a maioria das minhas coisas terá que ser pública, e isso é meio ruim, não é?
Alguma ideia? Obrigado!
Respostas:
Você pode ter um único método público em sua
Game
classe para servir como ponto de entrada (por exemplo, um método chamadoRun()
). Então, a única coisa que você precisa fazermain()
para colocar tudo em funcionamento seria chamar esse método - nada mais.O
Run()
método pode começar inicializando todos os subsistemas e depois entrar no loop principal do jogo. Também deve cuidar de desligar tudo corretamente assim que o loop terminar.Todo o resto da classe pode permanecer privado (ou protegido, se você preferir criar um jogo concreto herdando-o), porque ele só será necessário para a implementação do jogo.
Exemplo
Nota: ossos completamente nus, sem cálculos de tempo, loop de jogo extremamente simplista, apenas um exemplo para você começar. Para um jogo real, provavelmente deve ter muito mais complexidade do que isso:
E no seu
main()
método:fonte