Cos usprawnione i nasrane
This commit is contained in:
@@ -34,6 +34,8 @@ add_executable(LotoStatek main.cpp
|
|||||||
sources/AdvancedEnemy.cpp
|
sources/AdvancedEnemy.cpp
|
||||||
headers/Bomber.h
|
headers/Bomber.h
|
||||||
sources/Bomber.cpp
|
sources/Bomber.cpp
|
||||||
|
headers/Kamikadze.h
|
||||||
|
sources/Kamikadze.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ public:
|
|||||||
void moveRight() override;
|
void moveRight() override;
|
||||||
void moveUp() override;
|
void moveUp() override;
|
||||||
void moveDown() override;
|
void moveDown() override;
|
||||||
|
void setRandomDirection();
|
||||||
|
|
||||||
void update();
|
void update();
|
||||||
|
|
||||||
|
|||||||
8
headers/Kamikadze.h
Normal file
8
headers/Kamikadze.h
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
//
|
||||||
|
// Created by k on 11.12.2024.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef KAMIKADZE_H
|
||||||
|
#define KAMIKADZE_H
|
||||||
|
|
||||||
|
#endif //KAMIKADZE_H
|
||||||
@@ -1,21 +1,48 @@
|
|||||||
#include "../headers/Bomber.h"
|
#include "../headers/Bomber.h"
|
||||||
#include "../headers/Bullet.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) {
|
Bomber::Bomber(int x, int y, const sf::Texture& texture, const sf::Texture& bulletTexture) : Actor(x, y, texture) {
|
||||||
actorSprite.setTexture(texture);
|
actorSprite.setTexture(texture);
|
||||||
BombaTexture = bulletTexture;
|
BombaTexture = bulletTexture;
|
||||||
hp = 2; // 2 punkty życia
|
hp = 2; // 2 punkty życia
|
||||||
firerate = 2000; // Strzela co 2
|
firerate = 10000; // Strzela co 10
|
||||||
moving_speed = 2.0f; // Prędkość
|
moving_speed = 1.0f; // Prędkość
|
||||||
BombaTexture.loadFromFile("../assets/img/bullets/bomba.png");
|
// 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() {
|
void Bomber::shoot() {
|
||||||
if (shootClock.getElapsedTime().asMilliseconds() >= firerate) {
|
if (shootClock.getElapsedTime().asMilliseconds() >= firerate) {
|
||||||
Bullet Bbullet(position.x, position.y + actorSprite.getGlobalBounds().height / 2, BombaTexture);
|
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));
|
bullets.emplace_back(std::move(Bbullet));
|
||||||
shootClock.restart();
|
shootClock.restart();
|
||||||
|
setRandomDirection();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,13 @@
|
|||||||
#include "../headers/Bullet.h"
|
#include "../headers/Bullet.h"
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <ostream>
|
||||||
|
|
||||||
void Bullet::update() {
|
void Bullet::update() {
|
||||||
|
//std::cout << "Start update: speed = " << speed << ", position.y = " << position.y << std::endl;
|
||||||
sprite.move(0.0f, speed);
|
sprite.move(0.0f, speed);
|
||||||
position.y += int(speed);
|
position.y += int(speed);
|
||||||
if(position.y < -100) {
|
if(position.y < -100) {
|
||||||
outOfBounds = true;
|
outOfBounds = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
3
sources/Kamikadze.cpp
Normal file
3
sources/Kamikadze.cpp
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
//
|
||||||
|
// Created by k on 11.12.2024.
|
||||||
|
//
|
||||||
@@ -42,6 +42,10 @@ Plansza::Plansza(unsigned int windowHeight, unsigned int windowWidth, sf::Render
|
|||||||
std::cerr << "Failed to load advanced enemy texture!" << std::endl;
|
std::cerr << "Failed to load advanced enemy texture!" << std::endl;
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
if (!BombaTexture.loadFromFile("../assets/img/bullets/bomba.png")) {
|
||||||
|
std::cerr << "Failed to load BombaTexture!" << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
spawnClock.restart();
|
spawnClock.restart();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -489,7 +493,7 @@ void Plansza::spawn_enemy() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Plansza::spawn_advanced_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);
|
int spawnX = RandomNumberGenerator::getRandomNumber(50, size.width - 50);
|
||||||
AEnemies.emplace_back(spawnX, -50, advancedEnemyTexture, enemyBulletTexture);
|
AEnemies.emplace_back(spawnX, -50, advancedEnemyTexture, enemyBulletTexture);
|
||||||
std::cout << "Spawned Advanced Enemy at X: " << spawnX << std::endl;
|
std::cout << "Spawned Advanced Enemy at X: " << spawnX << std::endl;
|
||||||
@@ -498,7 +502,7 @@ void Plansza::spawn_advanced_enemy() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Plansza::spawn_bomber() {
|
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);
|
int spawnX = RandomNumberGenerator::getRandomNumber(50, size.width - 50);
|
||||||
BEnemies.emplace_back(spawnX, -50, BomberEnemyTexture, BombaTexture);
|
BEnemies.emplace_back(spawnX, -50, BomberEnemyTexture, BombaTexture);
|
||||||
std::cout << "Spawned Bomber Enemy at X: " << spawnX << std::endl;
|
std::cout << "Spawned Bomber Enemy at X: " << spawnX << std::endl;
|
||||||
|
|||||||
Reference in New Issue
Block a user