Commit fd3ef088 authored by Illia Aldabaiev's avatar Illia Aldabaiev
Browse files

improve class OpenSpace and laser

parent 51bd0ec4
Loading
Loading
Loading
Loading
+100 −2
Original line number Diff line number Diff line
@@ -15,6 +15,12 @@ Falcon_9::Falcon_9()
        abort();
    }

    left_laser = false;
    up_laser = false;
    right_laser = false;
    down_laser = false;
    laser_bool = false;
    right_or_left_laser = true;

    sprite_cabine.setPosition(0, 0);
    sprite_cabine.setTexture(cabine_texture);
@@ -22,10 +28,11 @@ Falcon_9::Falcon_9()
    sprite_cabine.setScale(1, 1.05);
    sprite_cabine.setPosition(0, -40);


    scope_pos_x = 640;
    scope_pos_y = 360;

    sprite_scope.setTexture(scope_texture);
    sprite_scope.setPosition(640, 360);
    sprite_scope.setPosition(scope_pos_x, scope_pos_y);


    speed = 5;
@@ -42,3 +49,94 @@ int Falcon_9::get_speed()
{
    return speed;
}

void Falcon_9::lasers(sf::RenderWindow &win)
{
    sf::VertexArray laser1(sf::Quads,4);
    sf::VertexArray laser2(sf::Triangles,3);

    laser1[0].position = sf::Vector2f (339,541);
    laser1[1].position = sf::Vector2f (433,541);
    laser1[2].position = sf::Vector2f (444,575);
    laser1[3].position = sf::Vector2f (scope_pos_x+40,scope_pos_y+40);
    laser1[0].color = sf::Color::Green;
    laser1[1].color = sf::Color::Green;
    laser1[2].color = sf::Color::Green;
    laser1[3].color = sf::Color::Red;

    laser2[0].position = sf::Vector2f (945,515);
    laser2[1].position = sf::Vector2f (950,510);
    laser2[2].position = sf::Vector2f (scope_pos_x + 40,scope_pos_y + 40);
    laser2[0].color = sf::Color::Red;
    laser2[1].color = sf::Color::Red;
    laser2[2].color = sf::Color(137, 19, 145);

    if (laser_bool)
    {
        if (right_or_left_laser)
        {
            win.draw(laser1);
        }
        else
        {
            win.draw(laser2);
        }
        (right_or_left_laser)? right_or_left_laser = false : right_or_left_laser = true;
    }
}

void Falcon_9::set_laser_pos()
{
    if (left_laser)
        scope_pos_x -= 5;
    if (up_laser)
        scope_pos_y -= 5;
    if (right_laser)
        scope_pos_x += 5;
    if (down_laser)
        scope_pos_y += 5;
    else
        return_laser();

    sprite_scope.setPosition(scope_pos_x, scope_pos_y);
}

void Falcon_9::key_press(sf::Event &e, bool set)
{
    int key = e.key.code;
    std::cout << key;
    switch (key)
    {
        case 71:
            left_laser = set;
            break;
        case 73:
            up_laser = set;
            break;
        case 72:
            right_laser = set;
            break;
        case 74:
            down_laser = set;
            break;
        case 57:
            laser_bool = set;
    }
}

void Falcon_9::return_laser()
{
    if (!(left_laser || up_laser || right_laser || down_laser))
    {
        if (scope_pos_x > 640)
            scope_pos_x -= 3;
        if (scope_pos_x < 640)
            scope_pos_x += 3;
        if (scope_pos_y > 360)
            scope_pos_y -= 3;
        if (scope_pos_y < 360)
            scope_pos_y += 3;
    }
}

+14 −0
Original line number Diff line number Diff line
@@ -9,10 +9,24 @@ class Falcon_9 {
    sf::Texture cabine_texture;
    sf::Sprite sprite_cabine;
    sf::Sprite sprite_scope;
    sf::VertexArray laser;

    bool left_laser;
    bool up_laser;
    bool right_laser;
    bool down_laser;
    bool laser_bool;
    bool right_or_left_laser;
    int scope_pos_x;
    int scope_pos_y;

public:
    Falcon_9();
    void draw_falcon(sf::RenderWindow &win) const;
    void lasers(sf::RenderWindow &win);
    void key_press(sf::Event &e, bool set);
    void set_laser_pos();
    void return_laser();
    int get_speed();
};

IMG/moon.png

0 → 100644
+16.1 KiB
Loading image diff...
+12 −2
Original line number Diff line number Diff line
@@ -19,10 +19,11 @@ Menu::Menu()
void Menu::set_state(int key)
{
    //36 - escape
    if (key == 36)
    if (key == 36 && start_screen == false)
    {
        current_state = last_state;
        state_int = 0;
        highlight_pos_y = 179;
        start_screen = true;
    }
    else
@@ -41,7 +42,9 @@ void Menu::set_state(int key)
                    highlight_pos_y = 139;
                }
                else
                {
                    ++state_int;
                }
                highlight_pos_y += 40;
                break;
            case 73:
@@ -51,12 +54,19 @@ void Menu::set_state(int key)
                    highlight_pos_y = 299;
                }
                else
                {
                    --state_int;
                }
                highlight_pos_y -= 40;
                break;
            case 58:
                last_state = current_state;

                if (state_int == 0)
                    current_state = RUNNING;
                else
                    current_state = static_cast<GameState>(state_int);

                start_screen = false;
                break;
        }
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
#define SPACETOUR__MENU_H


enum GameState : int {START= 0, SETTINGS = 1, HOW_TO_PLAY = 2, FINISHED = 333};
enum GameState : int {START= 0, SETTINGS = 1, HOW_TO_PLAY = 2, RUNNING = 332, FINISHED = 333};

class Menu {

Loading