Cluster::Cluster() { setBumpObjectType(BumpCluster); setFrozen(true); setCollisions(false); reset(); }
Player::Player(sf::Vector2f position,sf::RenderWindow* app) : Object(app)//custom constructor for the Player. { this->position= position; velocity.x = 0; velocity.y = 0; setSpriteImage("images/Player.png"); collideFloor = false; sprite.SetPosition(position); prevPosition = position; Object::objectInitialise(position); setCollisions(); updateBoxes(); exitHit=false; playerHealth=10; superJump=false; }
//RETURNS TRUE IF THE PLAYER HAS COLLIDED WITH A BLOCK bool Player::collidesWithBlock(Block* block) { if( playerBoundingBoxTop.Intersects( block->getBoundingBox())) { if(block->returnblockType() == NORMAL_BLOCK) { position.y = prevPosition.y; sprite.SetPosition(position); setCollisions(); } if(block->returnblockType() == UP_BLOCK) { position.y -= 80; //position.y = prevPosition.y; sprite.SetPosition(position); //system("pause"); setCollisions(); } } if ( playerBoundingBoxBottom.Intersects(block->getBoundingBox())) { collideFloor = true; if(block->returnblockType() == NORMAL_BLOCK || block->returnblockType() == UP_BLOCK ) { velocity.y = 0; position.y = prevPosition.y; sprite.SetPosition(position); } else if(block->returnblockType() == DOWN_BLOCK)// CHECKING BLOCK TYPE { position.y += 80; sprite.SetPosition(position); setCollisions(); } } if ( playerBoundingBoxLeft.Intersects(block->getBoundingBox())) { leftBoxCollide = true; } if( playerBoundingBoxRight.Intersects(block->getBoundingBox())) { rightBoxCollide = true; } if ( rightBoxCollide == true) { position.x = prevPosition.x; velocity.x = 0; } if ( leftBoxCollide == true) { position.x = prevPosition.x; velocity.x = 0; } if(topBoxCollide || bottomBoxCollide || leftBoxCollide || rightBoxCollide) { return true; } else { return false; } }