[Super-tux-commit] supertux/src player.cpp,1.135,1.136 player.h,1.67,1.68 resources.cpp,1.36,1.37
Brought to you by:
wkendrick
From: Ricardo C. <rm...@us...> - 2004-06-04 14:03:15
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17988/src Modified Files: player.cpp player.h resources.cpp Log Message: Now the growings animation looks pretty cool :) You can tweak its speed in the GROWING_TIME define on player.h (in ms). It's strange, but I have to pass 'false' for the use_alpha parameter in Surface. Else, it wouldn't use alpha... Something is definitively wrong. Index: player.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/player.cpp,v retrieving revision 1.135 retrieving revision 1.136 diff -u -d -r1.135 -r1.136 --- player.cpp 1 Jun 2004 14:47:31 -0000 1.135 +++ player.cpp 4 Jun 2004 14:03:06 -0000 1.136 @@ -42,13 +42,15 @@ // others stuff: #define AUTOSCROLL_DEAD_INTERVAL 300 +// growing animation +Surface* growingtux_left[GROWING_FRAMES]; +Surface* growingtux_right[GROWING_FRAMES]; + Surface* tux_life; Sprite* smalltux_gameover; Sprite* smalltux_star; Sprite* largetux_star; -Sprite* growingtux_left; -Sprite* growingtux_right; PlayerSprite smalltux; PlayerSprite largetux; @@ -116,7 +118,7 @@ frame_main = 0; frame_ = 0; - + player_input_init(&input); invincible_timer.init(true); @@ -633,7 +635,7 @@ base.y -= 32; if(animate) - growing_timer.start((int)((growingtux_left->get_frames() / growingtux_left->get_fps()) * 1000)); + growing_timer.start(GROWING_TIME); old_base = previous_base = base; } @@ -701,9 +703,9 @@ if(growing_timer.check()) { if (dir == RIGHT) - growingtux_right->draw(context, pos, layer); + context.draw_surface(growingtux_right[(growing_timer.get_gone() * GROWING_FRAMES) / GROWING_TIME], pos, layer); else - growingtux_left->draw(context, pos, layer); + context.draw_surface(growingtux_left[(growing_timer.get_gone() * GROWING_FRAMES) / GROWING_TIME], pos, layer); } else if (duck && size != SMALL) { Index: player.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/player.h,v retrieving revision 1.67 retrieving revision 1.68 diff -u -d -r1.67 -r1.68 --- player.h 31 May 2004 13:43:30 -0000 1.67 +++ player.h 4 Jun 2004 14:03:06 -0000 1.68 @@ -85,8 +85,11 @@ extern Sprite* smalltux_gameover; extern Sprite* smalltux_star; extern Sprite* largetux_star; -extern Sprite* growingtux_left; -extern Sprite* growingtux_right; + +#define GROWING_TIME 1000 +#define GROWING_FRAMES 7 +extern Surface* growingtux_left[GROWING_FRAMES]; +extern Surface* growingtux_right[GROWING_FRAMES]; struct PlayerSprite { Index: resources.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/resources.cpp,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- resources.cpp 31 May 2004 22:13:15 -0000 1.36 +++ resources.cpp 4 Jun 2004 14:03:06 -0000 1.37 @@ -56,8 +56,15 @@ largetux_star = sprite_manager->load("largetux-star"); smalltux_gameover = sprite_manager->load("smalltux-gameover"); - growingtux_left = sprite_manager->load("tux-grow-left"); - growingtux_right = sprite_manager->load("tux-grow-right"); + char img_name[1024]; + for (int i = 0; i < GROWING_FRAMES; i++) + { + sprintf(img_name, "%s/images/shared/tux-grow-left-%i.png", datadir.c_str(), i+1); + growingtux_left[i] = new Surface(img_name, false); + + sprintf(img_name, "%s/images/shared/tux-grow-right-%i.png", datadir.c_str(), i+1); + growingtux_right[i] = new Surface(img_name, false); + } smalltux.stand_left = sprite_manager->load("smalltux-stand-left"); smalltux.stand_right = sprite_manager->load("smalltux-stand-right"); @@ -247,6 +254,12 @@ delete tux_life; + for (int i = 0; i < GROWING_FRAMES; i++) + { + delete growingtux_left[i]; + delete growingtux_right[i]; + } + for (i = 0; i < NUM_SOUNDS; i++) free_chunk(sounds[i]); |