#include "TetrisMenu.h" TetrisMenu::TetrisMenu(): back("images/menu/background.bmp"), scores_on("images/menu/highscores_on.bmp"), scores_off("images/menu/highscores_off.bmp"), credits_on("images/menu/credits_on.bmp"), credits_off("images/menu/credits_off.bmp"), new_on("images/menu/newgame_on.bmp"), new_off("images/menu/newgame_off.bmp"), arrow("images/menu/arrow.bmp", 100, 50, 50) { selected = 0; } void TetrisMenu::on_keychange(Uint8 type, SDLKey sym) { SDL_Event event; if (type == SDL_KEYDOWN) { switch (sym) { case SDLK_DOWN: if (selected < 2) selected ++; else selected = 0; break; case SDLK_UP: if (selected > 0) selected --; else selected = 2; break; case SDLK_RETURN: if (selected == 0) { push_screen(&game); } } } } void TetrisMenu::draw(void) { SDL_Rect pos; SDL_BlitSurface(back.get_surface(), NULL, screen, NULL); pos.x = 164; pos.y = 140; if (selected == 0) SDL_BlitSurface(new_on.get_surface(), NULL, screen, &pos); else SDL_BlitSurface(new_off.get_surface(), NULL, screen, &pos); pos.y += 50; if (selected == 1) SDL_BlitSurface(scores_on.get_surface(), NULL, screen, &pos); else SDL_BlitSurface(scores_off.get_surface(), NULL, screen, &pos); pos.y += 50; if (selected == 2) SDL_BlitSurface(credits_on.get_surface(), NULL, screen, &pos); else SDL_BlitSurface(credits_off.get_surface(), NULL, screen, &pos); arrow.BlitItTo(screen, 170, 140 + 50*selected); }