Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
46d3eb9
The whole file gets corrupted thats why i have to write all programs…
tarunsharma075 Jul 26, 2024
ef66188
IMPLEMENTED POLLING EVENT
tarunsharma075 Jul 28, 2024
5673590
added the player spirite and also added the movement
tarunsharma075 Jul 28, 2024
cd4e9cd
in this commit we are adding the time dependency in the sip for the b…
tarunsharma075 Jul 28, 2024
b02ba28
in this commit we are implementing the mvc model for the player service
tarunsharma075 Jul 28, 2024
b1564b0
IN THSI COMMIT WE HAVE IMPLEMENTED THE MVC MODEL AND WE ENCOUNTER SOM…
tarunsharma075 Jul 29, 2024
571656d
did nothing much just add forward declrations
tarunsharma075 Jul 29, 2024
c033f73
here i have put the namespace in the code and l also debug the code …
tarunsharma075 Aug 3, 2024
abb00d3
JUST ADDED THE GAME STATE
tarunsharma075 Aug 4, 2024
82351a8
added the ui sevice also added the mainmenucobteoller
tarunsharma075 Aug 4, 2024
02ac2f6
implemented the spirites and textures
tarunsharma075 Aug 4, 2024
542c415
added the mouse inputs
tarunsharma075 Aug 4, 2024
845c505
added enum class for the checking of the press events
tarunsharma075 Aug 4, 2024
ec92637
again created the ui service and ui managnemnt kit
tarunsharma075 Aug 4, 2024
55dbc08
Just corrected the corrupt files in the game
tarunsharma075 Aug 5, 2024
c21e01d
added the texture and spirite
tarunsharma075 Aug 5, 2024
27b220f
changes
tarunsharma075 Aug 5, 2024
3e08480
added the enemy
tarunsharma075 Aug 6, 2024
e2b1519
changed the enemy texture to enemy to zapper
tarunsharma075 Aug 6, 2024
22424f9
added the enemy movement which is not moving
tarunsharma075 Aug 6, 2024
cd2fe9f
Update EnemyController.cpp
tarunsharma075 Aug 6, 2024
581f8ac
error in movement of enemy
tarunsharma075 Aug 6, 2024
f55f6b8
error not debugged
tarunsharma075 Aug 6, 2024
50f5308
so the error is debug
tarunsharma075 Aug 6, 2024
ef5186b
added the movement in and spawn in the enemy
tarunsharma075 Aug 7, 2024
0d0038c
added the gameplay service
tarunsharma075 Aug 8, 2024
bc5358c
here we add Common Properties & Functionalites in the inherited cl…
tarunsharma075 Aug 12, 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
Empty file.
12 changes: 12 additions & 0 deletions Space-Invaders/ENEMY/Controllers/SubZeroController.H
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#pragma once
#include"../../ENEMY/EnemyController.h"
namespace Enemy{
namespace controller {

class SubzeroController : public EnemyController {

private:
};
}

}
6 changes: 6 additions & 0 deletions Space-Invaders/ENEMY/Controllers/SubZeroController.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include"../Controllers/SubZeroController.H"
namespace Enmey {
namespace controller {

}
}
7 changes: 7 additions & 0 deletions Space-Invaders/ENEMY/Controllers/ZapperController.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#include"../Controllers/ZapperController.h"

