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 Vector3 generateRandomPointInsidePlayground(float x0, float x1) //generate a random point inside polygon { Vector3 point = new Vector3(Random.Range(x0, x1), 0, Random.Range(x0, x1)); while (!PlaygroundManagerClass.isPointInsidePlayground(point)) { point = new Vector3(Random.Range(x0, x1), 0, Random.Range(x0, x1)); } return(point - Vector3.Normalize(point)); //Movepoint toward center to consider radius of fruits or width of obstacle and width of wall }
public static void setCustomLevel(int level = 1) //setting up Custom level { if ((level - 1) >= levelManagerObj.playgroundList.Count) { if (onGameWonCallback != null) { onGameWonCallback(); } return; } fruitsAte = 0; isCustomLevel = true; circumscribedSquareHalfLength = levelManagerObj.playgroundList [level - 1].sideHalfLength; PlaygroundManagerClass.setCustomPlayground(levelManagerObj.playgroundList [level - 1]); //set ground SnakeManagerClass.instantiateSnakeHead(); //set player FruitManagerClass.setFruitParent(); //set fruit checkForObstacleAndInstantiateFruitInRange(-circumscribedSquareHalfLength, circumscribedSquareHalfLength); }
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(); }
public static void initProceduralLevelParams() //initialising Procedural level variables { isCustomLevel = false; PlaygroundManagerClass.initProceduralPlaygroundParams(); totalFruitPoints = 0; }