Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
8110600
recreated branch
abhi6403 Jul 26, 2024
8eaa7c8
Fetching mouse inputs
abhi6403 Jul 26, 2024
2255833
Manage button state
abhi6403 Jul 26, 2024
c26fb9a
A and D movement
abhi6403 Jul 27, 2024
26637f2
Implement Enemy Service
abhi6403 Jul 27, 2024
e05646e
Implement Enemy Movement
abhi6403 Jul 27, 2024
842bebe
spawn Enemies
abhi6403 Jul 27, 2024
0e3de50
Gameplay Service
abhi6403 Jul 27, 2024
12c35c7
Common Enemy properties
abhi6403 Aug 1, 2024
3234177
Creating pure virtual function
abhi6403 Aug 1, 2024
ed2897c
movement function
abhi6403 Aug 3, 2024
4ca29a7
spawn Enemies
abhi6403 Aug 5, 2024
03043b9
Create Barriers
abhi6403 Aug 5, 2024
eb8040f
Data for Barriers
abhi6403 Aug 5, 2024
a660a6d
Spawn Multiple Barriers
abhi6403 Aug 5, 2024
4af6b37
Create Config
abhi6403 Aug 5, 2024
be2e7af
Create Sound Service
abhi6403 Aug 5, 2024
603a77d
Playing Sounds
abhi6403 Aug 5, 2024
5ac409c
Create Projectile Interface
abhi6403 Aug 6, 2024
a8e629f
create Bullet MVC
abhi6403 Aug 6, 2024
3116a66
Create model and view
abhi6403 Aug 6, 2024
502aaf3
Create Bullets
abhi6403 Aug 6, 2024
130b20b
Spawn bullets
abhi6403 Aug 6, 2024
81d2744
Move the Bullets
abhi6403 Aug 6, 2024
0f2b87d
Firing the bullets
abhi6403 Aug 6, 2024
0ff7726
Create Collectible
abhi6403 Aug 7, 2024
5816685
create Powerup Controllers
abhi6403 Aug 7, 2024
baf2bc3
spawn powerups and new enemy.
abhi6403 Aug 10, 2024
07eaece
Create UI interface
abhi6403 Aug 12, 2024
6474f48
Change the UI service
abhi6403 Aug 12, 2024
eb263ab
using Image view
abhi6403 Aug 12, 2024
7313ed2
create Text View
abhi6403 Aug 13, 2024
2001d8e
creating button view
abhi6403 Aug 13, 2024
b15f0d5
changed the color of background
abhi6403 Aug 13, 2024
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
17 changes: 17 additions & 0 deletions Space-Invaders/Header/Bullet/BulletConfig.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#pragma once

namespace Bullet
{
enum class BulletType
{
LASER_BULLET,
TORPEDO,
FROST_BULLET,
};

enum class MovementDirection
{
UP,
DOWN,
};
}
33 changes: 33 additions & 0 deletions Space-Invaders/Header/Bullet/BulletController.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#pragma once
#include"../../Header/Projectile/IProjectile.h"
#include"../../Header/Bullet/BulletConfig.h"

namespace Bullet
{
class BulletView;
class BulletModel;
enum class BulletType;

class BulletController :public Projectile::IProjectile
{
protected:
BulletView* bullet_view;
BulletModel* bullet_model;

void updateProjectilePosition() override;

void moveUP();
void moveDown();
void handleOutOfBounds();

public:
BulletController(BulletType type);
virtual ~BulletController() override;
void initialize(sf::Vector2f position, Bullet::MovementDirection direction)override;
void update() override;
void render() override;

sf::Vector2f getProjectilePosition() override;
BulletType getBulletType();
};
}
36 changes: 36 additions & 0 deletions Space-Invaders/Header/Bullet/BulletModel.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#pragma once
#include<SFML/Graphics.hpp>

namespace Bullet
{
enum class BulletType;
enum class MovementDirection;

class BulletModel
{
private:
float movement_speed = 300.f;
sf::Vector2f bullet_position;

BulletType bullet_type;
MovementDirection movement_direction;

public:
BulletModel(BulletType type);
~BulletModel();

void initialize(sf::Vector2f position, MovementDirection direction);

sf::Vector2f getBulletPosition();
void setBulletPosition(sf::Vector2f position);

BulletType getBulletType();
void setBulletType(BulletType type);

MovementDirection getMovementDirection();
void setMovementDirection(MovementDirection direction);

float getMovementSpeed();
void setMovementSpeed(float speed);
};
}
33 changes: 33 additions & 0 deletions Space-Invaders/Header/Bullet/BulletService.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#pragma once
#include<vector>
#include"SFML/System/Vector2.hpp"
#include"../../Header/Projectile/IProjectile.h"

namespace Bullet
{
class BulletController;
enum class BulletType;
enum class MovementDirection;

class BulletService
{
private:

std::vector<Projectile::IProjectile*>bullet_list;

BulletController* createBullet(BulletType bullet_type);
void destroy();

public:
BulletService();
virtual ~BulletService();

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

BulletController* spwanBullet(BulletType bullet_type, sf::Vector2f position, MovementDirection direction);
void destroyBullet(BulletController* bullet_controller);
};

}
34 changes: 34 additions & 0 deletions Space-Invaders/Header/Bullet/BulletView.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#pragma once
#include<SFML/Graphics.hpp>
#include "../../Header/UI/UIElement/ImageView.h"

namespace Bullet
{
class BulletController;
enum class BulletType;

class BulletView
{
private:
const float bullet_sprite_width = 18.f;
const float bullet_sprite_height = 18.f;

BulletController* bullet_controller;
UI::UIElement::ImageView* bullet_image;

void initializeImage();
void createUIElements();
sf::String getBulletTexturePath();

void destroy();

public:
BulletView();
~BulletView();

void initialize(BulletController* controller);
void update();
void render();

};
}
20 changes: 20 additions & 0 deletions Space-Invaders/Header/Bullet/Controllers/FrostBulletController.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#pragma once
#include"../../Header/Bullet/BulletController.h"

namespace Bullet
{
namespace Controller
{
class FrostBulletController :public BulletController
{
private:
const float frost_bullet_movement_speed = 500.f;

public:
FrostBulletController(BulletType type);
~FrostBulletController();

void initialize(sf::Vector2f position, MovementDirection direction)override;
};
}
}
17 changes: 17 additions & 0 deletions Space-Invaders/Header/Bullet/Controllers/LaserBulletController.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#pragma once
#include"../../Header/Bullet/BulletController.h"

namespace Bullet
{
namespace Controller
{
class LaserBulletController :public BulletController
{
public:
LaserBulletController(BulletType type);
~LaserBulletController();

void initialize(sf::Vector2f position, MovementDirection)override;
};
}
}
20 changes: 20 additions & 0 deletions Space-Invaders/Header/Bullet/Controllers/TorpedoeController.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#pragma once
#include"../../Header/Bullet/BulletController.h"

namespace Bullet
{
namespace Controller
{
class TorpedoController :public BulletController
{
private:
const float torpedo_movement_speed = 200.f;

public:
TorpedoController(BulletType type);
~TorpedoController();

void initialize(sf::Vector2f position, MovementDirection direction)override;
};
}
}
19 changes: 19 additions & 0 deletions Space-Invaders/Header/Collectible/ICollectible.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#pragma once
#include<SFML/System/Vector2.hpp>

namespace Collectible
{
class ICollectible
{
public:
virtual void onCollected() = 0;
virtual void initialize(sf::Vector2f position) = 0;
virtual void update() = 0;
virtual void render() = 0;
virtual sf::Vector2f getCollectiblePosition() = 0;

virtual ~ICollectible() {};
};


}
29 changes: 29 additions & 0 deletions Space-Invaders/Header/Elements/Bunker/BunkerController.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#pragma once
#include<SFML/Graphics.hpp>
#include"../../Header/Elements/Bunker/BunkerModel.h"

namespace Element
{
namespace Bunker
{
class BunkerView;

class BunkerController
{
private:
BunkerView* bunker_view;
BunkerData bunker_data;

public:
BunkerController();
~BunkerController();

void initialize(BunkerData data);
void update();
void render();

sf::Vector2f getBunkerPosition();
};
}

}
14 changes: 14 additions & 0 deletions Space-Invaders/Header/Elements/Bunker/BunkerModel.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#pragma once
#include <SFML/System/Vector2.hpp>

namespace Element
{
namespace Bunker
{
struct BunkerData
{
sf::Vector2f position;BunkerData();
BunkerData(sf::Vector2f position);
};
}
}
35 changes: 35 additions & 0 deletions Space-Invaders/Header/Elements/Bunker/BunkerView.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#pragma once
#include<SFML/Graphics.hpp>
#include"../../Header/UI/UIElement/ImageView.h"

namespace Element
{
namespace Bunker
{
class BunkerController;

class BunkerView
{
private:
const float bunker_sprite_width = 80.f;
const float bunker_sprite_height = 80.f;

BunkerController* bunker_controller;
UI::UIElement::ImageView* bunker_image;

void createUIElements();
void initializeImage();
sf::String getBunkerTexturePath();

void destroy();

public:
BunkerView();
~BunkerView();

void initialize(BunkerController* controller);
void update();
void render();
};
}
}
36 changes: 36 additions & 0 deletions Space-Invaders/Header/Elements/ElementService.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#pragma once
#include<vector>
#include<SFML/System/Vector2.hpp>
#include"../../Header/Elements/Bunker/BunkerController.h"
#include"../../Header/Elements/Bunker/BunkerModel.h"

namespace Element
{
class BunkerController;


class ElementService
{
private:
const std::vector<Bunker::BunkerData>bunker_data_list = {
Bunker::BunkerData(sf::Vector2f(130.f,800.f)),
Bunker::BunkerData(sf::Vector2f(430.0f,800.f)),
Bunker::BunkerData(sf::Vector2f(730.0f,800.f)),
Bunker::BunkerData(sf::Vector2f(1130.0f,800.f)),
Bunker::BunkerData(sf::Vector2f(1430.f,800.f)),
Bunker::BunkerData(sf::Vector2f(1730.0f,800.f))
};

std::vector<Bunker::BunkerController*> bunker_list;

void destroy();

public:
ElementService();
virtual ~ElementService();

void initialize();
void update();
void render();
};
}
25 changes: 25 additions & 0 deletions Space-Invaders/Header/Enemy/Controllers/SubZeroController.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#pragma once
#include "../../header/Enemy/EnemyController.h"

namespace Enemy
{
namespace Controller
{
class SubzeroController : public EnemyController
{
private:
float vertical_movement_speed = 100.f;
float subzero_rate_of_fire = 2.f;

void move() override;
void moveDown();
void fireBullet() override;

public:
SubzeroController(EnemyType type);
~SubzeroController();

void initialize() override;
};
}
}
Loading