diff --git a/source/code/main.cpp b/source/code/main.cpp index 8ec9eb0..8fcaa29 100644 --- a/source/code/main.cpp +++ b/source/code/main.cpp @@ -123,8 +123,6 @@ static int InitImages(sago::SagoSpriteHolder& holder) { bricks[5] = holder.GetSprite("block_yellow"); bricks[6] = holder.GetSprite("block_grey"); bomb = holder.GetSprite("block_bomb"); - //backgroundImage = holder.GetSprite("background"); - //backgroundSixteenNineImage = holder.GetSprite("background_sixteen_nine"); globalData.bHighScore = holder.GetSprite("b_highscore"); globalData.bBack = holder.GetSprite("b_blank"); bForward = holder.GetSprite("b_forward"); @@ -275,19 +273,26 @@ void DrawBackground(SDL_Renderer* target) { if ( (double)globalData.xsize/globalData.ysize > 1.5 && globalData.theme.background.background_sprite_16x9.length()) { background = globalData.spriteHolder->GetSprite(globalData.theme.background.background_sprite_16x9); } + size_t ticks = SDL_GetTicks(); if (globalData.theme.background.background_scale == ImgScale::Tile) { int nextX = 0; + if (globalData.theme.background.tileMoveSpeedX) { + nextX -= (ticks/globalData.theme.background.tileMoveSpeedX)%background.GetWidth(); + } while (nextX < globalData.xsize) { int nextY = 0; + if (globalData.theme.background.tileMoveSpeedY) { + nextY -= (ticks/globalData.theme.background.tileMoveSpeedY)%background.GetWidth(); + } while (nextY < globalData.ysize) { - background.Draw(target, SDL_GetTicks(), nextX, nextY); + background.Draw(target, ticks, nextX, nextY); nextY += background.GetHeight(); } nextX += background.GetWidth(); } return; } - background.DrawScaled(target, SDL_GetTicks(), 0, 0, globalData.xsize, globalData.ysize); + background.DrawScaled(target, ticks, 0, 0, globalData.xsize, globalData.ysize); } /** diff --git a/source/code/themes.cpp b/source/code/themes.cpp index 0b50be8..f5abd38 100644 --- a/source/code/themes.cpp +++ b/source/code/themes.cpp @@ -44,6 +44,8 @@ static void InitBackGroundData() { alt_background.background_sprite = "background_sample"; alt_background.background_sprite_16x9 = ""; alt_background.background_scale = ImgScale::Tile; + alt_background.tileMoveSpeedX = 50; + alt_background.tileMoveSpeedY = 100; background_data["alt_background"] = alt_background; } diff --git a/source/code/themes.hpp b/source/code/themes.hpp index 34fe300..df7579b 100644 --- a/source/code/themes.hpp +++ b/source/code/themes.hpp @@ -34,6 +34,8 @@ struct BackGroundData { std::string background_name = ""; std::string background_sprite = ""; std::string background_sprite_16x9 = ""; + int tileMoveSpeedX = 0; //Move the tiled background every X milliseconds. 0 disables it. + int tileMoveSpeedY = 0; //Move the tiled background every X milliseconds. 0 disables it. ImgScale background_scale = ImgScale::Stretch; };