Skip to content
Open
27 changes: 26 additions & 1 deletion Array-Jumper/Array-Jumper.vcxproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
Expand Down Expand Up @@ -133,14 +133,25 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="source\GamePlay\GamePlayController.cpp" />
<ClCompile Include="source\GamePlay\GamePlayService.cpp" />
<ClCompile Include="source\Global\Config.cpp" />
<ClCompile Include="source\Event\EventService.cpp" />
<ClCompile Include="main.cpp" />
<ClCompile Include="source\Global\ServiceLocator.cpp" />
<ClCompile Include="source\Level\LevelController.cpp" />
<ClCompile Include="source\Level\LevelModel.cpp" />
<ClCompile Include="source\Level\LevelService.cpp" />
<ClCompile Include="source\Level\LevelView.cpp" />
<ClCompile Include="source\Player\PlayerController.cpp" />
<ClCompile Include="source\Player\PlayerModel.cpp" />
<ClCompile Include="source\Player\PlayerService.cpp" />
<ClCompile Include="source\Player\PlayerView.cpp" />
<ClCompile Include="source\Sound\SoundService.cpp" />
<ClCompile Include="source\Main\GameService.cpp" />
<ClCompile Include="source\Graphics\GraphicService.cpp" />
<ClCompile Include="source\UI\Credits\CreditsScreenUIController.cpp" />
<ClCompile Include="source\UI\GamePlay\GameplayUIController.cpp" />
<ClCompile Include="source\UI\Instructions\InstructionsUIController.cpp" />
<ClCompile Include="source\UI\MainMenu\MainMenuUIController.cpp" />
<ClCompile Include="source\UI\SplashScreen\SplashScreenUIController.cpp" />
Expand All @@ -152,12 +163,26 @@
<ClCompile Include="source\UI\UIService.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="header\GamePlay\GamePlayController.h" />
<ClInclude Include="header\GamePlay\GamePlayService.h" />
<ClInclude Include="header\Global\Config.h" />
<ClInclude Include="header\Event\EventService.h" />
<ClInclude Include="header\Level\BlockType.h" />
<ClInclude Include="header\Level\LevelController.h" />
<ClInclude Include="header\Level\LevelData.h" />
<ClInclude Include="header\Level\LevelModel.h" />
<ClInclude Include="header\Level\LevelService.h" />
<ClInclude Include="header\Level\LevelView.h" />
<ClInclude Include="header\Player\Movement.h" />
<ClInclude Include="header\Player\PlayerController.h" />
<ClInclude Include="header\Player\PlayerModel.h" />
<ClInclude Include="header\Player\PlayerService.h" />
<ClInclude Include="header\Player\PlayerView.h" />
<ClInclude Include="header\Sound\SoundService.h" />
<ClInclude Include="header\Main\GameService.h" />
<ClInclude Include="header\Graphics\GraphicService.h" />
<ClInclude Include="header\UI\Credits\CreditsScreenUIController.h" />
<ClInclude Include="header\UI\GamePlay\GameplayUIController.h" />
<ClInclude Include="header\UI\Instructions\InstructionsUIController.h" />
<ClInclude Include="header\UI\MainMenu\MainMenuUIController.h" />
<ClInclude Include="header\UI\SplashScreen\SplashScreenUIController.h" />
Expand Down
25 changes: 25 additions & 0 deletions Array-Jumper/Array-Jumper.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,17 @@
<ClCompile Include="source\UI\UIElement\ImageView.cpp" />
<ClCompile Include="source\UI\UIElement\TextView.cpp" />
<ClCompile Include="source\UI\UIElement\UIView.cpp" />
<ClCompile Include="source\Player\PlayerModel.cpp" />
<ClCompile Include="source\Player\PlayerView.cpp" />
<ClCompile Include="source\Player\PlayerController.cpp" />
<ClCompile Include="source\Player\PlayerService.cpp" />
<ClCompile Include="source\Level\LevelModel.cpp" />
<ClCompile Include="source\Level\LevelView.cpp" />
<ClCompile Include="source\Level\LevelController.cpp" />
<ClCompile Include="source\Level\LevelService.cpp" />
<ClCompile Include="source\GamePlay\GamePlayService.cpp" />
<ClCompile Include="source\GamePlay\GamePlayController.cpp" />
<ClCompile Include="source\UI\GamePlay\GameplayUIController.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="header\Main\GameService.h">
Expand Down Expand Up @@ -74,6 +85,20 @@
<ClInclude Include="header\UI\UIElement\ImageView.h" />
<ClInclude Include="header\UI\UIElement\TextView.h" />
<ClInclude Include="header\UI\UIElement\UIView.h" />
<ClInclude Include="header\Player\PlayerModel.h" />
<ClInclude Include="header\Player\PlayerView.h" />
<ClInclude Include="header\Player\PlayerController.h" />
<ClInclude Include="header\Player\PlayerService.h" />
<ClInclude Include="header\Level\LevelModel.h" />
<ClInclude Include="header\Level\LevelController.h" />
<ClInclude Include="header\Level\LevelView.h" />
<ClInclude Include="header\Level\LevelService.h" />
<ClInclude Include="header\Level\BlockType.h" />
<ClInclude Include="header\Level\LevelData.h" />
<ClInclude Include="header\Player\Movement.h" />
<ClInclude Include="header\GamePlay\GamePlayController.h" />
<ClInclude Include="header\GamePlay\GamePlayService.h" />
<ClInclude Include="header\UI\GamePlay\GameplayUIController.h" />
</ItemGroup>
<ItemGroup>
<Media Include="assets\sounds\background_music.mp3" />
Expand Down
29 changes: 29 additions & 0 deletions Array-Jumper/header/GamePlay/GamePlayController.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#pragma once
#include "../../header/Level/BlockType.h"

