예제 #1
0
        //设置周边墙体形状
        private void setAroundWallIamge()
        {
            mUpTile    = TilesManager.GetTileItem(BindTileItems[0].IndexX, BindTileItems[0].IndexY - 1);
            mDownTile  = TilesManager.GetTileItem(BindTileItems[0].IndexX, BindTileItems[0].IndexY + 1);
            mLeftTile  = TilesManager.GetTileItem(BindTileItems[0].IndexX - 1, BindTileItems[0].IndexY);
            mRightTile = TilesManager.GetTileItem(BindTileItems[0].IndexX + 1, BindTileItems[0].IndexY);

            //重新设置周边墙体形状
            if (mUpTile != null && mUpTile.HaveWall)
            {
                mTop = true;
                mUpTile.WallItem.SetWallImage(false);
            }
            if (mDownTile != null && mDownTile.HaveWall)
            {
                mBottom = true;
                mDownTile.WallItem.SetWallImage(false);
            }
            if (mLeftTile != null && mLeftTile.HaveWall)
            {
                mLeft = true;
                mLeftTile.WallItem.SetWallImage(false);
            }
            if (mRightTile != null && mRightTile.HaveWall)
            {
                mRight = true;
                mRightTile.WallItem.SetWallImage(false);
            }
        }
예제 #2
0
        //设置房间的位置及大小(以当前所有格子中左上角一个为准)
        private void setRoomPositionAndSize()
        {
            var miniX = int.MaxValue;
            var miniY = int.MaxValue;
            var maxX  = -1;
            var maxY  = -1;

            for (int i = 0; i < BindTileItems.Count; i++)
            {
                if (BindTileItems[i].IndexX < miniX)
                {
                    miniX = BindTileItems[i].IndexX;
                }
                if (BindTileItems[i].IndexY < miniY)
                {
                    miniY = BindTileItems[i].IndexY;
                }
                if (BindTileItems[i].IndexX > maxX)
                {
                    maxX = BindTileItems[i].IndexX;
                }
                if (BindTileItems[i].IndexY > maxY)
                {
                    maxY = BindTileItems[i].IndexY;
                }
            }
            MyLogger.Debug("miniX:" + miniX + " miniY:" + miniY);
            MyLogger.Debug("maxX:" + maxX + " maxY:" + maxY);

            transform.localPosition = TilesManager.GetTileItem(miniX, miniY).Position;
            Image.rectTransform.SetPivot(new Vector2(0, 1));
            Image.rectTransform.sizeDelta = new Vector2(64 * (maxX - miniX + 1), 64 * (maxY - miniY + 1));

            //todo:根据房间大小及方向设置房间名称大小及方向
        }
 private byte[] RenderFirstPageInBytes(Stream xpsStream, int page, double scale)
 {
     using (var tileManager = new TilesManager(xpsStream))
     {
         return(LoadPage(tileManager, page, scale));
     }
 }
예제 #4
0
    public static void IncreaseDifficulty()
    {
        difficultyBumpThreshold += GameConsts.THRESHOLD_FOR_DIFFICULTY_BUMP;

        //  FIRST COLOR DIFFICULTY BUMP - ADDING NEW COLORS
        if (ColorsCount < GameConsts.FIRST_COLOR_DIFFICULTY_CHANGE)
        {
            ColorsCount++;
            TilesManager.AddNewColor();
            return;
        }

        // FIRST ORDER DIFFICULTY BUMP - ADDING ADDITIONAL ORDER TO PROCEED
        if (OrdersCount < GameConsts.FIRST_ORDER_DIFFICULTY_CHANGE)
        {
            OrdersCount++;
            return;
        }

        // SECOND COLOR DIFFICULTY BUMP - ADDING NEW COLORS
        if (ColorsCount < GameConsts.SECOND_COLOR_DIFFICULTY_CHANGE)
        {
            ColorsCount++;
            TilesManager.AddNewColor();
            return;
        }

        // SECOND ORDER DIFFICULTY BUMP - ADDING ADDITIONAL ORDER TO PROCEED
        if (OrdersCount < GameConsts.SECOND_ORDER_DIFFICULTY_CHANGE)
        {
            OrdersCount++;
            return;
        }
    }
