Re: [Super-tux-commit] supertux/src player.cpp,1.101,1.102 world.cpp,1.97,1.98 world.h,1.40,1.41
Brought to you by:
wkendrick
From: Ricardo C. <ri...@ae...> - 2004-05-18 17:17:02
|
I've just changed the butt jump controls, as well... :(( Anyway, your code looks good. The only problem is that the butt jump shoul= d=20 only be performed after a full jump... It is working in every each jump. I also think that small Tux shouldn't be able to do butt jumps, agree? Ricardo Cruz Em Ter=E7a, 18 de Maio de 2004 17:43, o Matze Braun escreveu: > Update of /cvsroot/super-tux/supertux/src > In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11720/src > > Modified Files: > player.cpp world.cpp world.h > Log Message: > fixed butt jump to work even when up-key is not pressed, added a little > jump after breaking a brick. The thing still has problems with breaking t= he > correct fix, as the used position is not the actual one, but the target > position for the next frame, so you can break some bricks that aren't > reachable normally > > Index: player.cpp > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvsroot/super-tux/supertux/src/player.cpp,v > retrieving revision 1.101 > retrieving revision 1.102 > diff -u -d -r1.101 -r1.102 > --- player.cpp 18 May 2004 14:16:37 -0000 1.101 > +++ player.cpp 18 May 2004 16:43:37 -0000 1.102 > @@ -390,32 +390,27 @@ > Player::handle_vertical_input() > { > // Press jump key > - if(input.up =3D=3D DOWN && can_jump) > + if(input.up =3D=3D DOWN && can_jump && on_ground()) > { > - if (on_ground()) > - { > - // jump higher if we are running > - if (fabs(physic.get_velocity_x()) > MAX_WALK_XM) > - physic.set_velocity_y(5.8); > - else > - physic.set_velocity_y(5.2); > + // jump higher if we are running > + if (fabs(physic.get_velocity_x()) > MAX_WALK_XM) > + physic.set_velocity_y(5.8); > + else > + physic.set_velocity_y(5.2); > > - --base.y; > - jumping =3D true; > - can_jump =3D false; > - if (size =3D=3D SMALL) > - play_sound(sounds[SND_JUMP], SOUND_CENTER_SPEAKER); > - else > - play_sound(sounds[SND_BIGJUMP], SOUND_CENTER_SPEAKER); > - } > + --base.y; > + jumping =3D true; > + can_jump =3D false; > + if (size =3D=3D SMALL) > + play_sound(sounds[SND_JUMP], SOUND_CENTER_SPEAKER); > + else > + play_sound(sounds[SND_BIGJUMP], SOUND_CENTER_SPEAKER); > } > // Let go of jump key > - else if(input.up =3D=3D UP && jumping) > + else if(input.up =3D=3D UP && jumping && physic.get_velocity_y() > 0) > { > jumping =3D false; > - if(physic.get_velocity_y() > 0) { > - physic.set_velocity_y(0); > - } > + physic.set_velocity_y(0); > } > > if (input.down =3D=3D DOWN && !on_ground() && !duck) > @@ -424,15 +419,15 @@ > butt_jump =3D false; > if (input.down =3D=3D DOWN && butt_jump && on_ground()) > { > - if (isbrick(base.x, base.y + base.height)) > - World::current()->trybreakbrick(base.x, base.y + base.height, > false); - if (isbrick(base.x + base.width, base.y + base.height)) > - World::current()->trybreakbrick(base.x + base.width, base.y + > base.height, false); - > + if(World::current()->trybreakbrick(base.x, base.y + base.height, > false) + || World::current()->trybreakbrick( > + base.x + base.width, base.y + base.height, false)) { > + // make tux jumping a little bit again after breaking the bricks > + physic.set_velocity_y(2); > + } > butt_jump =3D false; > } > > - > if ( (issolid(base.x + base.width / 2, base.y + base.height + 64) || > issolid(base.x + 1, base.y + base.height + 64) || > issolid(base.x + base.width - 1, base.y + base.height + 64)) > @@ -457,13 +452,9 @@ > > if (on_ground() && input.up =3D=3D UP) > can_jump =3D true; > - if (input.up =3D=3D DOWN || (input.up =3D=3D UP && jumping)) > - { > - handle_vertical_input(); > - } > + handle_vertical_input(); > > /* Shoot! */ > - > if (input.fire =3D=3D DOWN && input.old_fire =3D=3D UP && got_power != =3D > NONE_POWER) { > World::current()->add_bullet(base.x, base.y, > physic.get_velocity_x(), dir); > > Index: world.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvsroot/super-tux/supertux/src/world.h,v > retrieving revision 1.40 > retrieving revision 1.41 > diff -u -d -r1.40 -r1.41 > --- world.h 16 May 2004 01:36:54 -0000 1.40 > +++ world.h 18 May 2004 16:43:37 -0000 1.41 > @@ -111,7 +111,7 @@ > void trygrabdistro(float x, float y, int bounciness); > > /** Try to break the brick at the given coordinates */ > - void trybreakbrick(float x, float y, bool small); > + bool trybreakbrick(float x, float y, bool small); > > /** Try to get the content out of a bonus box, thus emptying it */ > void tryemptybox(float x, float y, Direction col_side); > > Index: world.cpp > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvsroot/super-tux/supertux/src/world.cpp,v > retrieving revision 1.97 > retrieving revision 1.98 > diff -u -d -r1.97 -r1.98 > --- world.cpp 18 May 2004 14:16:38 -0000 1.97 > +++ world.cpp 18 May 2004 16:43:37 -0000 1.98 > @@ -643,7 +643,7 @@ > } > > /* Break a brick: */ > -void > +bool > World::trybreakbrick(float x, float y, bool small) > { > Level* plevel =3D get_level(); > @@ -677,6 +677,7 @@ > play_sound(sounds[SND_DISTRO], SOUND_CENTER_SPEAKER); > player_status.score =3D player_status.score + SCORE_DISTRO; > player_status.distros++; > + return true; > } > else if (!small) > { > @@ -691,8 +692,12 @@ > /* Get some score: */ > play_sound(sounds[SND_BRICK], SOUND_CENTER_SPEAKER); > player_status.score =3D player_status.score + SCORE_BRICK; > + > + return true; > } > } > + > + return false; > } > > /* Empty a box: */ > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: SourceForge.net Broadband > Sign-up now for SourceForge Broadband and get the fastest > 6.0/768 connection for only $19.95/mo for the first 3 months! > http://ads.osdn.com/?ad_id=3D2562&alloc_id=3D6184&op=3Dclick > _______________________________________________ > Super-tux-commit mailing list > Sup...@li... > https://lists.sourceforge.net/lists/listinfo/super-tux-commit =2D-=20 HOW TO PROVE IT, PART 7 proof by forward reference: Reference is usually to a forthcoming paper of the author,=20 which is often not as forthcoming as at first. proof by semantic shift: Some of the standard but inconvenient definitions are changed=20 for the statement of the result. proof by appeal to intuition: Cloud-shaped drawings frequently help here. |