Skip to content

Commit 7bd8273

Browse files
authored
Merge pull request #3 from Abhaygithub0/Feature3_LevelProgression
Feature3 level progression
2 parents f7f19a5 + 2fdbc6b commit 7bd8273

29 files changed

+232
-46
lines changed

Array-Jumper/Array-Jumper.vcxproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@
168168
<ClInclude Include="header\Global\Config.h" />
169169
<ClInclude Include="header\Event\EventService.h" />
170170
<ClInclude Include="header\Level\BlockType.h" />
171+
<ClInclude Include="header\Level\LevelConfiguration.h" />
171172
<ClInclude Include="header\Level\LevelController.h" />
172173
<ClInclude Include="header\Level\LevelData.h" />
173174
<ClInclude Include="header\Level\LevelModel.h" />

Array-Jumper/header/Gameplay/GameplayController.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ namespace Gameplay
1212
void processObstacle();
1313
void processEndBlock();
1414

15+
bool isLastLevel();
16+
void loadNextLevel();
17+
void gameWon();
1518
void gameOver();
1619

1720
public:
@@ -20,6 +23,7 @@ namespace Gameplay
2023
void update();
2124
void render();
2225

26+
void startGame();
2327
void onPositionChanged(int position);
2428
void onDeath();
2529
};

Array-Jumper/header/Gameplay/GameplayService.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ namespace Gameplay
1818
void update();
1919
void render();
2020

21+
void startGame();
2122
void onPositionChanged(int position);
2223
void onDeath();
2324
};

Array-Jumper/header/Global/Config.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,6 @@ namespace Global
3333
static const sf::String jump_sound_path;
3434
static const sf::String level_complete_sound_path;
3535
static const sf::String move_sound_path;
36+
static const sf::String game_won_sound_path;
3637
};
3738
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#pragma once
2+
#include "LevelData.h"
3+
#include "BlockType.h"
4+
5+
namespace Level
6+
{
7+
class LevelConfiguration
8+
{
9+
private:
10+
11+
12+
BlockType level_1[LevelData::NUMBER_OF_BOXES] =
13+
{
14+
ONE, TWO, OBSTACLE_ONE, TWO, THREE, ONE, OBSTACLE_TWO, TWO, ONE, TARGET
15+
};
16+
17+
BlockType level_2[LevelData::NUMBER_OF_BOXES] =
18+
{
19+
ONE, TWO, OBSTACLE_TWO, ONE, TWO, OBSTACLE_ONE, THREE, OBSTACLE_ONE, ONE, TARGET
20+
};
21+
22+
BlockType level_3[LevelData::NUMBER_OF_BOXES] =
23+
{
24+
ONE, THREE, OBSTACLE_ONE, OBSTACLE_TWO, ONE, TWO, OBSTACLE_ONE, TWO, ONE, TARGET
25+
};
26+
27+
public:
28+
static const int NUMBER_OF_LEVELS = 3;
29+
LevelData levels[NUMBER_OF_LEVELS];
30+
31+
LevelConfiguration()
32+
{
33+
for (int i = 0; i < LevelData::NUMBER_OF_BOXES; i++)
34+
{
35+
levels[0].level_boxes[i] = level_1[i];
36+
}
37+
38+
for (int i = 0; i < LevelData::NUMBER_OF_BOXES; i++)
39+
{
40+
levels[1].level_boxes[i] = level_2[i];
41+
}
42+
43+
for (int i = 0; i < LevelData::NUMBER_OF_BOXES; i++)
44+
{
45+
levels[2].level_boxes[i] = level_3[i];
46+
}
47+
}
48+
};
49+
}

Array-Jumper/header/Level/LevelController.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ namespace Level
2222

2323
BoxDimensions getBoxDimensions();
2424
BlockType getCurrentBoxValue(int currentPosition);
25+
bool isLastLevel();
26+
void loadNextLevel();
27+
int getCurrentLevelNumber();
28+
29+
void reset();
2530
};
2631
}
2732

Array-Jumper/header/Level/LevelData.h

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,6 @@ namespace Level
88
{
99
static const int NUMBER_OF_BOXES = 10;
1010

11-
BlockType level_boxes[NUMBER_OF_BOXES] = {
12-
BlockType::ONE,
13-
BlockType::TWO,
14-
BlockType::OBSTACLE_ONE,
15-
BlockType::TWO,
16-
BlockType::THREE,
17-
BlockType::ONE,
18-
BlockType::OBSTACLE_TWO,
19-
BlockType::TWO,
20-
BlockType::ONE,
21-
BlockType::TARGET};
11+
BlockType level_boxes[NUMBER_OF_BOXES];
2212
};
2313
}

Array-Jumper/header/Level/LevelModel.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#pragma once
22
#include "LevelData.h"
3+
#include "LevelConfiguration.h"
34

45
namespace Level
56
{
@@ -18,13 +19,21 @@ namespace Level
1819
class LevelModel
1920
{
2021
private:
21-
LevelData current_level_data;
22+
const int number_of_level = LevelConfiguration::NUMBER_OF_LEVELS;
23+
LevelConfiguration level_configuration;
2224

25+
int current_level_index;
2326
public:
2427
LevelModel();
2528
~LevelModel();
2629

2730
BlockType getCurrentBoxValue(int currentPosition);
31+
32+
bool isLastLevel();
33+
void loadNextLevel();
34+
int getCurrentLevelNumber();
35+
36+
void reset();
2837
};
2938
}
3039

Array-Jumper/header/Level/LevelService.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ namespace Level
2323

2424
BoxDimensions getBoxDimensions();
2525
BlockType getCurrentBoxValue(int currentPosition);
26+
bool isLastLevel();
27+
void loadNextLevel();
28+
int getCurrentLevelNumber();
29+
30+
void resetLevels();
2631
};
2732
}
2833

Array-Jumper/header/Level/LevelView.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#pragma once
22
#include "LevelModel.h"
3+
#include "LevelData.h"
34
#include "LevelController.h"
45
#include "../../header/UI/UIElement/ImageView.h"
56

0 commit comments

Comments
 (0)