namespace Enemy {
namespace controller {

}
}
10 changes: 10 additions & 0 deletions Space-Invaders/ENEMY/Controllers/ZapperController.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#pragma once
#include"../../ENEMY/EnemyController.h"
namespace Enemy {
namespace controller {
class ZapperController : public EnemyController {

private:
};
}
}
1 change: 1 addition & 0 deletions Space-Invaders/ENEMY/EnemyConfig.h
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#pragma once
Empty file.
109 changes: 109 additions & 0 deletions Space-Invaders/Enemy/EnemyController.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
#include "EnemyController.h"
#include"../../ENEMY/EnemyModel.h"
#include"../../ENEMY/EnemyView.h"
#include"../../Headers/Global/ServiceLocator.h"
#include<iostream>
namespace Enemy {
using namespace std;
using namespace Global;
EnemyController::EnemyController()
{
enemy_view = new EnemyView();
enemy_model = new EnemyModel();

}
EnemyController::~EnemyController()
{
delete (enemy_view);
delete (enemy_model);
}
void Enemy::EnemyController::initialize()
{
enemy_model->initialize();
enemy_view->initialize(this); // we will discuss this soo
}

void Enemy::EnemyController::update()
{
move();
enemy_view->update();
}

void Enemy::EnemyController::render()
{
enemy_view->render();
}
sf::Vector2f EnemyController::getEnemyPosition()
{
return enemy_model->getEnemyPosition();

}
void EnemyController::move()
{
switch (enemy_model->getmovementdirection())
{
case MovementDirection::LEFT:
moveLeft();
break;
case MovementDirection::RIGHT:
moveRight();
break;
case MovementDirection::DOWN:
moveDown();
break;
}

}
void EnemyController::moveLeft()
{
sf::Vector2f currentposition = enemy_model->getEnemyPosition();
currentposition.x -= enemy_model->movement_speed * ServiceLocator::getInstance()->gettimeservice()->getdeltatime();
if (currentposition.x <= enemy_model->left_most.x) {
enemy_model->setmovementdirection(MovementDirection::DOWN);
enemy_model->setReferencePosition(currentposition);
}
else {
enemy_model->setEnemyPosition(currentposition);
}
}
void EnemyController::moveRight()
{
sf::Vector2f currentposition = enemy_model->getEnemyPosition();
currentposition.x += enemy_model->movement_speed * ServiceLocator::getInstance()->gettimeservice()->getdeltatime();
if (currentposition.x >= enemy_model->right_most.x) {
enemy_model->setmovementdirection(MovementDirection::DOWN);
enemy_model->setReferencePosition(currentposition);
}
else {
enemy_model->setEnemyPosition(currentposition);

}
}
void EnemyController::moveDown()
{
sf::Vector2f currentPosition = enemy_model->getEnemyPosition();
currentPosition.y += enemy_model->movement_speed * ServiceLocator::getInstance()->gettimeservice()->getdeltatime();

//check if enemy has moved the specified distance downwards
if (currentPosition.y >= enemy_model->getReferencePosition().y + enemy_model->downward_distance)
{

if (enemy_model->getReferencePosition().x >= enemy_model->right_most.x) {

enemy_model->setmovementdirection(MovementDirection::LEFT);
cout << "call left";
}
else {

enemy_model->setmovementdirection(MovementDirection::RIGHT);
}


}
else {
enemy_model->setEnemyPosition(currentPosition);
}


}
}
26 changes: 26 additions & 0 deletions Space-Invaders/Enemy/EnemyController.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#pragma once
#include<SFML/Graphics.hpp>
namespace Enemy {
class EnemyView;
class EnemyModel;
class EnemyController {
private:
EnemyView* enemy_view;
EnemyModel* enemy_model;

public:

EnemyController();
~EnemyController();

void initialize();
void update();
void render();
sf::Vector2f getEnemyPosition();

void move();
void moveLeft();
void moveRight();
void moveDown();
};
}
46 changes: 46 additions & 0 deletions Space-Invaders/Enemy/EnemyModel.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#include "EnemyModel.h"
namespace Enemy {
Enemy::EnemyModel::EnemyModel()
{

}

Enemy::EnemyModel::~EnemyModel()
{
enemy_position = reference_position;
}

void Enemy::EnemyModel::initialize()
{
movement_direction = MovementDirection::RIGHT;
enemy_position = reference_position;
}

sf::Vector2f Enemy::EnemyModel::getEnemyPosition()
{
return enemy_position;
}

void Enemy::EnemyModel::setEnemyPosition(sf::Vector2f position)
{
enemy_position = position;
}

sf::Vector2f Enemy::EnemyModel::getReferencePosition()
{
return reference_position;
}

void Enemy::EnemyModel::setReferencePosition(sf::Vector2f position)
{
reference_position = position;
}
MovementDirection EnemyModel::getmovementdirection()
{
return movement_direction;
}
void EnemyModel::setmovementdirection(MovementDirection direction)
{
movement_direction = direction;
}
}
44 changes: 44 additions & 0 deletions Space-Invaders/Enemy/EnemyModel.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#pragma once
#include<SFML/Graphics.hpp>
namespace Enemy {
enum class MovementDirection {

RIGHT,
LEFT,
DOWN,
};

class EnemyModel {

private:

MovementDirection movement_direction;


public:
EnemyModel();
~EnemyModel();


sf::Vector2f reference_position = sf::Vector2f(50.f, 50.f);
sf::Vector2f enemy_position;

const float movement_speed = 250.f;
const sf::Vector2f right_most = sf::Vector2f(1800.f, 950.f);
const sf::Vector2f left_most = sf::Vector2f(50.f, 950.f);
float downward_distance = 100.f;

void initialize();

sf::Vector2f getEnemyPosition();
void setEnemyPosition(sf::Vector2f position);

sf::Vector2f getReferencePosition();
void setReferencePosition(sf::Vector2f position);

MovementDirection getmovementdirection();
void setmovementdirection(MovementDirection direction);


};
}
62 changes: 62 additions & 0 deletions Space-Invaders/Enemy/EnemyService.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
//#include "../../Header/Enemy/EnemyService.h"
//#include "../../Header/Enemy/EnemyController.h"
//#include "../../Header/Global/ServiceLocator.h"
//#include "../../Header/Time/TimeService.h"
#include"../../ENEMY/Enemyservice.h"
#include"../../ENEMY/EnemyController.h"
#include"../../Headers/Global/ServiceLocator.h"
#include"../../Headers/TIME/TimeService .h"

