Bạn có thể có một phương thức công khai duy nhất trong Game
lớp để phục vụ như một điểm vào (ví dụ: một phương thức được gọi Run()
). Sau đó, điều duy nhất bạn cần làm bên trong main()
để có được mọi thứ và chạy sẽ là gọi phương thức đó - không có gì hơn.
Các Run()
phương pháp có thể bắt đầu bằng cách khởi tạo tất cả các hệ thống con và sau đó tiến hành để vào vòng đấu chính. Nó cũng nên quan tâm đến việc tắt tất cả mọi thứ đúng cách khi vòng lặp kết thúc.
Mọi thứ khác trong lớp có thể được giữ riêng tư (hoặc được bảo vệ nếu bạn muốn tạo một trò chơi cụ thể bằng cách kế thừa từ nó) bởi vì nó sẽ chỉ cần thực hiện trong trò chơi của bạn.
Thí dụ
Lưu ý: Hoàn toàn trống rỗng, không tính toán thời gian, vòng lặp trò chơi cực kỳ đơn giản, chỉ là một ví dụ để bạn bắt đầu. Đối với một trò chơi thực tế, nó có thể có độ phức tạp cao hơn nhiều so với điều này:
class Game
{
public:
void Run()
{
Initialize();
while(_running)
Frame();
Shutdown();
}
private:
void Initialize() { /* Initialize subsystems */ }
void Shutdown() { /* Shutdown subsystems */ }
void Frame() { /* Update and draw game */ }
bool _running = true;
}
Và về main()
phương pháp của bạn :
int main()
{
Game game;
game.Run();
return 0;
}