Beispiel #1
0
 public static void reset()     //resetting game parameters to default
 {
     fruitsAte = 0;
     ObstacleManagerClass.reset();
     FruitManagerClass.reset();
     SnakeManagerClass.reset();
     PlaygroundManagerClass.reset();
 }
Beispiel #2
0
 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;
 }
Beispiel #3
0
    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
    }
Beispiel #4
0
    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);
    }
Beispiel #5
0
    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();
    }
Beispiel #6
0
 public static void initProceduralLevelParams()     //initialising Procedural level variables
 {
     isCustomLevel = false;
     PlaygroundManagerClass.initProceduralPlaygroundParams();
     totalFruitPoints = 0;
 }