public static void reset() //resetting game parameters to default { fruitsAte = 0; ObstacleManagerClass.reset(); FruitManagerClass.reset(); SnakeManagerClass.reset(); PlaygroundManagerClass.reset(); }
public static void init() //initialising variables { PlaygroundManagerClass.init(WallTagName); SnakeManagerClass.init(FruitTagName, WallTagName); FruitManagerClass.init(FruitTagName); ObstacleManagerClass.init(WallTagName); SnakeManagerClass.onAteCallback += onAteFruit; SnakeManagerClass.onDeathCallback += afterPlayerDeath; }
static void checkForObstacleAndInstantiateFruitInRange(float x0, float x1) { //Fruit is instantiated at point which is inside the playground and below which no obstacle is present //if obstacle is present, Snake will not be able to eat it Vector3 point = generateRandomPointInsidePlayground(x0, x1); while (ObstacleManagerClass.isObstacleBelow(point + 2 * Vector3.up)) { point = generateRandomPointInsidePlayground(x0, x1); } instantiateFruit(point); }
public static void setProceduralLevel(int level = 1) //setting up Custom level { if (levelManagerObj.maxProceduralLevel <= 0 && level == levelManagerObj.maxProceduralLevel) { if (onGameWonCallback != null) { onGameWonCallback(); } return; } fruitsAte = 0; int numOfSides = level + 2; inscribedCircleRadius = levelManagerObj.inscribedRadiusOfProceduralPolygon; circumscribedSquareHalfLength = levelManagerObj.inscribedRadiusOfProceduralPolygon / Mathf.Cos(Mathf.PI / numOfSides); PlaygroundManagerClass.setProceduralPlayground(inscribedCircleRadius, numOfSides); //set ground SnakeManagerClass.instantiateSnakeHead(); //set player FruitManagerClass.setFruitParent(); //set fruit instantiateFruit(generateRandomPointInsidePlayground(-circumscribedSquareHalfLength, circumscribedSquareHalfLength)); ObstacleManagerClass.setObstacleParent(); }
static void instantiateObstacle(Vector3 point) { ObstacleManagerClass.istantiateObstacleAt(point); }