Skip to content
Snippets Groups Projects
Commit 582fd59e authored by Lenny Siol's avatar Lenny Siol
Browse files

Update: Ship class, Game class, when ship gets hit by a bullet it loses a...

Update: Ship class, Game class, when ship gets hit by a bullet it loses a life, it's position is reset and it becomes invincible for a short time.
When all lives are depleted the console prints "End Game".
parent ae173517
No related branches found
No related tags found
1 merge request!12Feature: Scoring system
......@@ -8,25 +8,25 @@
<stdio.h>
"Game/Game.h"
1614812001 source:/home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Entities/Ship/Ship.cpp
1614815816 source:/home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Entities/Ship/Ship.cpp
"Ship.h"
"../../Rendering/TextureManager.h"
<iostream>
1614811809 /home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Entities/Ship/Ship.h
1614815755 /home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Entities/Ship/Ship.h
"SDL2/SDL.h"
"../Entity.h"
"../Missile/Missile.h"
<vector>
"../Enemy/Enemy.h"
1614811764 source:/home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Game/Game.cpp
1614815755 source:/home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Game/Game.cpp
"Game.h"
"../Entities/Ship/Ship.h"
"../Entities/Missile/Missile.h"
"../Entities/Enemy/Enemy.h"
1614811764 /home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Game/Game.h
1614815755 /home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Game/Game.h
"SDL2/SDL.h"
"SDL2/SDL_image.h"
<iostream>
......@@ -45,10 +45,10 @@
1614724175 source:/home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Rendering/Timer.cpp
"Timer.h"
1614811071 source:/home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Entities/Entity.cpp
1614813058 source:/home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Entities/Entity.cpp
"Entity.h"
1614811071 /home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Entities/Entity.h
1614813058 /home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Entities/Entity.h
"SDL2/SDL.h"
"../Rendering/TextureManager.h"
"../Game/Game.h"
......@@ -59,10 +59,10 @@
1614801356 /home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Entities/Missile/Missile.h
"../Entity.h"
1614812001 source:/home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Entities/Enemy/Enemy.cpp
1614813058 source:/home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Entities/Enemy/Enemy.cpp
"Enemy.h"
1614809311 /home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Entities/Enemy/Enemy.h
1614813058 /home/lenny/Desktop/Boxelware/Code/Space-Shooter_Game/src/Entities/Enemy/Enemy.h
"../Entity.h"
"../Missile/Missile.h"
<vector>
......
......@@ -2,79 +2,79 @@
<CodeBlocks_layout_file>
<FileVersion major="1" minor="0" />
<ActiveTarget name="Debug" />
<File name="src/Rendering/TextureManager.h" open="1" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="src/Entities/Missile/Missile.cpp" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="0" />
</Cursor>
</File>
<File name="src/Entities/Ship/Ship.h" open="1" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="150" topLine="0" />
<Cursor1 position="144" topLine="0" />
</Cursor>
</File>
<File name="src/Entities/Enemy/Enemy.h" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="src/Entities/Enemy/Enemy.h" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="129" topLine="0" />
</Cursor>
</File>
<File name="src/Rendering/Timer.h" open="1" top="0" tabpos="14" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="src/Rendering/TextureManager.h" open="1" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="0" />
</Cursor>
</File>
<File name="src/Rendering/TextureManager.cpp" open="1" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="src/Entities/Ship/Ship.cpp" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="0" />
<Cursor1 position="1617" topLine="46" />
</Cursor>
</File>
<File name="src/Entities/Entity.cpp" open="1" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="src/Entities/Ship/Ship.h" open="1" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1090" topLine="0" />
<Cursor1 position="150" topLine="0" />
</Cursor>
</File>
<File name="src/Game/Game.cpp" open="1" top="1" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="src/Game/Game.cpp" open="1" top="1" tabpos="10" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3121" topLine="135" />
<Cursor1 position="1670" topLine="52" />
</Cursor>
</File>
<File name="src/main.cpp" open="1" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="src/main.cpp" open="1" top="0" tabpos="16" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="852" topLine="23" />
</Cursor>
</File>
<File name="src/Entities/Ship/Ship.cpp" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="src/Entities/Enemy/Enemy.cpp" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1396" topLine="59" />
<Cursor1 position="1091" topLine="28" />
</Cursor>
</File>
<File name="src/Entities/Entity.h" open="1" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="src/Rendering/Timer.cpp" open="1" top="0" tabpos="14" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="554" topLine="11" />
<Cursor1 position="0" topLine="0" />
</Cursor>
</File>
<File name="src/Entities/Enemy/Enemy.cpp" open="1" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="src/Entities/Entity.h" open="1" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1091" topLine="28" />
<Cursor1 position="554" topLine="0" />
</Cursor>
</File>
<File name="src/Entities/Missile/Missile.cpp" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="src/Rendering/Timer.h" open="1" top="0" tabpos="15" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="144" topLine="0" />
<Cursor1 position="0" topLine="0" />
</Cursor>
</File>
<File name="src/Rendering/Timer.cpp" open="1" top="0" tabpos="13" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="src/Rendering/TextureManager.cpp" open="1" top="0" tabpos="12" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="0" />
</Cursor>
</File>
<File name="src/Game/Game.h" open="1" top="0" tabpos="10" split="0" active="1" splitpos="0" zoom_1="-1" zoom_2="0">
<File name="src/Entities/Missile/Missile.h" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="560" topLine="17" />
<Cursor1 position="90" topLine="0" />
</Cursor>
</File>
<File name="src/Entities/Missile/Missile.h" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="src/Game/Game.h" open="1" top="0" tabpos="11" split="0" active="1" splitpos="0" zoom_1="-1" zoom_2="0">
<Cursor>
<Cursor1 position="90" topLine="0" />
<Cursor1 position="560" topLine="2" />
</Cursor>
</File>
<File name="src/Entities/Entity.cpp" open="1" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1090" topLine="33" />
</Cursor>
</File>
</CodeBlocks_layout_file>
......@@ -49,7 +49,8 @@ void Enemy::collisionDetection()
SDL_Rect result;
if(SDL_IntersectRect(&A,&B,&result))
{
std::cout<<"Ship hit"<<std::endl;
missiles.erase(missiles.begin() + i);
game->getShip()->takeDamage();
}
}
}
......@@ -19,6 +19,11 @@ void Ship::update()
m->update();
}
collisionDetection();
if(invincibiltyWindow > 0)
{
invincibiltyWindow--;
}
}
void Ship::handleControls(const Uint8 *keyboard_state)
......@@ -84,3 +89,22 @@ void Ship::collisionDetection()
}
}
}
void Ship::takeDamage()
{
if(invincibiltyWindow == 0)
{
invincibiltyWindow = 300;
lives--;
std::cout<<"Ship hit, lives left: "<<lives<<std::endl;
if(lives <= 0)
{
game->endGame();
}
//Reset Position
destionation.x = (game->getWidth()/10);
destionation.y = (game->getHeight()/2);
}
}
......@@ -18,10 +18,15 @@ class Ship : public Entity
std::vector <Missile*> missiles;
void takeDamage();
private:
int speed = 4;
void shoot() override;
int counter = 60;
int lives = 3;
int invincibiltyWindow = 300;
};
#endif // SHIP_H
......@@ -164,8 +164,18 @@ int Game::getWidth()
return width;
}
int Game::getHeight()
{
return height;
}
std::vector <Enemy*> Game::getEnemies()
{
return enemies;
}
void Game::endGame()
{
std::cout<<"End Game"<<std::endl;
}
......@@ -28,8 +28,12 @@ class Game
Ship* getShip();
int getWidth();
int getHeight();
std::vector <Enemy*> getEnemies();
void endGame();
private:
bool isRunning;
SDL_Window *window;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment