summaryrefslogtreecommitdiff
path: root/World.cpp
diff options
context:
space:
mode:
authormiguel <miguel@localhost>2017-09-13 11:55:36 +0200
committermiguel <miguel@localhost>2017-09-13 11:55:36 +0200
commit1555b96b32a919c3e3b9e44ac1d80dab005d9ab8 (patch)
tree1e067e6a8915d638509adc2c16229b5ed600209c /World.cpp
parente2063047ee1d145dbdf1963a23f183cc9db9bf52 (diff)
added coin collecting sounds
Diffstat (limited to 'World.cpp')
-rw-r--r--World.cpp26
1 files changed, 23 insertions, 3 deletions
diff --git a/World.cpp b/World.cpp
index 0e5bff2..04801f5 100644
--- a/World.cpp
+++ b/World.cpp
@@ -1,8 +1,9 @@
+#include <random>
#include "World.h"
-
World::World(int l):level(l)
{
+ coins=0;
level--;
next_level();
reset();
@@ -10,6 +11,10 @@ World::World(int l):level(l)
void World::reset()
{
+ std::random_device rd; //Will be used to obtain a seed for the random number engine
+ std::mt19937 gen(rd()); //Standard mersenne_twister_engine seeded with rd()
+ std::uniform_int_distribution<> dis(-5, 10);
+
player.x2=player.x=0;
player.speed=level;
player.anim=0;
@@ -17,12 +22,13 @@ void World::reset()
player.y2=0;
player.dead=false;
player.win=false;
+ player.collected_coin=false;
coins_pos.clear();
for(int i=0;i<bricks.size();i++)
{
- coins_pos.push_back(4);
+ coins_pos.push_back(dis(gen));
}
@@ -135,7 +141,21 @@ void World::sim(double time)
}
if(last_brick==4){player.y--;player.y2=0;}
- if(last_brick==3){player.y++;player.y2=0;}
+ if(last_brick==3)
+ {
+ player.y++;player.y2=0;
+ if(coins_pos[player.x-1]==player.y){
+ coins_pos[player.x-1]=99;
+ coins++;
+ player.collected_coin=true;
+ }
+ }
+
+ if(coins_pos[player.x]==player.y){
+ coins_pos[player.x]=99;
+ coins++;
+ player.collected_coin=true;
+ }
bool ok=false;
for(Brick &brick:bricks[player.x])