diff options
author | Starla Insigna <starla4444@gmail.com> | 2013-08-27 11:39:37 -0400 |
---|---|---|
committer | Starla Insigna <starla4444@gmail.com> | 2013-08-27 11:39:37 -0400 |
commit | ffd335aca284c286030e2b26f1a02a0441748f46 (patch) | |
tree | bcc1c241621fe159ae7ef178122fb41c5f23eb00 /titlestate.cpp | |
parent | d47da18958b5214def5127e201f60668c566d9bb (diff) | |
download | mazeoflife-ffd335aca284c286030e2b26f1a02a0441748f46.tar.gz mazeoflife-ffd335aca284c286030e2b26f1a02a0441748f46.tar.bz2 mazeoflife-ffd335aca284c286030e2b26f1a02a0441748f46.zip |
Started rewriting game from scratch with SDL2
Only the title screen is currently implemented
Diffstat (limited to 'titlestate.cpp')
-rw-r--r-- | titlestate.cpp | 84 |
1 files changed, 38 insertions, 46 deletions
diff --git a/titlestate.cpp b/titlestate.cpp index 5a9b91e..8375c4a 100644 --- a/titlestate.cpp +++ b/titlestate.cpp | |||
@@ -1,52 +1,44 @@ | |||
1 | #include "includes.h" | 1 | #include "titlestate.h" |
2 | #include "util.h" | ||
2 | 3 | ||
3 | TitleState::TitleState() | 4 | State* TitleState::operator() (SDL_Renderer* renderer) |
4 | { | 5 | { |
5 | background = SDL_LoadBMP("resources/title.bmp"); | 6 | SDL_Texture* background = loadImage(renderer, "resources/title.bmp"); |
6 | pointer = SDL_LoadBMP("resources/pointer.bmp"); | 7 | SDL_Texture* pointer = loadImage(renderer, "resources/pointer.bmp"); |
7 | 8 | int selection = 0; | |
8 | selection = 0; | 9 | SDL_Event e; |
9 | } | 10 | |
10 | 11 | for (;;) | |
11 | void TitleState::input(SDL_keysym key) | ||
12 | { | ||
13 | if ((key.sym == SDLK_UP) && (selection != 0)) | ||
14 | { | 12 | { |
15 | selection--; | 13 | while (SDL_PollEvent(&e)) |
16 | } else if ((key.sym == SDLK_DOWN) && (selection != 3)) | ||
17 | { | ||
18 | selection++; | ||
19 | } else if (key.sym == SDLK_RETURN) | ||
20 | { | ||
21 | switch (selection) | ||
22 | { | 14 | { |
23 | case 0: | 15 | if (e.type == SDL_QUIT) |
24 | changeState(new GameState()); | 16 | { |
25 | 17 | return NULL; | |
26 | break; | 18 | } else if (e.type == SDL_KEYDOWN) |
27 | case 1: | 19 | { |
28 | changeState(new HowToPlayState()); | 20 | if ((e.key.keysym.sym == SDLK_UP) && (selection != 0)) |
29 | 21 | { | |
30 | break; | 22 | selection--; |
31 | case 2: | 23 | } else if ((e.key.keysym.sym == SDLK_DOWN) && (selection != 3)) |
32 | changeState(new ChooseHighscoreListState()); | 24 | { |
33 | 25 | selection++; | |
34 | break; | 26 | } else if (e.key.keysym.sym == SDLK_RETURN) |
35 | case 3: | 27 | { |
36 | exit(0); | 28 | switch (selection) |
29 | { | ||
30 | //case 0: return new GameState(); | ||
31 | //case 1: return new HowToPlayState(); | ||
32 | //case 2: return new ChooseHighscoreListState(); | ||
33 | case 3: return NULL; | ||
34 | } | ||
35 | } | ||
36 | } | ||
37 | } | 37 | } |
38 | |||
39 | SDL_RenderClear(renderer); | ||
40 | SDL_RenderCopy(renderer, background, NULL, NULL); | ||
41 | applyTexture(renderer, pointer, 136, selection==0?316:(selection==1?350:(selection==2?381:417))); | ||
42 | SDL_RenderPresent(renderer); | ||
38 | } | 43 | } |
39 | } | 44 | } \ No newline at end of file |
40 | |||
41 | void TitleState::render(SDL_Surface* screen) | ||
42 | { | ||
43 | SDL_BlitSurface(background, NULL, screen, NULL); | ||
44 | |||
45 | SDL_Rect pSpace; | ||
46 | pSpace.x = 136; | ||
47 | pSpace.y = (selection==0?316:(selection==1?350:(selection==2?381:417))); | ||
48 | pSpace.w = pointer->w; | ||
49 | pSpace.h = pointer->h; | ||
50 | |||
51 | SDL_BlitSurface(pointer, NULL, screen, &pSpace); | ||
52 | } | ||