namespace GamePlay
{

class GamePlayController
{
public:
GamePlayController();
~GamePlayController();

void initialize();
void update();
void render();
void onDeath();


private:
void processObstacle();
bool isCollidingWithObstacle(BlockType value);
void onPositionChanged(int position);
bool isEndBlock(BlockType value);
void processEndBlock();
void gameOver();
};


}
25 changes: 25 additions & 0 deletions Array-Jumper/header/GamePlay/GamePlayService.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#pragma once
namespace GamePlay
{
class GamePlayController;
class GamePlayService
{
public:
GamePlayService();
~GamePlayService();


void initialize();
void update();
void render();

void onDeath();


private:
GamePlayController* m_gamePlayController;
};



}
9 changes: 9 additions & 0 deletions Array-Jumper/header/Global/ServiceLocator.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
#include "../../header/Event/EventService.h"
#include "../../header/UI/UIService.h"
#include "../../header/Sound/SoundService.h"
#include "../../header/Player/PlayerService.h"
#include "../../header/Level/LevelService.h"
#include "../../header/GamePlay/GamePlayService.h"

namespace Global
{
Expand All @@ -13,6 +16,9 @@ namespace Global
Event::EventService* event_service;
Sound::SoundService* sound_service;
UI::UIService* ui_service;
Player::PlayerService* player_service;
Level::LevelService* level_service;
GamePlay::GamePlayService* game_play_service;

~ServiceLocator();

Expand All @@ -31,5 +37,8 @@ namespace Global
Event::EventService* getEventService();
Sound::SoundService* getSoundService();
UI::UIService* getUIService();
Player::PlayerService* getPlayerService();
Level::LevelService* getLevelService();
GamePlay::GamePlayService* getGamePlayService();
};
}
11 changes: 11 additions & 0 deletions Array-Jumper/header/Level/BlockType.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#pragma once

enum class BlockType
{
OBSTACLE_ONE = -1,
OBSTACLE_TWO = -2,
TARGET = 0,
ONE = 1,
TWO = 2,
THREE = 3,
};
25 changes: 25 additions & 0 deletions Array-Jumper/header/Level/LevelController.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#pragma once
#include "BlockType.h"
#include "../../header/Level/LevelModel.h"
namespace Level
{
class LevelModel;
class LevelView;
class LevelController
{
public:
LevelController();
~LevelController();

void initialize();
void update();
void render();

BlockType getCurrentBoxValue(int currenPosition);
BoxDimension getBoxDimension();

private:
LevelModel* level_model;
LevelView* level_view;
};
}
26 changes: 26 additions & 0 deletions Array-Jumper/header/Level/LevelData.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#pragma once
#include "../../header/Level/BlockType.h"

namespace Level
{
struct LevelData
{
static const int number_of_box = 10;
BlockType level_boxes[number_of_box] = {
BlockType::ONE,
BlockType::TWO,
BlockType::OBSTACLE_ONE,
BlockType::TWO,
BlockType::THREE,
BlockType::ONE,
BlockType::OBSTACLE_TWO,
BlockType::TWO,
BlockType::ONE,
BlockType::TARGET
};



};
}

29 changes: 29 additions & 0 deletions Array-Jumper/header/Level/LevelModel.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#pragma once
#include "../../header/Level/LevelData.h"
namespace Level
{
struct BoxDimension
{
float box_width;
float box_height;

float box_spacing;

float box_spacing_percentage = 0.3f;
float bottom_offset = 200.f;

};
class LevelModel
{
public:
LevelModel();
~LevelModel();

BlockType getCurrentBoxValue(int currentPosition);

private:
LevelData current_level_data;
};


}
25 changes: 25 additions & 0 deletions Array-Jumper/header/Level/LevelService.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#pragma once
#include "BlockType.h"
namespace Level
{
struct BoxDimension;
class LevelController;
class BoxType;
class LevelService
{
public:
LevelService();
~LevelService();

void initialize();
void update();
void render();

BoxDimension getBoxDimension();
BlockType getCurrentBoxValue(int currentPosition);

private:
LevelController* level_controller;
};

}
54 changes: 54 additions & 0 deletions Array-Jumper/header/Level/LevelView.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#pragma once
#include "../../header/UI/UIElement/ImageView.h"
#include "LevelModel.h"
namespace Level
{
class LevelController;
class LevelView
{
public:
LevelView(LevelController* controller);
~LevelView();

void initilaize();
void update();
void render();

void calculateBoxWidthHeightDimension();
void calculateBoxSpacing();
void calcuateBoxDimension();
sf::Vector2f calculateBoxPosition(int index);
UI::UIElement::ImageView* getBoxImage(BlockType type);

void drawBox(sf::Vector2f position);
void drawBoxValue(sf::Vector2f position, BlockType type);

BoxDimension getBoxDimension();



private:
LevelController* level_controller;
UI::UIElement::ImageView* background_image;
UI::UIElement::ImageView* box_image;
sf::RenderWindow* game_window;

const float background_alpha = 110.f;

BoxDimension box_dimension;

UI::UIElement::ImageView* target_overlay_image;
UI::UIElement::ImageView* letter_one_overlay_image;
UI::UIElement::ImageView* letter_two_overlay_image;
UI::UIElement::ImageView* letter_three_overlay_image;
UI::UIElement::ImageView* obstacle_one_overlay_image;
UI::UIElement::ImageView* obstacle_two_overlay_image;

void createImage();
void initilizeImage();
void updateImage();
void drawImage();
void deleteImage();
};

}
9 changes: 9 additions & 0 deletions Array-Jumper/header/Player/Movement.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#pragma once
namespace Player
{
enum class MovementDirection
{
FORWARD,
BACKWARD
};
}
Loading