diff --git a/AsepriteThings/flower_tile.aseprite b/AsepriteThings/flower_tile.aseprite new file mode 100644 index 0000000..f651bbb Binary files /dev/null and b/AsepriteThings/flower_tile.aseprite differ diff --git a/SimpleGame/media/sprites/flower_tile.png b/SimpleGame/media/sprites/flower_tile.png new file mode 100644 index 0000000..3c59940 Binary files /dev/null and b/SimpleGame/media/sprites/flower_tile.png differ diff --git a/SimpleGame/src/CMakeLists.txt b/SimpleGame/src/CMakeLists.txt index b08e8ee..a7748a3 100644 --- a/SimpleGame/src/CMakeLists.txt +++ b/SimpleGame/src/CMakeLists.txt @@ -21,6 +21,8 @@ add_executable(simpleGame Source/Game.cpp Include/Game.hpp Source/Main.cpp Source/RoundTarget.cpp Include/RoundTarget.hpp Source/AudioEmitter.cpp Include/AudioEmitter.hpp + Source/NoteSprite.cpp Include/NoteSprite.hpp + Source/NoteTile.cpp Include/NoteTile.hpp Include/NotePlaceEnum.hpp ) target_include_directories(simpleGame PRIVATE diff --git a/SimpleGame/src/Include/NoteSprite.hpp b/SimpleGame/src/Include/NoteSprite.hpp new file mode 100644 index 0000000..05a1e08 --- /dev/null +++ b/SimpleGame/src/Include/NoteSprite.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include +#include +class NoteTile; + +// Should just be a component of NoteTile +class NoteSprite { +public: + static sf::Texture texture; + friend class NoteTile; + +private: + sf::Sprite sprite; + float fall_speed; + NoteSprite(); + NoteSprite(sf::Vector2f start_pos, float fall_speed); + void update(float dtime); +}; diff --git a/SimpleGame/src/Include/NoteTile.hpp b/SimpleGame/src/Include/NoteTile.hpp index 84bfe41..9920b8a 100644 --- a/SimpleGame/src/Include/NoteTile.hpp +++ b/SimpleGame/src/Include/NoteTile.hpp @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -12,10 +13,10 @@ private: float good_interval; NotePlaceEnum place; // used for Graphics - sf::Vector2f position; + NoteSprite note_sprite; // probably some tileSprite class here in the future <- - // Constructor private, use create to create + // Constructor is rivate, use create NoteTile(float play_time, float good_interval, NotePlaceEnum place); public: diff --git a/SimpleGame/src/Source/NoteSprite.cpp b/SimpleGame/src/Source/NoteSprite.cpp new file mode 100644 index 0000000..6a0d290 --- /dev/null +++ b/SimpleGame/src/Source/NoteSprite.cpp @@ -0,0 +1,16 @@ +#include "NoteSprite.hpp" +#include +#include +#include + +sf::Texture NoteSprite::texture; + +NoteSprite::NoteSprite() : sprite(sf::Sprite(texture)), fall_speed(0.f) {}; +NoteSprite::NoteSprite(sf::Vector2f start_pos, float fall_speed) + : fall_speed(fall_speed), sprite(sf::Sprite(NoteSprite::texture)) { + sprite.setPosition(start_pos); // sprite position c'est le left up corner +}; + +void NoteSprite::update(float dtime) { + sprite.move(sf::Vector2f(0, fall_speed * dtime)); +}; diff --git a/SimpleGame/src/Source/NoteTile.cpp b/SimpleGame/src/Source/NoteTile.cpp index ae19611..384cc23 100644 --- a/SimpleGame/src/Source/NoteTile.cpp +++ b/SimpleGame/src/Source/NoteTile.cpp @@ -1,10 +1,16 @@ #include "NoteTile.hpp" +#include "NoteSprite.hpp" +#include std::vector> NoteTile::existing_tiles; // private NoteTile::NoteTile(float play_time, float good_interval, NotePlaceEnum place) - : play_time(play_time), good_interval(good_interval), place(place) { + : play_time(play_time), good_interval(good_interval), place(place), + note_sprite() { + // TODO do real note_sprite init, make it fall at good speed far enough... + note_sprite.sprite.setPosition(sf::Vector2f(200, 0)); + note_sprite.fall_speed = 1; NoteTile::existing_tiles.push_back(std::unique_ptr(this)); }