Listing 1: Startup method for Tetris game
// These brushes are global and shared by a few objects.
wxBrush *brushes[10];
wxFrame *TrisApp::OnInit(void) {
// Seed random number generator based on current time.
time_t tm;
tm = time(NULL);
srand(tm);
// Create the base frame for the application.
appFrame = new TrisFrame(NULL);
// Create the menu.
wxMenu *fileMenu = new wxMenu;
fileMenu->Append(WXTRIS_MENU_START, "&Start", "Start a new game");
fileMenu->Append(WXTRIS_MENU_HIGHSCORES, "&High Scores",
"Show high scores");
fileMenu->Append(WXTRIS_MENU_QUIT, "E&xit", "Quit wxTris");
appFrame->menuBar = new wxMenuBar;
appFrame->menuBar->Append(fileMenu, "&File");
appFrame->SetMenuBar(appFrame->menuBar);
// Set up colors. These will be used for the duration of the game.
wxColor c1("BLACK");
wxColor c2("RED");
...
wxColor c9("GREY");
// trisBLACK .. trisGREY are enumerated starting from 0.
brushes[trisBLACK] = new wxBrush(c1, wxSOLID);
brushes[trisRED] = new wxBrush(c2, wxSOLID);
...
brushes[trisGREY] = new wxBrush(c9, wxSOLID);
// Create the playing field.
field = new TrisField(appFrame);
gameState = NO_GAME;
appFrame->Show(TRUE);
return appFrame;
}
//End of File