//GameScreenLevel1.cpp void GameScreenLevel1::SetLevelMap() { //0 blank, 1 wall, 2 win condition int map[MAP_HEIGHT][MAP_WIDTH] = { {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0}, {1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1}, {0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0}, {0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} }; //Clear up any old map if (mLevelMap != NULL) { delete mLevelMap; } //Set up the new one mLevelMap = new LevelMap(map); } //Collision.cpp bool Collision::Circle(Character* character1, Character* character2) { //Calculate Vector between 2 characters Vector2D vec = Vector2D((character1->GetPosition().x - character2->GetPosition().x), (character1->GetPosition().y - character2->GetPosition().y)); //Calculate lenght from vector double distance = sqrt((vec.x * vec.x) + (vec.y * vec.y)); //Get Collision Radius double combinedDistance = (character1->GetCollisionRadius() - character2->GetCollisionRadius()); if (distance < combinedDistance) { return true; } else return false; } bool Collision::Box(Rect2D rect1, Rect2D rect2) { if (rect1.x + (rect1.width / 2) > rect2.x && rect1.x + (rect1.width / 2) < rect2.x + rect2.width && rect1.y + (rect1.height / 2) > rect2.y && rect1.y + (rect1.height / 2) < rect2.y + rect2.height) { return true; } return false; }