Пример #1
0
        public IEnumerator MoveTo(Logic.TilePosition dest)
        {
            var animator = GetComponent <Animator>();

            if (animator != null)
            {
                if (mTile.Position.Row > dest.Row)
                {
                    animator.SetInteger("direction", (int)EDisplayDirection.Down);
                }
                else if (mTile.Position.Row < dest.Row)
                {
                    animator.SetInteger("direction", (int)EDisplayDirection.Up);
                }

                if (mTile.Position.Col > dest.Col)
                {
                    animator.SetInteger("direction", (int)EDisplayDirection.Left);
                }
                else if (mTile.Position.Col < dest.Col)
                {
                    animator.SetInteger("direction", (int)EDisplayDirection.Right);
                }
            }

            yield return(new WaitForMoveTo(gameObject, dest, 0.5f));
        }
Пример #2
0
 public WaitForMoveTo(GameObject gameobject, Logic.TilePosition destination, float time)
 {
     mGameObject    = gameobject;
     mBeginPosition = gameobject.transform.localPosition;
     mEndPosition   = new Vector3(destination.Col, destination.Row, 0);
     mTime          = 0;
     mDuration      = time;
 }
Пример #3
0
        private bool PosField(Dictionary <string, object> properties, string key, out Logic.TilePosition pos)
        {
            EditorGUILayout.BeginVertical();
            EditorGUILayout.LabelField(key);

            var origin = (Logic.TilePosition)properties[key];

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Row");
            pos.Row = (uint)EditorGUILayout.IntField((int)origin.Row);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Col");
            pos.Col = (uint)EditorGUILayout.IntField((int)origin.Col);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.EndVertical();

            return(pos.Row != origin.Row || pos.Col != origin.Col);
        }
Пример #4
0
        public static GameObject CreateTile(Logic.EProtalDirection direction, uint dst_lv, Logic.TilePosition dst_pos)
        {
            var obj = new GameObject(direction == Logic.EProtalDirection.Down ? "stair_down" : "stair_up");

            obj.layer = 1;

            var renderer = obj.AddComponent <SpriteRenderer>();

            renderer.sprite = GetSprite(direction);

            var tile = obj.AddComponent <EditorData.Tile>();

            tile.TileType = Logic.Tile.EType.Portal;
            tile.Properties["Direction"] = direction;
            tile.Properties["DestLevel"] = dst_lv;
            tile.Properties["DestPos"]   = dst_pos;

            return(obj);
        }