Kamikadze sledzi gracza

This commit is contained in:
2024-12-11 17:43:43 +01:00
parent 41945b3d88
commit c1a24a701b
5 changed files with 256 additions and 10 deletions

View File

@@ -1,8 +1,45 @@
//
// Created by k on 11.12.2024.
//
#ifndef KAMIKADZE_H
#define KAMIKADZE_H
#include "Enemy.h"
#include "Actor.h"
#include "Player.h"
enum class DirectionK {
Up,
Down,
Left,
Right
};
class Kamikadze : public Actor {
public:
Kamikadze(int x, int y, const sf::Texture& texture);
void move(float deltaX, float deltaY) override;
void moveLeft() override;
void moveRight() override;
void moveUp() override;
void moveDown() override;
void setRandomDirection();
void shoot() override;
void update(const sf::Vector2f& playerPosition);
bool isAlive() const;
void takeDamage();
void updateDirection();
void followPlayer(const sf::Vector2f &playerPosition);
void explode(const sf::Vector2f &playerPosition, bool &playerHit);
private:
bool exploding = false; // Czy kamikadze obecnie eksploduje
sf::Clock explosionClock;
sf::Clock shootClock;
float movementSpeed = 2.0f;
bool alive = true;
DirectionK direction = DirectionK::Down;
};
#endif //KAMIKADZE_H

View File

@@ -5,6 +5,7 @@
#include "Enemy.h"
#include "AdvancedEnemy.h"
#include "Bomber.h"
#include "Kamikadze.h"
#include "RandomNumberGenerator.h"
#include "SFML/System/Clock.hpp"
#include "SFML/Graphics/RenderWindow.hpp"
@@ -33,6 +34,7 @@ public:
void spawn_advanced_enemy();
void spawn_wiazkowiec();
void spawn_bomber();
void spawn_kamikadze();
private:
Size size;
@@ -49,14 +51,17 @@ private:
sf::Texture enemyTexture;
sf::Texture advancedEnemyTexture;
sf::Texture BomberEnemyTexture;
sf::Texture KamikadzeTexture;
sf::Clock spawnClock;
sf::Clock shooterSpawnClock;
std::vector<Enemy> enemies;
std::vector<AdvancedEnemy> AEnemies;
std::vector<Bomber> BEnemies;
std::vector<Kamikadze> KEnemies;
sf::Clock enemySpawnClock;
sf::Clock AenemySpawnClock;
sf::Clock BomberSpawnClock;
sf::Clock KamikadzeSpawnClock;
std::vector<Meteor> meteors;
sf::RenderWindow *window;
};