Exemplo n.º 1
0
	public void CreateNextObstacle(float prevY)
	{
		GameObject newObstacle;

		int obsType = 1;

		if (SelectedLevelScript.selectedLevel == 1) 
		{
			obsType = obstTypeLvl1[obstacleIndex];
		}
		else if (SelectedLevelScript.selectedLevel == 2) 
		{
			obsType = obstTypeLvl2[obstacleIndex];
		}
		else if (SelectedLevelScript.selectedLevel == 3) 
		{
			obsType = obstTypeLvl3[obstacleIndex];
		}
		else if (SelectedLevelScript.selectedLevel == 4) 
		{
			obsType = obstTypeLvl4[obstacleIndex];
		}else if (SelectedLevelScript.selectedLevel == 5) 
		{
			obsType = obstTypeLvl5[obstacleIndex];
		}
		// Create correct type of obstacle
		if(obsType == 0)
			newObstacle = (GameObject) GameObject.Instantiate(Resources.Load("Obstacle_green", typeof(GameObject)));
		else
			newObstacle = (GameObject) GameObject.Instantiate(Resources.Load("Obstacle_red", typeof(GameObject)));


		// Set id
		ObstacleScript obsScript = (ObstacleScript) newObstacle.GetComponent(typeof(ObstacleScript));
		if (obsScript) 
		{
			obsScript.id = obstacleCount;
		}

		//calculate position

		float obsDist = 0;
		float obsAmount = 0;
		int obsSide = 0;
		float freeSpace = 0;

		if (SelectedLevelScript.selectedLevel == 1) 
		{
			obsDist = obstDistanceLvl1[obstacleIndex];
			obsAmount = obstAmountLvl1[obstacleIndex];
			obsSide = obstSideLvl1[obstacleIndex];
			freeSpace = (0.1f+0.6f*(obsAmount / 100)) * BackgroundScript.stage_bounds.size.x;
		}
		else if (SelectedLevelScript.selectedLevel == 2) 
		{
			obsDist = obstDistanceLvl2[obstacleIndex];
			obsAmount = obstAmountLvl2[obstacleIndex];
			obsSide = obstSideLvl2[obstacleIndex];
			freeSpace = (0.1f + 0.5f * (obsAmount / 100)) * BackgroundScript.stage_bounds.size.x;
		}
		else if (SelectedLevelScript.selectedLevel == 3) 
		{
			obsDist = obstDistanceLvl3[obstacleIndex];
			obsAmount = obstAmountLvl3[obstacleIndex];
			obsSide = obstSideLvl3[obstacleIndex];
			freeSpace = (0.1f + 0.45f * (obsAmount / 100)) * BackgroundScript.stage_bounds.size.x;
		}
		else if (SelectedLevelScript.selectedLevel == 4) 
		{
			obsDist = obstDistanceLvl4[obstacleIndex];
			obsAmount = obstAmountLvl4[obstacleIndex];
			obsSide = obstSideLvl4[obstacleIndex];
			freeSpace = (0.1f + 0.45f * (obsAmount / 100)) * BackgroundScript.stage_bounds.size.x;
		}
		else if (SelectedLevelScript.selectedLevel == 5) 
		{
			obsDist = obstDistanceLvl5[obstacleIndex];
			obsAmount = obstAmountLvl5[obstacleIndex];
			obsSide = obstSideLvl5[obstacleIndex];
			freeSpace = (0.1f + 0.40f * (obsAmount / 100)) * BackgroundScript.stage_bounds.size.x;
		}

		if (SelectedLevelScript.selectedLevel == 1 && iteration < 1 && obstacleIndex < 40) 
		{
			if (freeSpace < 4.5f)
				freeSpace = 4.5f;

		}
		else if (iteration > 3) 
		{
			if (freeSpace < 3f)
					freeSpace = 3f;
		}
		else 
		{
			if (freeSpace < 4f)
				freeSpace = 4f;
		}

		float max_speed = CarScript.getMaxSpeed();

		if (SelectedLevelScript.selectedLevel == 1) 
		{
			max_speed = 250 + CarScript.score / 2.0f;

			if (max_speed > 400)
					max_speed = 400;
		}
		else if (SelectedLevelScript.selectedLevel == 2) 
		{
			max_speed = 300 + CarScript.score / 2.0f;
			
			if (max_speed > 450)
				max_speed = 450;
		}
		else if (SelectedLevelScript.selectedLevel == 3) 
		{
			max_speed = 360 + CarScript.score / 2.0f;
			
			if (max_speed > 500)
				max_speed = 500;
		}
		else if (SelectedLevelScript.selectedLevel == 4) 
		{
			max_speed = 420 + CarScript.score;
			
			if (max_speed > 600)
				max_speed = 600;
		}
		else if (SelectedLevelScript.selectedLevel == 5) 
		{
			max_speed = 510 + CarScript.score;
			
			if (max_speed > 700)
				max_speed = 700;
		}
		CarScript.setMaxSpeed (max_speed);

		float x_pos;

		if (obsSide == 0) {
			x_pos = BackgroundScript.stage_bounds.max.x - freeSpace - newObstacle.collider2D.bounds.size.x/2;
		} 
		else 
		{
			x_pos = BackgroundScript.stage_bounds.min.x+freeSpace+newObstacle.collider2D.bounds.size.x/2;
		}

		float y_space = obsDist / 12f;

		if (y_space < 4.5f)
			y_space = 4.5f;

		float y_pos = prevY+y_space;

		if (obstacleIndex == 0)
			y_pos += 4;
		newObstacle.transform.position = new Vector3(x_pos,y_pos,0);

		obstacleIndex++;
		obstacleCount++;

		if (obstacleIndex > 99)
		{
			obstacleIndex = 0;
			iteration++;
		}
			

	}