예제 #5
0
    private void ActionChange(TileChangeEntry changeEntry)
    {
        if (!TilesManager.ValidateTileKey(changeEntry.layerToChange, changeEntry.tileKey))
        {
            Logger.LogError("No key found for Tile Change", Category.TileMaps);
            return;
        }

        //Set the correct z Level for the tile
        changeEntry.cellPosition.z = GetLayerZLevel(changeEntry.layerToChange);

        var tileMap = GetTilemap(changeEntry.layerToChange);

        if (tileMap == null)
        {
            return;
        }
        TileBase newTile = TilesManager.GetTile(changeEntry.layerToChange, changeEntry.tileKey);

        tileMap.SetTile(Vector3Int.RoundToInt(changeEntry.cellPosition), newTile);

        if (isServer)
        {
            RpcActionChange(changeEntry.cellPosition, changeEntry.tileKey, changeEntry.layerToChange);
        }

        //Store the change data and later we will store it in a database (so when a server crashes it is safe or to replay station change events)
        ChangeRegister.allEntries.Add(changeEntry);
    }
예제 #6
0
        private void PerformRenameLocal()
        {
            _database.Details.Name = txtName.Text;
            _database.SaveDetails();

            TilesManager.Renamed(_database);
            NavigationService.GoBack();
        }
예제 #7
0
    void Awake()
    {
        // Initialize TilesContainer tiles
        tileManager = GameObject.Find("Tiles Manager").GetComponent <TilesManager>();
        tileManager.InitializeTiles(widthInTiles, heightInTiles);

        DrawTiledBackground();
    }
예제 #8
0
 public Room(int plug, int width, int height, Composite parent, TilesManager manager, Room rm, int offset) : base(parent, manager)
 {
     nbPlug      = plug;
     this.width  = width;
     this.height = height;
     this.offset = offset;
     plugRoom    = rm;
 }
예제 #9
0
파일: Tile.cs 프로젝트: R3D87/Match3Game
 public void AddRandomColor()
 {
     colorTileID         = TilesManager.RandomPickColorID();
     rend                = GetComponent <Renderer>();
     rend.enabled        = true;
     rend.sharedMaterial = TilesManager.ColorID[colorTileID];
     //Debug.Log(colorTileID);
 }
예제 #10
0
    void Update()
    {
#if UNITY_EDITOR
        if (Instance == null)
        {
            Instance = this;
        }
#endif
    }
예제 #11
0
    void Awake()
    {
        if (Instance == null)
        {
            Instance = this;
        }

        numTileInfos = tileInfos.Length;
    }
예제 #12
0
        //todo:判断房间条件是否满足
        private void checkCondition()
        {
            //基础条件 四周是封闭的(墙+门)
            TileItem leftUpper;
            TileItem rightUpper;
            TileItem leftBottom;
            TileItem rightBottom;

            var upperItems  = new List <TileItem>();
            var bottomItems = new List <TileItem>();
            var rightItems  = new List <TileItem>();
            var leftItems   = new List <TileItem>();

            for (int i = 0; i < BindTileItems.Count; i++)
            {
                //四周的格子
                var arroundItems = TilesManager.GetArroundTilesWithNull(BindTileItems[i].IndexX, BindTileItems[i].IndexY);
                //上
                if (arroundItems[0] == null)
                {
                    upperItems.Add(arroundItems[0]);
                }
                else if (arroundItems[0].BelongRoom == false)
                {
                    upperItems.Add(arroundItems[0]);
                }
                //下
                if (arroundItems[1] == null)
                {
                    bottomItems.Add(arroundItems[1]);
                }
                else if (arroundItems[1].BelongRoom == false)
                {
                    bottomItems.Add(arroundItems[1]);
                }
                //左
                if (arroundItems[2] == null)
                {
                    leftItems.Add(arroundItems[2]);
                }
                else if (arroundItems[2].BelongRoom == false)
                {
                    leftItems.Add(arroundItems[2]);
                }
                //右
                if (arroundItems[3] == null)
                {
                    rightItems.Add(arroundItems[3]);
                }
                else if (arroundItems[3].BelongRoom == false)
                {
                    rightItems.Add(arroundItems[3]);
                }
            }
            //去重,防止房间内有墙壁,获取上下左右四个角的格子
        }
