From e2063047ee1d145dbdf1963a23f183cc9db9bf52 Mon Sep 17 00:00:00 2001 From: miguel Date: Wed, 13 Sep 2017 10:50:03 +0200 Subject: coins, bigger level, hud, etc --- World.cpp | 172 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 164 insertions(+), 8 deletions(-) (limited to 'World.cpp') diff --git a/World.cpp b/World.cpp index 1a3e9b5..0e5bff2 100644 --- a/World.cpp +++ b/World.cpp @@ -1,32 +1,184 @@ #include "World.h" -World::World(int level) +World::World(int l):level(l) +{ + level--; + next_level(); + reset(); +} + +void World::reset() { - player.speed=0; player.x2=player.x=0; + player.speed=level; player.anim=0; - // generate level player.y=bricks[0][0].altitude+1; + player.y2=0; + player.dead=false; + player.win=false; + + coins_pos.clear(); + + for(int i=0;i0.4) + { + player.dead=true; + return; + } + } + + player.anim=(int)(player.x2*6*player.speed)%2; while(player.x2>1.0) { player.x2-=1; player.x+=1; - - player.speed--; + + if (player.x>=bricks.size()) + { + player.win=true; + return; + } + + if(last_brick==4){player.y--;player.y2=0;} + if(last_brick==3){player.y++;player.y2=0;} + + bool ok=false; + for(Brick &brick:bricks[player.x]) + { + if(brick.altitude==player.y-1&&brick.type!=3)ok=true; + else if(brick.altitude==player.y&&brick.type==3)ok=true; + else if(brick.altitude==player.y&&brick.type!=3) + { + ok=false; + break; + } + } + + if (!ok) + { + player.dead=true; + return; + } + +// player.speed--; } + + + + + + + + } void World::mouseclick(int x, int y) { + if(player.dead){reset();return;} + if(player.win){next_level();return;} + if(x<0||x>=bricks.size())return; + int idx=0; for(Brick &brick:bricks[x]) { + if(brick.type==0&&brick.altitude>=y) + { + return; + } if(brick.type<=1&&brick.altitude==y) { return; @@ -34,13 +186,17 @@ void World::mouseclick(int x, int y) if(brick.type>1&&brick.altitude==y) { brick.type++; - if(brick.type>=6)brick.type=2; + if(brick.type>=5) + { + bricks[x].erase(bricks[x].begin()+idx); + } return; } + idx++; } bricks[x].push_back({y,2}); - player.speed++; +// player.speed++; } -- cgit v1.2.3