Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Array-Jumper/Array-Jumper.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@
<ClInclude Include="header\Global\Config.h" />
<ClInclude Include="header\Event\EventService.h" />
<ClInclude Include="header\Level\BlockType.h" />
<ClInclude Include="header\Level\LevelConfiguration.h" />
<ClInclude Include="header\Level\LevelController.h" />
<ClInclude Include="header\Level\LevelData.h" />
<ClInclude Include="header\Level\LevelModel.h" />
Expand Down
1 change: 1 addition & 0 deletions Array-Jumper/Array-Jumper.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@
<ClInclude Include="header\Gameplay\GameplayController.h" />
<ClInclude Include="header\Gameplay\GameplayService.h" />
<ClInclude Include="header\Gameplay\GameplayUIController.h" />
<ClInclude Include="header\Level\LevelConfiguration.h" />
</ItemGroup>
<ItemGroup>
<Media Include="assets\sounds\background_music.mp3" />
Expand Down
5 changes: 5 additions & 0 deletions Array-Jumper/header/Gameplay/GameplayController.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,12 @@ namespace Gameplay
bool isObstacle(Level::BlockType value);
bool isEndBlock(Level::BlockType value);

bool isLastLevel();
void loadNextLevel();

void gameOver();

void gameWon();
public:
void initialize();
void update();
Expand Down
3 changes: 3 additions & 0 deletions Array-Jumper/header/Gameplay/GameplayUIController.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,15 @@ namespace UI
const float right_offset = 250.f;

UIElement::TextView* life_count_text;
UIElement::TextView* level_count_text;

void createTexts();
void initializeTexts();
void initializeLifeCountText();
void initializeLevelCountText();

void updateLifeCountText();
void updateLevelCountText();

void destroy();

Expand Down
44 changes: 44 additions & 0 deletions Array-Jumper/header/Level/LevelConfiguration.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#pragma once
#include "LevelData.h"
namespace Level
{
class LevelConfiguration
{
private:
BlockType level_1[LevelData::number_of_boxes] =
{
ONE, TWO, OBSTACLE_ONE, TWO, THREE, ONE, OBSTACLE_TWO, TWO, ONE, TARGET
};

BlockType level_2[LevelData::number_of_boxes] =
{
ONE, TWO, OBSTACLE_TWO, ONE, TWO, OBSTACLE_ONE, THREE, OBSTACLE_ONE, ONE, TARGET
};

BlockType level_3[LevelData::number_of_boxes] =
{
ONE, THREE, OBSTACLE_ONE, OBSTACLE_TWO, ONE, TWO, OBSTACLE_ONE, TWO, ONE, TARGET
};
public:
static const int number_of_levels = 3;
LevelData levels[number_of_levels];

LevelConfiguration()
{
for (int j = 0;j < LevelData::number_of_boxes;j++)
{
levels[0].level_boxes[j] = level_1[j];
}

for (int j = 0;j < LevelData::number_of_boxes;j++)
{
levels[1].level_boxes[j] = level_2[j];
}

for (int j = 0;j < LevelData::number_of_boxes;j++)
{
levels[2].level_boxes[j] = level_3[j];
}
}
};
}
6 changes: 6 additions & 0 deletions Array-Jumper/header/Level/LevelController.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,11 @@ namespace Level

BlockType getCurrentBoxValue(int currentPosition);
BoxDimensions getBoxDimensions();

void loadNextLevel();
int getCurrentLevelNumber();
bool isLastLevel();

void reset();
};
}
5 changes: 5 additions & 0 deletions Array-Jumper/header/Level/LevelData.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ namespace Level
struct LevelData
{
static const int number_of_boxes = 10;

/*
BlockType level_boxes[number_of_boxes]= {
BlockType::ONE,
BlockType::TWO,
Expand All @@ -16,5 +18,8 @@ namespace Level
BlockType::TWO,
BlockType::ONE,
BlockType::TARGET };
*/

BlockType level_boxes[number_of_boxes];
};
}
11 changes: 10 additions & 1 deletion Array-Jumper/header/Level/LevelModel.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#pragma once
#include "../../header/Level/LevelData.h"
#include "../../header/Level/LevelConfiguration.h"
namespace Level
{
struct BoxDimensions
Expand All @@ -13,11 +14,19 @@ namespace Level
class LevelModel
{
private:
LevelData current_level_data;
//LevelData current_level_data;
LevelConfiguration level_configuration;
int current_level_index;

public:
LevelModel();
~LevelModel();
BlockType getCurrentBoxValue(int currentPosition);

void loadNextLevel();
int getCurrentLevelNumber();
bool isLastLevel();

void reset();
};
}
6 changes: 6 additions & 0 deletions Array-Jumper/header/Level/LevelService.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,11 @@ namespace Level

BoxDimensions getBoxDimensions();
BlockType getCurrentBoxValue(int currentPosition);

void loadNextLevel();
int getCurrentLevelNumber();
bool isLastLevel();