예제 #13
0
 private void Awake()
 {
     if (_instance != null && _instance != this)
     {
         Destroy(this.gameObject);
     }
     else
     {
         _instance = this;
     }
 }
예제 #14
0
 void Awake()
 {
     if (Instance == null)
     {
         Instance = this;
     }
     else
     {
         Destroy(gameObject);
     }
 }
예제 #15
0
    public Chunk(Vector2Int btnLeft, Vector2Int tpRight, DatabaseSprite database, TilesManager tilesMan, bool bL = true, bool bR = true, bool bU = true, bool bD = true)
    {
        bottomLeft = btnLeft;
        topRight   = tpRight;
        db         = database;
        tileMan    = tilesMan;

        buildLeft  = bL;
        buildRight = bR;
        buildUp    = bU;
        buildDown  = bD;
    }
예제 #16
0
        private List <TileItem> getPointDownTileItem()
        {
            mPreSelectTileItems.Clear();
            var      tileIndexX = (int)((mPointDownPosition.x + mMapWidth / 2) / mTileSize);
            var      tileIndexY = (int)((mMapHeight / 2 - mPointDownPosition.y) / mTileSize);
            TileItem tileItem   = TilesManager.GetTileItem(tileIndexX, tileIndexY);;

            if (tileItem != null)
            {
                mPreSelectTileItems.Add(tileItem);
            }
            return(mPreSelectTileItems);
        }
예제 #17
0
        /// <summary>
        /// 工人到位后开始拆除
        /// </summary>
        /// <param name="commandType"></param>
        /// <param name="finish"></param>
        /// <returns></returns>
        public IEnumerator Remove(BuildCommandType commandType, Action finish)
        {
            switch (commandType)
            {
            case BuildCommandType.RemoveGroundwork:
                if (HaveGroundwork)
                {
                    yield return(StartCoroutine(mGroundworkItem.Remove()));

                    mGroundworkItem = null;
                }
                break;

            case BuildCommandType.RemoveBuildingMaterials:
                if (HaveWall)
                {
                    yield return(StartCoroutine(WallItem.Remove()));

                    WallItem = null;
                    foreach (var item in TilesManager.GetArroundTiles(IndexX, IndexY))
                    {
                        if (item.HaveWall)
                        {
                            item.WallItem.SetWallImage(false);
                        }
                    }
                }
                else if (HaveDoor)
                {
                    yield return(StartCoroutine(DoorItem.Remove()));

                    DoorItem = null;
                    foreach (var item in TilesManager.GetArroundTiles(IndexX, IndexY))
                    {
                        if (item.HaveWall)
                        {
                            item.WallItem.SetWallImage(false);
                        }
                    }
                }
                break;

            case BuildCommandType.RemoveRoom:
                break;

            case BuildCommandType.RemoveDecorate:
                break;
            }
            finish();
        }
