Skip to content

Commit

Permalink
Fixed menu fade in
Browse files Browse the repository at this point in the history
  • Loading branch information
MCMic committed Sep 7, 2016
1 parent f6b6964 commit 0d95e3c
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 13 deletions.
13 changes: 8 additions & 5 deletions engine/sprite.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,16 +87,19 @@ void fill_rect(SDL_Renderer* sdlRenderer,float x,float y,float w,float h,float r
SDL_RenderFillRect(sdlRenderer, &dstrect);
}

void draw_fadein(const Sprite *sprite,float x,float y,int count,int end,int delay,float n_turn,float angle) {
void draw_fadein(const Sprite *sprite,float x,float y,int count,int end,int delay,int mode) {
if (count>end-delay && count<=end) {
float factor=float(count-end+delay)/(delay+1);
sprite->draw(x,y,factor,angle+360*n_turn*(1-factor),factor);
} else if (count>end) sprite->draw(x,y,1.0,angle);
sprite->draw(x-((end-count)*10*(1-mode)),y-((end-count)*10*mode),factor,0,1);
} else if (count>end) {
sprite->draw(x,y,1.0,0);
}
}

void draw_fadeout(const Sprite *sprite,float x,float y,int count,int end,int delay,float n_turn,float angle) {
if (count<=end-delay) sprite->draw(x,y,1.0,angle);
else if (count<=end) {
if (count<=end-delay) {
sprite->draw(x,y,1.0,angle);
} else if (count<=end) {
float factor=1-float(count-end+delay)/(delay+1);
sprite->draw(x,y,factor,angle+360*n_turn*factor,factor);
}
Expand Down
2 changes: 1 addition & 1 deletion engine/sprite.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ SDL_Surface *create_surface(int width,int height);

void clear_screen(SDL_Renderer* sdlRenderer);
void fill_rect(SDL_Renderer* sdlRenderer,float x,float y,float w,float h,float r,float g,float b,float alpha=1.0);
void draw_fadein(const Sprite *sprite,float x,float y,int count,int end,int delay,float n_turn=0.0,float angle=0.0);
void draw_fadein(const Sprite *sprite,float x,float y,int count,int end,int delay,int mode);
void draw_fadeout(const Sprite *sprite,float x,float y,int count,int end,int delay,float n_turn=0.0,float angle=0.0);

#endif
11 changes: 4 additions & 7 deletions gui/menuscreen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,8 @@

#define MENUSCREEN_BASE_Y 0
#define MENUSCREEN_BASE_X 0
#define MENUSCREEN_FREE_FRAME_COUNT 150
#define MENUSCREEN_SIEGE_FRAME_COUNT 300
//~ #define MENUSCREEN_SWORD_FRAME_COUNT 55
#define MENUSCREEN_FREE_FRAME_COUNT 125
#define MENUSCREEN_SIEGE_FRAME_COUNT 150
#define MENUSCREEN_DELAY 50

#define D_SHIFT 0.008;
Expand Down Expand Up @@ -139,10 +138,8 @@ bool MenuScreen::display_menu(SDL_Renderer *sdlRenderer,SDL_Window *sdlWindow,SE
shift-=D_SHIFT;
if (shift<0) shift=0;


//draw_fadein(logo_sword,(SCREEN_W-logo_sword->w)/2,MENUSCREEN_BASE_Y-logo_sword->h/2-4,frame_count,MENUSCREEN_SWORD_FRAME_COUNT,30,4);
draw_fadein(logo_free,MENUSCREEN_BASE_X,MENUSCREEN_BASE_Y,frame_count,MENUSCREEN_FREE_FRAME_COUNT,MENUSCREEN_DELAY);
draw_fadein(logo_siege,SCREEN_W-logo_siege->w-MENUSCREEN_BASE_X,MENUSCREEN_BASE_Y,frame_count,MENUSCREEN_SIEGE_FRAME_COUNT,MENUSCREEN_DELAY);
draw_fadein(logo_free,MENUSCREEN_BASE_X,MENUSCREEN_BASE_Y,frame_count,MENUSCREEN_FREE_FRAME_COUNT,MENUSCREEN_DELAY, 0);
draw_fadein(logo_siege,SCREEN_W-logo_siege->w-MENUSCREEN_BASE_X,MENUSCREEN_BASE_Y,frame_count,MENUSCREEN_SIEGE_FRAME_COUNT,MENUSCREEN_DELAY, 1);

if(waiting_key) {
msgSprite->draw((SCREEN_W-msgSprite->w)/2,MENU_Y);
Expand Down

0 comments on commit 0d95e3c

Please sign in to comment.