From 8973c2cb02f0c501e395381f2f16eb816cc0dfd6 Mon Sep 17 00:00:00 2001 From: Starla Insigna Date: Wed, 28 Aug 2013 11:55:44 -0400 Subject: Added how to play --- resources/htp1.bmp | Bin 921738 -> 921656 bytes resources/htp2.bmp | Bin 921738 -> 921656 bytes titlestate.cpp | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++-- titlestate.h | 10 ++++++ 4 files changed, 100 insertions(+), 2 deletions(-) diff --git a/resources/htp1.bmp b/resources/htp1.bmp index df06101..572c58b 100644 Binary files a/resources/htp1.bmp and b/resources/htp1.bmp differ diff --git a/resources/htp2.bmp b/resources/htp2.bmp index 5dcb4c4..eb00118 100644 Binary files a/resources/htp2.bmp and b/resources/htp2.bmp differ diff --git a/titlestate.cpp b/titlestate.cpp index 177a4c8..bf966ea 100644 --- a/titlestate.cpp +++ b/titlestate.cpp @@ -35,7 +35,7 @@ State* TitleState::operator() (SDL_Renderer* renderer) switch (selection) { case 0: return new GameState(); - //case 1: return new HowToPlayState(); + case 1: return new HowToPlayState(); case 2: return new ChooseHighscoreListState(); case 3: return NULL; } @@ -43,4 +43,92 @@ State* TitleState::operator() (SDL_Renderer* renderer) } } } -} \ No newline at end of file +} + +State* HowToPlayState::operator() (SDL_Renderer* renderer) +{ + SDL_Texture* background = loadImage(renderer, "resources/htp1.bmp"); + SDL_Texture* pointer = loadImage(renderer, "resources/pointer.bmp"); + int selection = 0; + SDL_Event e; + + for (;;) + { + SDL_RenderClear(renderer); + SDL_RenderCopy(renderer, background, NULL, NULL); + applyTexture(renderer, pointer, selection==0?74:216, 430); + SDL_RenderPresent(renderer); + + while (SDL_PollEvent(&e)) + { + if (e.type == SDL_QUIT) + { + return NULL; + } else if (e.type == SDL_KEYDOWN) + { + if ((e.key.keysym.sym == SDLK_LEFT) && (selection != 0)) + { + selection--; + } else if ((e.key.keysym.sym == SDLK_RIGHT) && (selection != 1)) + { + selection++; + } else if (e.key.keysym.sym == SDLK_RETURN) + { + switch (selection) + { + case 0: + return new HowToPlayPageTwoState(); + + break; + case 1: + return new TitleState(); + } + } + } + } + } +} + +State* HowToPlayPageTwoState::operator() (SDL_Renderer* renderer) +{ + SDL_Texture* background = loadImage(renderer, "resources/htp2.bmp"); + SDL_Texture* pointer = loadImage(renderer, "resources/pointer.bmp"); + int selection = 0; + SDL_Event e; + + for (;;) + { + SDL_RenderClear(renderer); + SDL_RenderCopy(renderer, background, NULL, NULL); + applyTexture(renderer, pointer, selection==0?45:238, 430); + SDL_RenderPresent(renderer); + + while (SDL_PollEvent(&e)) + { + if (e.type == SDL_QUIT) + { + return NULL; + } else if (e.type == SDL_KEYDOWN) + { + if ((e.key.keysym.sym == SDLK_LEFT) && (selection != 0)) + { + selection--; + } else if ((e.key.keysym.sym == SDLK_RIGHT) && (selection != 1)) + { + selection++; + } else if (e.key.keysym.sym == SDLK_RETURN) + { + switch (selection) + { + case 0: + return new HowToPlayState(); + + break; + case 1: + return new TitleState(); + } + } + } + } + } +} diff --git a/titlestate.h b/titlestate.h index 11d16d7..c7beb91 100644 --- a/titlestate.h +++ b/titlestate.h @@ -9,4 +9,14 @@ class TitleState : public State { State* operator() (SDL_Renderer* renderer); }; +class HowToPlayState : public State { + public: + State* operator() (SDL_Renderer* renderer); +}; + +class HowToPlayPageTwoState : public State { + public: + State* operator() (SDL_Renderer* renderer); +}; + #endif \ No newline at end of file -- cgit 1.4.1