"Lost treasure of mBedungu" 100 level puzzle game for RETRO

Dependencies:   LCD_ST7735 RetroPlatform mbed

Into Level 0 Menu Level 99

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?

UserRevisionLine numberNew 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 }