Skip to content
Snippets Groups Projects
Commit 0f9a77a6 authored by Jonas Törnqvist's avatar Jonas Törnqvist
Browse files

senaste

parent 8e1ede8a
No related branches found
No related tags found
No related merge requests found
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
#include <iostream> #include <iostream>
Enemy::Enemy(float width, float height, float x_pos, float y_pos, float movement_speed) Enemy::Enemy(float width, float height, float x_pos, float y_pos, float movement_speed)
:enemy_size{width, height}, enemy_pos{x_pos, y_pos}, enemy{enemy_size}, movement_speed{movement_speed}, type{"enemy"}, :enemy_size{width, height}, enemy_pos{x_pos, y_pos}, enemy{enemy_size}, movement_speed{movement_speed}, movement_speed_y{movement_speed}, type{"enemy"},
spawn_x_pos{x_pos}, distance{}, move_right{false} spawn_x_pos{x_pos}, distance{}, move_right{false}, falling{true}
{} {}
void Enemy::update(sf::Time & delta, sf::RenderWindow & window) void Enemy::update(sf::Time & delta, sf::RenderWindow & window)
...@@ -27,6 +27,20 @@ bool Enemy::check_collision(Block* b, std::string const& type, Player const & p) ...@@ -27,6 +27,20 @@ bool Enemy::check_collision(Block* b, std::string const& type, Player const & p)
{ {
move_right = true; move_right = true;
} }
if(enemy_pos.y <= b->get_pos().y-40) //landar på något
{
std::cout << "kollisision" << std::endl;
enemy_pos.y = b->get_pos().y-40;
movement_speed_y = movement_speed;
falling = false;
//on_ground = true;
}
}
else
{
falling = true;
} }
if(enemy.getGlobalBounds().intersects(p.get_shape().getGlobalBounds())) if(enemy.getGlobalBounds().intersects(p.get_shape().getGlobalBounds()))
{ {
...@@ -36,6 +50,7 @@ bool Enemy::check_collision(Block* b, std::string const& type, Player const & p) ...@@ -36,6 +50,7 @@ bool Enemy::check_collision(Block* b, std::string const& type, Player const & p)
destruct = true; destruct = true;
} }
} }
return destruct; return destruct;
} }
...@@ -49,7 +64,27 @@ void Enemy::move(sf::Time & _delta) ...@@ -49,7 +64,27 @@ void Enemy::move(sf::Time & _delta)
else else
{ {
enemy_pos.x -= distance; enemy_pos.x -= distance;
//std::cout << "här" << std::endl;
} }
if (falling)
{
//std::cout << "falling" << std::endl;
float gravity = 1.82;
movement_speed_y = movement_speed_y + (gravity * (_delta.asMicroseconds() / 10000.0f));
float distance_y = movement_speed_y * (_delta.asMicroseconds() / 1000000.0f);
enemy_pos.y += distance_y;
/*if(enemy_pos.y < 0 || enemy_pos.y > 718)
{
movement_speed_y = movement_speed;
falling = false;
}*/
}
/*else if(enemy_pos.y < spawn_y_pos)
{
velocity_y = -velocity_y;
falling = true;
}*/
} }
...@@ -21,10 +21,12 @@ private: ...@@ -21,10 +21,12 @@ private:
sf::Vector2f enemy_pos{}; sf::Vector2f enemy_pos{};
sf::RectangleShape enemy{}; sf::RectangleShape enemy{};
float movement_speed{}; float movement_speed{};
float movement_speed_y{};
std::string type{}; std::string type{};
float spawn_x_pos{}; float spawn_x_pos{};
float distance{}; float distance{};
bool move_right{}; bool move_right{};
bool falling{};
}; };
#endif #endif
No preview for this file type
No preview for this file type
...@@ -17,8 +17,8 @@ int main() ...@@ -17,8 +17,8 @@ int main()
std::vector<Block*> blocks{}; std::vector<Block*> blocks{};
std::vector<Enemy*> enemies{}; std::vector<Enemy*> enemies{};
enemies.push_back(new Enemy{40,50,800,718, 50.0f}); enemies.push_back(new Enemy{40,50,900,218, 50.0f});
enemies.push_back(new Enemy{40,50,900,718, 0.0f}); enemies.push_back(new Enemy{40,50,300,218, 0.0f});
blocks.push_back(new Indestructable_block{50, 0, 718}); //size, x-pos, y-pos. Color: Red //BEGIN blocks.push_back(new Indestructable_block{50, 0, 718}); //size, x-pos, y-pos. Color: Red //BEGIN
blocks.push_back(new Indestructable_block{50, 974, 718}); //size, x-pos, y-pos. Color: Blue //END blocks.push_back(new Indestructable_block{50, 974, 718}); //size, x-pos, y-pos. Color: Blue //END
blocks.push_back(new Indestructable_block{50, 150, 718}); //size, x-pos, y-pos. Color: Green blocks.push_back(new Indestructable_block{50, 150, 718}); //size, x-pos, y-pos. Color: Green
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment