예제 #1
0
    // Use this for initialization
    void Start()
    {
        X = new IntegerArray[SizeX];
        for (int i = 0; i < SizeX; i++)
        {
            X[i]   = new IntegerArray();
            X[i].Z = new int[SizeZ];
            for (int j = 0; j < SizeZ; j++)
            {
                X[i][j] = 5;
            }
        }
        BuildOuterWall();
        CarveRooms();
        ArrangeGrid();

        FloorBuilder fb = gameObject.AddComponent <FloorBuilder>();

        int[,] grid = new int[SizeX, SizeZ];
        for (int i = 0; i < SizeX; i++)
        {
            for (int j = 0; j < SizeZ; j++)
            {
                grid[i, j] = X[i][j];
                // Debug.Log(i + ", " + j); // This checks out fine
            }
        }
        fb.BuildFloor(grid, parent);
    }
예제 #2
0
    // Use this for initialization
    void Start()
    {
        current = this;

        GameManager.current.state = GameManager.GameState.AssembleTrack;

        floorMeshes = new FloorMesh[floorMeshCount];
        for (int a = 0; a != floorMeshCount; ++a)
        {
            GameObject floorObject = (GameObject)Instantiate <GameObject>(floorMeshPrefab);
            floorObject.transform.position = Vector3.zero;
            floorMeshes[a]               = floorObject.GetComponent <FloorMesh>();
            floorMeshes[a].width         = width;
            floorMeshes[a].length        = length;
            floorMeshes[a].index         = a;
            floorMeshes[a].coinIndex     = -1;
            floorObject.transform.parent = transform;
        }
        floorTypeData                   = new FloorTypeData();
        floorTypeData.floorCount        = initialStraightLength;
        floorTypeData.floorTurningAngle = 0;
        obstacleCount                   = 0;
        obstacleCountRemain             = 0;

        floorMeshes[0].prevPos1 = new Vector3(0, 0, 0);
        floorMeshes[0].prevPos2 = new Vector3(5, 0, 0);
        floorMeshes[0].dir      = (new Vector3(0, -0.05f, 0.9f)).normalized;
        floorMeshes[0].prevDir  = Vector3.forward;
        floorMeshes[0].makeMesh();

        startIndex = 1;
        endIndex   = 0;
        for (int a = 1; a != floorMeshCount; ++a)
        {
            /*remainingFloorCount--;
             * if (remainingFloorCount <= 0)
             *  getFloorTypeByChallengeManager();//refreshFloorType();
             * floorMeshes[a].prevDir = floorMeshes[a - 1].dir;
             * floorMeshes[a].dir = Quaternion.Euler(0, floorTurningAngle, 0) * floorMeshes[a].prevDir;
             * floorMeshes[a].prevPos1 = floorMeshes[a - 1].endPos1;
             * floorMeshes[a].prevPos2 = floorMeshes[a - 1].endPos2;
             * floorMeshes[a].makeMesh();
             *
             * coinRemain--;
             * if(coinRemain>=0 && coinRemain < coinCount)
             *  CoinGenerator.current.putCoin(a);*/
            makeFloorByType();
        }
    }
예제 #3
0
        private Menu_Floor NewFloorMenu(int seed = 1)
        {
            RogueSharp.Random.IRandom iRand = new RogueSharp.Random.DotNetRandom(seed);

            var player  = EntityBuilder.BuildPlayerEntity();
            var dungeon = new DungeonState(player);

            dungeon.AddFloor(FloorBuilder.BuildFloor(dungeon, Config.FloorWidth, Config.FloorHeight, iRand.Next(Int16.MaxValue).ToString(), 0, player));
            dungeon.AddFloor(FloorBuilder.BuildFloor(dungeon, Config.FloorWidth, Config.FloorHeight, iRand.Next(Int16.MaxValue).ToString(), 1));
            dungeon.AddFloor(FloorBuilder.BuildFloor(dungeon, Config.FloorWidth, Config.FloorHeight, iRand.Next(Int16.MaxValue).ToString(), 2));

            dungeon.FinalizeConstruction();

            this.floorMenu = new Menu_Floor(this, dungeon);
            return(this.floorMenu);
        }
예제 #4
0
 // Use this for initialization
 void Awake()
 {
     floorBuilder = FindObjectOfType <FloorBuilder>();
     academy      = FindObjectOfType <ObstacleTowerAcademy>();
     killScreenPanel.SetActive(false);
 }
예제 #5
0
 public void Setup()
 {
     _floorBuilder = new FloorBuilder();
 }