Commit f8c14c89 authored by Justine Martin's avatar Justine Martin 💖
Browse files

feat : Les astéroids tournent dans une direction aléatoire

parent 9db532af
Loading
Loading
Loading
Loading
+1 −1
Changes for CMakeLists.txt: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -18,5 +18,5 @@ include_directories("glitter/ext/tinyobjloader"
		${OPENGL_INCLUDE_DIR})

add_executable(GLE-test src/main.cpp src/RenderObject.cpp src/GuiElement.cpp src/RenderObjectPart.cpp src/GlApplication.cpp
               src/model/Spaceship.cpp src/model/Entity.cpp src/model/Missile.cpp src/model/Box.cpp)
               src/model/Spaceship.cpp src/model/Asteroid.cpp src/model/Entity.cpp src/model/Missile.cpp src/model/Box.cpp)
target_link_libraries(GLE-test utils ${GLFW3_LIBRARIES} ${GLEW_LIBRARIES})
+1 −0
Changes for include/GlApplication.hpp: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@

#include "GuiElement.hpp"
#include "RenderObject.hpp"
#include "model/Asteroid.hpp"
#include "model/Missile.hpp"
#include "model/Player.hpp"
#include "model/Spaceship.hpp"
+22 −0
Changes for include/model/Asteroid.hpp: 22 added lines, 0 removed lines.
Original line number Diff line number Diff line
#pragma once

#include <cstdlib>
#include <ctime>

#include <glm/ext.hpp>

#include "model/Entity.hpp"

#define ASTEROID_SPEED 0.1

class Asteroid : public Entity {
    private:

        glm::vec3 rotationAngle;

    public:
        Asteroid();
        ~Asteroid();

        void update(const float &deltaTime) override;
};
+1 −1
Changes for src/GlApplication.cpp: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ void GlApplication::createEntities() {

    const float pi = glm::pi<float>();

    std::shared_ptr<Entity> asteroidEntity(new Entity());
    std::shared_ptr<Entity> asteroidEntity(new Asteroid());
    asteroidEntity->setScale(0.25);
    m_entities[ModelKeys::ASTEROID].push_back(asteroidEntity);

src/model/Asteroid.cpp

0 → 100644
+22 −0
Changes for src/model/Asteroid.cpp: 22 added lines, 0 removed lines.
Original line number Diff line number Diff line
#include "model/Asteroid.hpp"

Asteroid::Asteroid()
        : Entity() {
    srand(time(NULL));

    const float pi = glm::pi<float>();
    this->rotationAngle = glm::vec3(glm::radians((float)(rand() % 180)) - pi, glm::radians((float)(rand() % 180)) - pi, glm::radians((float)(rand() % 180)) - pi);
}

Asteroid::~Asteroid() {}

void Asteroid::update(const float &deltaTime) {
    glm::vec3 xAxis = (float)sin(this->rotationAngle.x * deltaTime * ASTEROID_SPEED) * this->get_x_axis();
    rotate(glm::quat(cos(this->rotationAngle.x * deltaTime * ASTEROID_SPEED), xAxis));
    
    glm::vec3 yAxis = (float)sin(this->rotationAngle.y * deltaTime * ASTEROID_SPEED) * this->get_y_axis();
    rotate(glm::quat(cos(this->rotationAngle.y * deltaTime * ASTEROID_SPEED), yAxis));
    
    glm::vec3 zAxis = (float)sin(this->rotationAngle.z * deltaTime * ASTEROID_SPEED) * this->get_z_axis();
    rotate(glm::quat(cos(this->rotationAngle.z * deltaTime * ASTEROID_SPEED), zAxis));
}