namespace Enemy
{
using namespace Global;

EnemyService::EnemyService() { }

EnemyService::~EnemyService() { destroy(); }

void EnemyService::initialize()
{
spawn_timer = spawn_interval; // for the first spawn
}

void EnemyService::update()
{
updateSpawnTimer();
processEnemySpawn();

for (int i = 0; i < enemy_list.size(); i++) enemy_list[i]->update();
}

void EnemyService::render()
{
for (int i = 0; i < enemy_list.size(); i++) enemy_list[i]->render();
}

void EnemyService::updateSpawnTimer()
{
spawn_timer += ServiceLocator::getInstance()->gettimeservice()->getdeltatime(); // increase timer
}

void EnemyService::processEnemySpawn()
{
if (spawn_timer >= spawn_interval)
{
spawnEnemy(); //spawn
spawn_timer = 0.0f; // reset
}
}

void EnemyService::spawnEnemy()
{
EnemyController* enemy_controller = new EnemyController(); // create
enemy_controller->initialize(); // init as soon as created

enemy_list.push_back(enemy_controller); //add to list
}

void EnemyService::destroy()
{
for (int i = 0; i < enemy_list.size(); i++) delete (enemy_list[i]); //delete all enemies
}
}
49 changes: 49 additions & 0 deletions Space-Invaders/Enemy/EnemyView.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#include "EnemyView.h"
#include"../../Headers/Global/ServiceLocator.h"
#include"../../Headers/Graphic/GraphicService.h"
#include"../../ENEMY/EnemyController.h"
namespace Enemy {
using namespace Global;
using namespace Graphic;
void Enemy::EnemyView::initializeEnemySprite()
{
if (enemy_texture.loadFromFile(enemy_texture_path)) //check if the texture loaded
{
enemy_sprite.setTexture(enemy_texture); //set the sprite
scaleEnemySprite(); // call the method to scale the sprite
}
}

void Enemy::EnemyView::scaleEnemySprite()
{
enemy_sprite.setScale(
static_cast<float>(enemy_sprite_width) / enemy_sprite.getTexture()->getSize().x,
static_cast<float>(enemy_sprite_height) / enemy_sprite.getTexture()->getSize().y
);
}

Enemy::EnemyView::EnemyView()
{
}

Enemy::EnemyView::~EnemyView()
{
}

void Enemy::EnemyView::initialize(EnemyController* controller)
{
enemy_controller = controller;
game_window = ServiceLocator::getInstance()->getGraphicService()->getGameWindow();
initializeEnemySprite();
}

void Enemy::EnemyView::update()
{
enemy_sprite.setPosition(enemy_controller->getEnemyPosition());
}

void Enemy::EnemyView::render()
{
game_window->draw(enemy_sprite);
}
}
Loading