예제 #18
0
 public Leaf(Composite parent, TilesManager manager)
 {
     this.parent  = parent;
     this.manager = manager;
     if (this.parent != null)
     {
         depth = parent.Depth + 1;
         parent.Childs.Add(this);
     }
     else
     {
         depth = 0;
     }
 }
    void Start()
    {
        tilesArray            = GetComponentInParent <TilesManager>().tilesArray;
        myRigidbody           = GetComponent <Rigidbody>();
        myRenderer            = GetComponent <Renderer>();
        tileDefaultMaterial   = Resources.Load("TileDefault", typeof(Material)) as Material;
        tileSelectedMaterial  = Resources.Load("TileSelected", typeof(Material)) as Material;
        tileSameGroupMaterial = Resources.Load("TileSameGroup", typeof(Material)) as Material;

        //Get Tiles Manager
        GameObject tileManagerObj = GameObject.Find("Tiles");

        tileManager = tileManagerObj.GetComponent <TilesManager>();
    }
예제 #20
0
        private void mnuPin_Click(object sender, RoutedEventArgs e)
        {
            var item     = (MenuItem)sender;
            var database = (DatabaseInfo)item.Tag;

            if (TilesManager.Pin(database))
            {
                return;
            }

            MessageBox.Show(
                Properties.Resources.AlreadyPinned,
                Properties.Resources.PinDatabase,
                MessageBoxButton.OK);
        }
예제 #21
0
        private void cmdDelete_Click(object sender, EventArgs e)
        {
            var msg = string.Format(
                Properties.Resources.ConfirmDeleteDb,
                _database.Details.Name);

            var confirm = MessageBox.Show(msg,
                                          Properties.Resources.DeleteDbTitle,
                                          MessageBoxButton.OKCancel) == MessageBoxResult.OK;

            if (!confirm)
            {
                return;
            }

            _database.Delete();
            TilesManager.Deleted(_database);

            this.NavigateTo <MainPage>();
        }
예제 #22
0
    void Start()
    {
        GridParameters.MaxGemTypes = Mathf.Clamp(GridParameters.MaxGemTypes, 3, ViewParameters.GemPrefabs.Length);


        TilesManager = new TilesManager(
            this,
            GridParameters.Columns,
            GridParameters.Rows
            );


        GridManager = new GridManager(
            this, GridParameters.Columns,
            GridParameters.Rows,
            SequenceParameters.GemFallTime
            );

        SetupCamera();
    }
예제 #23
0
        /// <summary>
        /// 地图初始化
        /// </summary>
        /// <returns></returns>
        public IEnumerator Init()
        {
            //初始化地图
            //yield return new WaitForEndOfFrame();
            var tileRowNum    = mMapHeight / mTileSize;
            var tileColumnNum = mMapWidth / mTileSize;
            var time          = new Stopwatch();

            time.Start();
            for (var i = 0; i < tileColumnNum; i++)
            {
                for (var j = 0; j < tileRowNum; j++)
                {
                    //var tile = Utils.CreateGameObject(mTileItem, mEditorLayer, new Vector3(mTileSize * i, -mTileSize * j, 0)).GetComponent<TileItem>();
                    var go = Instantiate(mTileItem);
                    go.transform.SetParent(LandformLayer);
                    go.transform.localScale = Vector3.one;
                    go.SetLayer(LandformLayer.gameObject.layer, true);
                    go.GetComponent <RectTransform>().anchoredPosition3D = new Vector3(mTileSize * i, -mTileSize * j, 0);
                    var tileItem = go.AddComponent <TileItem>();
                    StartCoroutine(tileItem.SetData(i, j));

                    TilesManager.TileItemDicts.Add(new Vector2(i, j), tileItem);
                }
            }
            Debug.Log("time:" + (time.ElapsedMilliseconds));

            //初始化工人
            TileItem item = TilesManager.GetTileItem(75, 50);

            //mTileItemDicts.TryGetValue(new Vector2(75, 50), out item);

            WorkerManager.CreateWorker(RoleLayer, item);
            item = TilesManager.GetTileItem(76, 51);
            //mTileItemDicts.TryGetValue(new Vector2(76, 51), out item);
            WorkerManager.CreateWorker(RoleLayer, item);

            yield break;
        }
