Skip to content

Commit 09d15a2

Browse files
committed
Can spawn several enemies and tiles
1 parent 40bdb3f commit 09d15a2

File tree

5 files changed

+29
-9
lines changed

5 files changed

+29
-9
lines changed

Enemy.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include <SFML/Graphics.hpp>
55
#include <cmath>
66

7-
Enemy::Enemy()
7+
Enemy::Enemy(sf::Vector2f startPosition, sf::Color startColour)
88
: texture{},
99
sprite( // Create a enemy sprite
1010
[this]() {
@@ -19,10 +19,9 @@ Enemy::Enemy()
1919
sprite.setTexture(texture);
2020
sprite.setTextureRect({{485,1}, {240,240}});
2121
sprite.setOrigin({sprite.getTextureRect().size.x / 2.0f, sprite.getTextureRect().size.y / 2.0f});
22-
sf::Vector2<float> position(275.f, 200.f); // Set coordinates
23-
sprite.setPosition(position); // Place sprite at coordinates
22+
sprite.setPosition(startPosition); // Place sprite at coordinates
2423
sprite.setScale({1.0f,1.0f});
25-
sprite.setColor(sf::Color::Red);
24+
sprite.setColor(startColour);
2625

2726
// Default movement speed
2827
speed = 80.0f;

Enemy.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
class Enemy {
77
public:
8-
Enemy();
8+
Enemy(sf::Vector2f startPosition, sf::Color startColour);
99
void Enemy::update(float deltaTime, const sf::Vector2f& playerPosition, bool playerAttacking);
1010
sf::Vector2f getPosition();
1111
void Enemy::draw(sf::RenderWindow& window);

main.cpp

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,21 @@ int main()
1818
Player player;
1919

2020
// Create a enemy
21-
Enemy enemy;
2221
std::vector<Enemy> enemies;
22+
sf::Vector2<float> position1(275.f, 200.f);
23+
Enemy enemy1(position1, sf::Color::Red);
24+
enemies.push_back(enemy1);
25+
sf::Vector2<float> position2(255.f, 220.f);
26+
Enemy enemy2(position2, sf::Color::Red);
27+
enemies.push_back(enemy2);
28+
29+
// Create walls
30+
std::vector<sf::RectangleShape> walls;
31+
sf::RectangleShape wall(sf::Vector2f(50.f, 50.f));
32+
sf::Vector2<float> position(275.f, 200.f); // Set coordinates
33+
wall.setPosition(position);
34+
wall.setFillColor(sf::Color::Red);
35+
walls.push_back(wall);
2336

2437
// Create game window
2538
sf::RenderWindow window(sf::VideoMode({800, 600}), "2D Game", sf::Style::Titlebar | sf::Style::Close);
@@ -78,13 +91,21 @@ int main()
7891
// Handle player controls and enemy updates
7992
player.handleInput();
8093
player.update();
81-
enemy.update(deltaTime, player.getPosition(), player.attacking);
8294

8395
// Create new window with sprites drawn in
8496
window.clear(sf::Color::White);
8597
player.draw(window);
86-
enemy.draw(window);
87-
98+
99+
// Display walls
100+
for (const auto& wall : walls) {
101+
window.draw(wall);
102+
}
103+
// Display and update enemies
104+
for (auto& enemy : enemies) {
105+
enemy.update(deltaTime, player.getPosition(), player.attacking);
106+
enemy.draw(window);
107+
}
108+
88109
window.display();
89110
}
90111
return 0;

main.exe

-61.5 KB
Binary file not shown.

main.obj

-66.2 KB
Binary file not shown.

0 commit comments

Comments
 (0)