"Lost treasure of mBedungu" 100 level puzzle game for RETRO
Dependencies: LCD_ST7735 RetroPlatform mbed
Game/LevelScreen.cpp@1:dcea5500a32d, 2015-03-01 (annotated)
- Committer:
- Architect
- Date:
- Sun Mar 01 05:32:06 2015 +0000
- Revision:
- 1:dcea5500a32d
- Parent:
- 0:f5f961973d01
Initial checkin
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Architect | 1:dcea5500a32d | 1 | /* |
Architect | 1:dcea5500a32d | 2 | * (C) Copyright 2015 Valentin Ivanov. All rights reserved. |
Architect | 1:dcea5500a32d | 3 | * |
Architect | 1:dcea5500a32d | 4 | * This file is part of the "Lost treasure of mBedungu" game application for Retro |
Architect | 1:dcea5500a32d | 5 | * |
Architect | 1:dcea5500a32d | 6 | * The "Lost treasure of mBedungu" application is free software: you can redistribute it and/or modify |
Architect | 1:dcea5500a32d | 7 | * it under the terms of the GNU Lesser General Public License as published by |
Architect | 1:dcea5500a32d | 8 | * the Free Software Foundation, either version 3 of the License, or |
Architect | 1:dcea5500a32d | 9 | * (at your option) any later version. |
Architect | 1:dcea5500a32d | 10 | * |
Architect | 1:dcea5500a32d | 11 | * This program is distributed in the hope that it will be useful, |
Architect | 1:dcea5500a32d | 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
Architect | 1:dcea5500a32d | 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
Architect | 1:dcea5500a32d | 14 | * GNU Lesser General Public License for more details. |
Architect | 1:dcea5500a32d | 15 | * |
Architect | 1:dcea5500a32d | 16 | * You should have received a copy of the GNU Lesser General Public License |
Architect | 1:dcea5500a32d | 17 | * along with this program. If not, see <http://www.gnu.org/licenses/> |
Architect | 1:dcea5500a32d | 18 | * |
Architect | 1:dcea5500a32d | 19 | */ |
Architect | 1:dcea5500a32d | 20 | |
Architect | 0:f5f961973d01 | 21 | #include "mbed.h" |
Architect | 0:f5f961973d01 | 22 | #include "LevelScreen.h" |
Architect | 1:dcea5500a32d | 23 | #include "GameScreen.h" |
Architect | 0:f5f961973d01 | 24 | #include "Retro.h" |
Architect | 1:dcea5500a32d | 25 | #include "Color565.h" |
Architect | 0:f5f961973d01 | 26 | #include "Sprites.h" |
Architect | 0:f5f961973d01 | 27 | |
Architect | 1:dcea5500a32d | 28 | |
Architect | 0:f5f961973d01 | 29 | extern Retro retro; |
Architect | 1:dcea5500a32d | 30 | extern GameScreen * pGameScreen; |
Architect | 0:f5f961973d01 | 31 | |
Architect | 0:f5f961973d01 | 32 | LevelScreen::LevelScreen() |
Architect | 0:f5f961973d01 | 33 | { |
Architect | 0:f5f961973d01 | 34 | _state = 0; |
Architect | 0:f5f961973d01 | 35 | } |
Architect | 0:f5f961973d01 | 36 | |
Architect | 1:dcea5500a32d | 37 | |
Architect | 1:dcea5500a32d | 38 | |
Architect | 1:dcea5500a32d | 39 | |
Architect | 0:f5f961973d01 | 40 | Screen LevelScreen::Update() |
Architect | 1:dcea5500a32d | 41 | { |
Architect | 1:dcea5500a32d | 42 | int x = 68; |
Architect | 1:dcea5500a32d | 43 | int y = 60; |
Architect | 1:dcea5500a32d | 44 | |
Architect | 1:dcea5500a32d | 45 | if( _state == 0 ) { |
Architect | 1:dcea5500a32d | 46 | |
Architect | 1:dcea5500a32d | 47 | retro.display.clearScreen(); |
Architect | 1:dcea5500a32d | 48 | drawString(0,0,"@@@@SELECT@LEVEL@@@@", palette); |
Architect | 1:dcea5500a32d | 49 | drawLevelNumber(x,y,GameLevel); |
Architect | 1:dcea5500a32d | 50 | |
Architect | 1:dcea5500a32d | 51 | _state = 1; |
Architect | 1:dcea5500a32d | 52 | } |
Architect | 1:dcea5500a32d | 53 | |
Architect | 1:dcea5500a32d | 54 | if(retro.pressed(BTN_SHIP)) { |
Architect | 1:dcea5500a32d | 55 | _state = 0; |
Architect | 1:dcea5500a32d | 56 | pGameScreen->unpackLevel(GameLevel); |
Architect | 1:dcea5500a32d | 57 | return Game; |
Architect | 1:dcea5500a32d | 58 | } else if( retro.pressed(BTN_ROBOT)) { |
Architect | 1:dcea5500a32d | 59 | _state = 0; |
Architect | 1:dcea5500a32d | 60 | return Game; |
Architect | 1:dcea5500a32d | 61 | } |
Architect | 1:dcea5500a32d | 62 | |
Architect | 1:dcea5500a32d | 63 | |
Architect | 1:dcea5500a32d | 64 | if(retro.pressed(BTN_UP)) { |
Architect | 1:dcea5500a32d | 65 | |
Architect | 1:dcea5500a32d | 66 | GameLevel+=5; |
Architect | 1:dcea5500a32d | 67 | if( GameLevel > 99 ) |
Architect | 1:dcea5500a32d | 68 | GameLevel = 99; |
Architect | 1:dcea5500a32d | 69 | |
Architect | 1:dcea5500a32d | 70 | drawLevelNumber(x,y,GameLevel); |
Architect | 1:dcea5500a32d | 71 | |
Architect | 1:dcea5500a32d | 72 | } else if(retro.pressed(BTN_DOWN)) { |
Architect | 1:dcea5500a32d | 73 | GameLevel-=5; |
Architect | 1:dcea5500a32d | 74 | if( GameLevel < 0 ) |
Architect | 1:dcea5500a32d | 75 | GameLevel = 0; |
Architect | 1:dcea5500a32d | 76 | |
Architect | 1:dcea5500a32d | 77 | drawLevelNumber(x,y,GameLevel); |
Architect | 1:dcea5500a32d | 78 | |
Architect | 1:dcea5500a32d | 79 | } else if(retro.pressed(BTN_LEFT)) { |
Architect | 1:dcea5500a32d | 80 | GameLevel--; |
Architect | 1:dcea5500a32d | 81 | if( GameLevel < 0 ) |
Architect | 1:dcea5500a32d | 82 | GameLevel = 0; |
Architect | 1:dcea5500a32d | 83 | |
Architect | 1:dcea5500a32d | 84 | drawLevelNumber(x,y,GameLevel); |
Architect | 1:dcea5500a32d | 85 | |
Architect | 1:dcea5500a32d | 86 | } else if(retro.pressed(BTN_RIGHT)) { |
Architect | 1:dcea5500a32d | 87 | GameLevel++; |
Architect | 1:dcea5500a32d | 88 | if( GameLevel > 99 ) |
Architect | 1:dcea5500a32d | 89 | GameLevel = 99; |
Architect | 1:dcea5500a32d | 90 | |
Architect | 1:dcea5500a32d | 91 | drawLevelNumber(x,y,GameLevel); |
Architect | 1:dcea5500a32d | 92 | } |
Architect | 1:dcea5500a32d | 93 | |
Architect | 1:dcea5500a32d | 94 | |
Architect | 0:f5f961973d01 | 95 | return Level; |
Architect | 0:f5f961973d01 | 96 | } |