예제 #24
0
        //获取鼠标移动过程中经过的格子
        private List <TileItem> getMoveSelectTile(Vector2 position)
        {
            var tileIndexX = (int)((position.x + mMapWidth / 2) / mTileSize);
            var tileIndexY = (int)((mMapHeight / 2 - position.y) / mTileSize);

            if (mPreMoveIndexX == tileIndexX && mPreMoveIndexY == tileIndexY)
            {
                return(null);
            }

            mPreMoveIndexX = tileIndexX;
            mPreMoveIndexY = tileIndexY;
            PreSelectLayer.DestroyChildren();

            var      items    = new List <TileItem>();
            TileItem tileItem = TilesManager.GetTileItem(tileIndexX, tileIndexY);;

            if (tileItem != null)
            {
                items.Add(tileItem);
            }
            return(items);
        }
예제 #25
0
        private void mnuDelete_Click(object sender, RoutedEventArgs e)
        {
            var item     = (MenuItem)sender;
            var database = (DatabaseInfo)item.Tag;

            var msg = string.Format(
                Properties.Resources.ConfirmDeleteDb,
                database.Details.Name);

            var confirm = MessageBox.Show(msg,
                                          Properties.Resources.DeleteDbTitle,
                                          MessageBoxButton.OKCancel) == MessageBoxResult.OK;

            if (!confirm)
            {
                return;
            }

            database.Delete();
            TilesManager.Deleted(database);

            RefreshDbList(false, null);
        }
예제 #26
0
        private IEnumerable <byte[]> LoadPages(Stream xpsStream)
        {
            var result = new List <byte[]>();

            using (var tileManager = new TilesManager(xpsStream))
            {
                for (var i = 0; i < tileManager.PageCount; i++)
                {
                    int pageWidth = 0, pageHeight = 0;
                    tileManager.LoadPage(i, ref pageWidth, ref pageHeight, false);
                    var tile = new Tile
                    {
                        PageNum = i,
                        Height  = pageHeight,
                        Width   = pageWidth,
                        Scale   = 1.0
                    };
                    var page = tileManager.GetPageInBytes(tile, false);
                    result.Add(page);
                }
            }
            return(result);
        }
        private static byte[] LoadPage(TilesManager tileManager, int page, double scale)
        {
            var internalPage = page;

            if (page > 0)
            {
                internalPage = page - 1;
            }

            int pageWidth = 0, pageHeight = 0;

            tileManager.LoadPage(internalPage, ref pageWidth, ref pageHeight, false);
            var tile = new Tile
            {
                PageNum = internalPage,
                Height  = (int)(pageHeight * scale),
                Width   = (int)(pageWidth * scale),
                Scale   = scale
            };
            var result = tileManager.GetPageInBytes(tile, false);

            return(result);
        }
예제 #28
0
파일: MainLogic.cs 프로젝트: jjcat/Air_Rush
    // Use this for initialization
    void Start()
    {
        _timerText.font.material.color = Color.black;
        _scoreText.font.material.color = Color.black;
        _resualText.font.material.color = Color.black;
        _resualText.active = false;
        _tileNumRuns = 0;
        _tilesManager = GameObject.Find("TilesManager").GetComponent<TilesManager>();
        _tileGenarator = GameObject.Find("TileGenerator").GetComponent<TileGenarator>();
        _power = 99;
        _boostTime = 0.0f;
        AudioSource _boostAufdio = GameObject.Find("BoostBGM").GetComponent<AudioSource>();

        // read leader board;
        string leadboardFile = Application.dataPath + "/" + "leadboards.txt";

        string[] filecontent = File.ReadAllLines(leadboardFile);
        _topScore = int.Parse(filecontent[0]);
        _newRecord = false;
    }
예제 #29
0
 private void Awake()
 {
     tilesManager = GetComponentInParent <TilesManager>();
 }
예제 #30
0
 public Branch(Composite parent, TilesManager manager, Room rm) : base(parent, manager)
 {
     plugRoom = rm;
 }
예제 #31
0
 public BaseTree(TilesManager manager) : base(null, manager)
 {
 }