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
28 changes: 27 additions & 1 deletion Array-Jumper/Array-Jumper.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(SolutionDir)sfml\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>sfml-system-d.lib;sfml-graphics-d.lib;sfml-window-d.lib;sfml-audio-d.lib;sfml-network-d.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>opengl32.lib;sfml-system-d.lib;sfml-graphics-d.lib;sfml-window-d.lib;sfml-audio-d.lib;sfml-network-d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
Expand All @@ -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,27 @@
<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\LevelConfiguration.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\MovementDirection.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
26 changes: 26 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\GameplayController.cpp" />
<ClCompile Include="source\Gameplay\GameplayService .cpp" />
<ClCompile Include="source\UI\Gameplay\GameplayUIController.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="header\Main\GameService.h">
Expand Down Expand Up @@ -74,6 +85,21 @@
<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\LevelView.h" />
<ClInclude Include="header\Level\LevelController.h" />
<ClInclude Include="header\Level\LevelService.h" />
<ClInclude Include="header\Level\BlockType.h" />
<ClInclude Include="header\Level\LevelData.h" />
<ClInclude Include="header\Gameplay\GameplayController.h" />
<ClInclude Include="header\Gameplay\GameplayService.h" />
<ClInclude Include="header\Player\MovementDirection.h" />
<ClInclude Include="header\UI\Gameplay\GameplayUIController.h" />
<ClInclude Include="header\Level\LevelConfiguration.h" />
</ItemGroup>
<ItemGroup>
<Media Include="assets\sounds\background_music.mp3" />
Expand Down
Binary file added Array-Jumper/assets/textures/target.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
26 changes: 26 additions & 0 deletions Array-Jumper/header/Gameplay/GameplayController.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#pragma once
#include "../../header/Level/BlockType.h"
namespace Gameplay
{
class GameplayController
{
private:

void processObstacle();
bool isObstacle(Level::BlockType value);
bool isEndBlock(Level::BlockType value);
void processEndBlock();
void gameOver();

public:
void intialize();
void update();
void render();
void onPositionChanged(int position);
void onDeath();
void gameWon();


};

}
21 changes: 21 additions & 0 deletions Array-Jumper/header/Gameplay/GameplayService.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#pragma once
#include "GameplayController.h"
namespace Gameplay
{

class GameplayService
{
private:

GameplayController* gameplay_controller;

public:
GameplayService();
~GameplayService();
void intialize();
void update();
void render();
void onDeath();
void onPositionChanged(int position);
};
}
13 changes: 13 additions & 0 deletions Array-Jumper/header/Global/ServiceLocator.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
#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 +18,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* gameplay_service;

~ServiceLocator();

Expand All @@ -31,5 +39,10 @@ namespace Global
Event::EventService* getEventService();
Sound::SoundService* getSoundService();
UI::UIService* getUIService();
Player::PlayerService* getPlayerService();
Level::LevelService* getLevelService();
Gameplay::GameplayService* getGameplayService();


};
}
20 changes: 20 additions & 0 deletions Array-Jumper/header/Level/BlockType.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#pragma once

// Each level should be represented as a array of integers
// -1 : Obstacle 1
// -2 : Obstacle 2
// 0 : End block
// 1,2,3 : Numbers

namespace Level
{
enum BlockType
{
OBSTACLE_ONE = -1,
OBSTACLE_TWO = -2,
TARGET = 0,
ONE = 1,
TWO = 2,
THREE = 3,
};
}
49 changes: 49 additions & 0 deletions Array-Jumper/header/Level/LevelConfiguration.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#pragma once
#include "LevelData.h"
#include "BlockType.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 i = 0; i < LevelData::NUMBER_OF_BOXES; i++)
{
levels[0].level_boxes[i] = level_1[i];
}

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

for (int i = 0; i < LevelData::NUMBER_OF_BOXES; i++)
{
levels[2].level_boxes[i] = level_3[i];
}
}
};
}
31 changes: 31 additions & 0 deletions Array-Jumper/header/Level/LevelController.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#pragma once
#include "LevelModel.h"

namespace Level
{
class LevelView;
class LevelModel;

class LevelController
{
private:
LevelView* level_view;
LevelModel* level_model;

public:
LevelController();
~LevelController();

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

BoxDimensions getBoxDimensions();
BlockType getCurrentBoxValue(int currentPosition);
bool isLastLevel();
void loadNextLevel();
int getCurrentLevelNumber();

void reset();
};
}
14 changes: 14 additions & 0 deletions Array-Jumper/header/Level/LevelData.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#pragma once
#include "BlockType.h"

namespace Level
{

struct LevelData
{
static const int NUMBER_OF_BOXES = 10;

BlockType level_boxes[NUMBER_OF_BOXES];

};
}
36 changes: 36 additions & 0 deletions Array-Jumper/header/Level/LevelModel.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#pragma once
#include "LevelData.h"
#include "LevelConfiguration.h"
namespace Level
{

struct BoxDimensions
{
float box_width;
float box_height;
float box_spacing;

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


class LevelModel
{
private:
const int number_of_level = LevelConfiguration::NUMBER_OF_LEVELS;
LevelConfiguration level_configuration;

int current_level_index;

public:
LevelModel();
~LevelModel();

BlockType getCurrentBoxValue(int currentPosition);
void loadNextLevel();
int getCurrentLevelNumber();
bool isLastLevel();
void reset();
};
}
32 changes: 32 additions & 0 deletions Array-Jumper/header/Level/LevelService.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#pragma once
#include "BlockType.h"


namespace Level
{
class LevelController;
struct BoxDimensions;

class LevelService
{
private:
LevelController* level_controller;

void destroy();
public:
LevelService();
~LevelService();

void intialize();
void update();
void render();

BoxDimensions getBoxDimensions();
BlockType getCurrentBoxValue(int currentPosition);
bool isLastLevel();
void loadNextLevel();
int getCurrentLevelNumber();

void resetLevels();
};
}
Loading