void resetLevels();
};
}
27 changes: 26 additions & 1 deletion Array-Jumper/source/Gameplay/GameplayController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,16 @@ namespace Gameplay
{
ServiceLocator::getInstance()->getPlayerService()->levelComplete();
ServiceLocator::getInstance()->getSoundService()->playSound(SoundType::LEVEL_COMPLETE);
GameService::setGameState(GameState::CREDITS);

if (isLastLevel())
{
gameWon();
return;
}

loadNextLevel();

//GameService::setGameState(GameState::CREDITS);
}
bool GameplayController::isObstacle(Level::BlockType value)
{
Expand All @@ -33,6 +42,17 @@ namespace Gameplay
return true;
return false;
}
bool GameplayController::isLastLevel()
{
if (ServiceLocator::getInstance()->getLevelService()->isLastLevel())
return true;
else
return false;
}
void GameplayController::loadNextLevel()
{
ServiceLocator::getInstance()->getLevelService()->loadNextLevel();
}
void GameplayController::initialize()
{
}
Expand Down Expand Up @@ -60,4 +80,9 @@ namespace Gameplay
GameService::setGameState(GameState::CREDITS);
ServiceLocator::getInstance()->getSoundService()->playSound(SoundType::DEATH);
}
void GameplayController::gameWon()
{
GameService::setGameState(GameState::CREDITS);
ServiceLocator::getInstance()->getSoundService()->playSound(SoundType::LEVEL_COMPLETE);
}
}
23 changes: 23 additions & 0 deletions Array-Jumper/source/Gameplay/GameplayUIController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,25 @@ namespace UI
void GameplayUIController::update()
{
updateLifeCountText();
updateLevelCountText();
}

void GameplayUIController::render()
{
life_count_text->render();
level_count_text->render();
}

void GameplayUIController::createTexts()
{
life_count_text = new TextView();
level_count_text = new TextView();
}

void GameplayUIController::initializeTexts()
{
initializeLifeCountText();
initializeLevelCountText();
}

void GameplayUIController::initializeLifeCountText()
Expand All @@ -57,6 +61,15 @@ namespace UI
life_count_text->initialize("0", sf::Vector2f(x_position, y_position), FontType::BUBBLE_BOBBLE, font_size, sf::Color::White);
}

void GameplayUIController::initializeLevelCountText()
{
float windowWidth = ServiceLocator::getInstance()->getGraphicService()->getGameWindow()->getSize().x;
float x_position = (left_offset);
float y_position = top_offset;

level_count_text->initialize("0", sf::Vector2f(x_position, y_position), FontType::BUBBLE_BOBBLE, font_size, sf::Color::White);
}

void GameplayUIController::updateLifeCountText()
{
int life_count = ServiceLocator::getInstance()->getPlayerService()->getCurrentLives();
Expand All @@ -67,6 +80,16 @@ namespace UI
life_count_text->update();
}

void GameplayUIController::updateLevelCountText()
{
int level_count = ServiceLocator::getInstance()->getLevelService()->getCurrentLevelNumber();

std::string level_count_string = "LEVEL: " + std::to_string(level_count);

level_count_text->setText(level_count_string);
level_count_text->update();
}

void GameplayUIController::destroy()
{
delete(life_count_text);
Expand Down
16 changes: 16 additions & 0 deletions Array-Jumper/source/Level/LevelController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,20 @@ namespace Level
{
return level_view->getBoxDimensions();
}
void LevelController::loadNextLevel()
{
level_model->loadNextLevel();
}
int LevelController::getCurrentLevelNumber()
{
return level_model->getCurrentLevelNumber();
}
bool LevelController::isLastLevel()
{
return level_model->isLastLevel();
}
void LevelController::reset()
{
level_model->reset();
}
}
28 changes: 26 additions & 2 deletions Array-Jumper/source/Level/LevelModel.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,37 @@
#include "../../header/Level/LevelModel.h"
namespace Level
{
LevelModel::LevelModel() {}
LevelModel::LevelModel() { current_level_index = 0; }
LevelModel::~LevelModel() {}


BlockType LevelModel::getCurrentBoxValue(int currentPosition)
{
return current_level_data.level_boxes[currentPosition];
//return current_level_data.level_boxes[currentPosition];
return level_configuration.levels[current_level_index].level_boxes[currentPosition];
}

void LevelModel::loadNextLevel()
{
current_level_index++;
}

int LevelModel::getCurrentLevelNumber()
{
return current_level_index + 1;
}

bool LevelModel::isLastLevel()
{
if (current_level_index == LevelConfiguration::number_of_levels -1)
return true;
else
return false;
}

void LevelModel::reset()
{
current_level_index = 0;
}

}
20 changes: 20 additions & 0 deletions Array-Jumper/source/Level/LevelService.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,26 @@ namespace Level
return level_controller->getCurrentBoxValue(currentPosition);
}

void LevelService::loadNextLevel()
{
level_controller->loadNextLevel();
}

int LevelService::getCurrentLevelNumber()
{
return level_controller->getCurrentLevelNumber();
}

bool LevelService::isLastLevel()
{
return level_controller->isLastLevel();
}

void LevelService::resetLevels()
{
level_controller->reset();
}

void LevelService::destroy()
{
delete(level_controller);
Expand Down