Cos usprawnione i nasrane

This commit is contained in:
2024-12-11 16:51:56 +01:00
parent 2234e4d973
commit 41945b3d88
7 changed files with 56 additions and 7 deletions

View File

@@ -34,6 +34,8 @@ add_executable(LotoStatek main.cpp
sources/AdvancedEnemy.cpp
headers/Bomber.h
sources/Bomber.cpp
headers/Kamikadze.h
sources/Kamikadze.cpp
)
if(WIN32)

View File

@@ -24,6 +24,7 @@ public:
void moveRight() override;
void moveUp() override;
void moveDown() override;
void setRandomDirection();
void update();

8
headers/Kamikadze.h Normal file
View File

@@ -0,0 +1,8 @@
//
// Created by k on 11.12.2024.
//
#ifndef KAMIKADZE_H
#define KAMIKADZE_H
#endif //KAMIKADZE_H

View File

@@ -1,21 +1,48 @@
#include "../headers/Bomber.h"
#include "../headers/Bullet.h"
#include <random>
Bomber::Bomber(int x, int y, const sf::Texture& texture, const sf::Texture& bulletTexture) : Actor(x, y, texture) {
actorSprite.setTexture(texture);
BombaTexture = bulletTexture;
hp = 2; // 2 punkty życia
firerate = 2000; // Strzela co 2
moving_speed = 2.0f; // Prędkość
BombaTexture.loadFromFile("../assets/img/bullets/bomba.png");
firerate = 10000; // Strzela co 10
moving_speed = 1.0f; // Prędkość
// BombaTexture.loadFromFile("../assets/img/bullets/bomba.png");
}
// Losuje losowy kierunek dla Bombera
void Bomber::setRandomDirection() {
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<int> dist(0, 3);
int randomDirection = dist(gen);
// Zapobieganie wyjscia poza ekran
switch (randomDirection) {
case 0:
if (position.y > 0) direction = DirectionB::Up;
break;
case 1:
if (position.y < 800) direction = DirectionB::Down;
break;
case 2:
if (position.x > 0) direction = DirectionB::Left;
break;
case 3:
if (position.x < 1200) direction = DirectionB::Right;
break;
}
}
void Bomber::shoot() {
if (shootClock.getElapsedTime().asMilliseconds() >= firerate) {
Bullet Bbullet(position.x, position.y + actorSprite.getGlobalBounds().height / 2, BombaTexture);
Bbullet.setSpeed(0.5f); // Prędkość w dół
Bbullet.setSpeed(0.1f); // Prędkość w dół
bullets.emplace_back(std::move(Bbullet));
shootClock.restart();
setRandomDirection();
}
}

View File

@@ -1,9 +1,13 @@
#include "../headers/Bullet.h"
#include <iostream>
#include <ostream>
void Bullet::update() {
//std::cout << "Start update: speed = " << speed << ", position.y = " << position.y << std::endl;
sprite.move(0.0f, speed);
position.y += int(speed);
if(position.y < -100) {
outOfBounds = true;
}
}
}

3
sources/Kamikadze.cpp Normal file
View File

@@ -0,0 +1,3 @@
//
// Created by k on 11.12.2024.
//

View File

@@ -42,6 +42,10 @@ Plansza::Plansza(unsigned int windowHeight, unsigned int windowWidth, sf::Render
std::cerr << "Failed to load advanced enemy texture!" << std::endl;
exit(-1);
}
if (!BombaTexture.loadFromFile("../assets/img/bullets/bomba.png")) {
std::cerr << "Failed to load BombaTexture!" << std::endl;
exit(-1);
}
spawnClock.restart();
}
@@ -489,7 +493,7 @@ void Plansza::spawn_enemy() {
}
void Plansza::spawn_advanced_enemy() {
if (AenemySpawnClock.getElapsedTime().asSeconds() >= 100) { // Spawn co 10 sekund
if (AenemySpawnClock.getElapsedTime().asSeconds() >= 80) { // Spawn co 10 sekund
int spawnX = RandomNumberGenerator::getRandomNumber(50, size.width - 50);
AEnemies.emplace_back(spawnX, -50, advancedEnemyTexture, enemyBulletTexture);
std::cout << "Spawned Advanced Enemy at X: " << spawnX << std::endl;
@@ -498,7 +502,7 @@ void Plansza::spawn_advanced_enemy() {
}
void Plansza::spawn_bomber() {
if (BomberSpawnClock.getElapsedTime().asSeconds() >= 5) { // Spawn co 10 sekund
if (BomberSpawnClock.getElapsedTime().asSeconds() >= 10) { // Spawn co 10 sekund
int spawnX = RandomNumberGenerator::getRandomNumber(50, size.width - 50);
BEnemies.emplace_back(spawnX, -50, BomberEnemyTexture, BombaTexture);
std::cout << "Spawned Bomber Enemy at X: " << spawnX << std::endl;