Пример #1
0
    void ShowGuid(RectTransform rect, Action call = null, MyDirection type = MyDirection.up)
    {
        if (forceBlock)
        {
            _targetRectTransform.position  = rect.position;
            _targetRectTransform.sizeDelta = rect.rect.size;
            _guideBlockImage.SetBlockRectTransform(_targetRectTransform);
        }
        else
        {
            _guideBlockImage.SetBlockRectTransform(null);
        }
        stop = false;
        noBlcokRecttransform = rect;
        callBack             = call;

        if (type == MyDirection.up)
        {
            upFinger.gameObject.SetActive(true);
            downFinger.gameObject.SetActive(false);
            upFinger.position = rect.position;
            FingerAni(upFinger, type);
        }
        else
        {
            downFinger.gameObject.SetActive(true);
            upFinger.gameObject.SetActive(false);
            downFinger.position = rect.position;
            FingerAni(downFinger, type);
        }
    }
Пример #2
0
    private void OnMoveEnd(Transform fin, MyDirection direction)
    {
        if (contactPoint2 == null)
        {
            return;
        }
        if (direction == MyDirection.up || direction == MyDirection.down)
        {
            contactPoint2.gameObject.SetActive(true);
            contactPoint2.Play();
        }


        timerList.Add(Timer.Register(0.6f, () =>
        {
            if (fin == null)
            {
                return;
            }

            contactPoint2.Stop(true);
            if (!stop)
            {
                FingerAni(fin, direction);
            }
        }));
    }
Пример #3
0
        static void Main(string[] args)
        {
            MyDirection myDirection = MyDirection.东;
            var         key         = Console.ReadKey();

            switch (key.Key)
            {
            default:
            }
            student student1 = new student();

            student1.Name     = "张三";
            student1.No       = "12200101";
            student1.Birthday = new DateTime(1999, 10, 1);
            Console.ReadKey();
        }
Пример #4
0
        public static Node Create(Vector3 pos, MyDirection dir)
        {
            var cmp = new MyMarker ();
            cmp.Direction = dir;

            var spr = new Sprite (128, 128);
            spr.AddTexture (new Texture ("media/MedicalIconLight.png"));
            spr.SetOffset (-64, -128);

            var node = new Node ("Marker");
            node.Attach (cmp);
            node.Attach (spr);
            node.DrawPriority = -1;

            node.Translation = pos;

            return node;
        }
Пример #5
0
    public override void OnOpen(params object[] paras)
    {
        base.OnOpen(paras);
        var rect  = paras[0] as RectTransform;
        var call  = paras[1] as Action;
        var type  = (MyDirection)paras[2];
        var force = (bool)paras[3];
        var forceBlockClickAction = paras[4] as Action;


        this.obj.gameObject.SetActive(true);
        this.obj.position          = rect.transform.position;
        this.transform.localScale  = Vector3.one;
        this.forceBlock            = force;
        this.forceBlockClickAction = forceBlockClickAction;
        this.blockAll = false;
        this.ShowGuid(rect, call, type);
        myCurrentDirection = type;
    }
Пример #6
0
        void Rotate(TurnDirection direction)
        {
            var offset = (int)direction;

            if (offset == 0)
            {
                offset = -1;
            }

            var newDir = (int)myDir + offset;

            if (newDir < (int)MyDirection.Up)
            {
                myDir = MyDirection.Left;
            }
            else if (newDir > (int)MyDirection.Left)
            {
                myDir = MyDirection.Up;
            }
            else
            {
                myDir = (MyDirection)newDir;
            }
        }
Пример #7
0
    private void FingerAni(Transform fin, MyDirection direction)
    {
        if (fin != null || noBlcokRecttransform != null)
        {
            if (direction == MyDirection.up)
            {
                fin.position = fin.position + new Vector3(0f, 0.61f * 1f, 0);
            }
            else if (direction == MyDirection.down)
            {
                fin.position = fin.position + new Vector3(0f, 0.61f * (-1f), 0);
            }
            else if (direction == MyDirection.right)
            {
                contactPoint2.gameObject.SetActive(false);
                fin.position = fin.position + new Vector3(4f * 1f, 0f, 0);
            }
            else
            {
                contactPoint2.gameObject.SetActive(false);
                fin.position = fin.position + new Vector3(4f * -1f, 0f, 0);
            }

            try
            {
                tweenAni = fin.DOMove(noBlcokRecttransform.transform.position, 1f);
                tweenAni.OnComplete(() =>
                                    OnMoveEnd(fin, direction));
            }
            catch (Exception e)
            {
                DebugLogWrapper.LogException(e);
                OnMoveEnd(fin, direction);
            }
        }
    }
Пример #8
0
    public void move(MyDirection direction)
    {
        //		Debug.Log("移动");
        GamePostion vector = getVector(direction);
        Hashtable traversals = buildTraversals(vector);
        prepareTiles();
        bool moved = false;
        Tile tile;
        List<int> xList = (List<int>)traversals["x"];
        List<int> yList = (List<int>)traversals["y"];
        for(int i=0;i<size;i++){
            int x = xList[i];
            for(int j=0;j<size;j++){
                int y = yList[j];
                GamePostion cell = new GamePostion(x,y);
                tile = grid.cellContent(cell);

                if(tile != null){
                    Hashtable postions = findFarthestPosition(cell,vector);
                    Tile next = grid.cellContent((GamePostion)postions["next"]);
                    if(next !=null && next.value == tile.value && next.mergedFrom == null){

        //						Debug.Log("找到合并的tile :"+tile.ToString());
        //						Debug.Log("找到合并的next :"+next.ToString());
                        Tile merged = new Tile((GamePostion)postions["next"],tile.value*2);
                        merged.mergedFrom = new Tile[]{tile,next};

                        grid.insertTile(merged);
                        grid.removeTile(tile);

                        tile.updatePostion((GamePostion)postions["next"]);

                        score += merged.value;

                        if(merged.value == 2048){
                            //TODO  yingle
                        }

                    }else{
                        moveTile(tile,(GamePostion)postions["farthest"]);
                    }
                    if(!positionsEqual(cell,new GamePostion(tile.x,tile.y))){
                        moved = true;
                    }

                }

            }
        }

        if(moved){
            addRandomTile();
            if(!movesAvailable()){
        //				Debug.Log("GameOver");
                this.over = true;
            }
        //			actuate();
        //			Debug.Log("move le");
        }
        actuate(moved);
        Debug.Log("移动结束");
    }
Пример #9
0
 public GamePostion getVector(MyDirection direction)
 {
     GamePostion result;
     switch(direction){
         case MyDirection.DirectionUp:
             result = new GamePostion(0,-1);
             break;
         case MyDirection.DirectionRight:
             result = new GamePostion(1,0);
             break;
         case MyDirection.DirectionDown:
             result = new GamePostion(0,1);
             break;
         case MyDirection.DirectionLeft:
             result = new GamePostion(-1,0);
             break;
         default:
             result = new GamePostion(0,0);
             break;
     }
     return result;
 }
 public void RpcSomeFunction([BitCountFromRange(-1, 1)] MyDirection myParam)
 {
     onRpc?.Invoke(myParam);
 }
Пример #11
0
 void OnSwipe( SwipeGesture gesture )
 {
     if(_game.over){ return; }
     FingerGestures.SwipeDirection direction = gesture.Direction;
     bool isMoved = false;
     if(Vector2.Angle(gesture.Move,Vector2.right) < staticAngle){
         lastDirection = MyDirection.DirectionRight;
         isMoved = true;
     }else if(Vector2.Angle(gesture.Move,Vector2.up) < staticAngle){
         lastDirection = MyDirection.DirectionUp;
         isMoved = true;
     }else if(Vector2.Angle(gesture.Move,Vector2.right) >  180 - staticAngle){
         lastDirection = MyDirection.DirectionLeft;
         isMoved = true;
     }else if(Vector2.Angle(gesture.Move,Vector2.up) > 180 - staticAngle){
         lastDirection = MyDirection.DirectionDown;
         isMoved = true;
     }
     if(isMoved){
         _game.move(lastDirection);
     }
 }
Пример #12
0
    void FixedUpdate()
    {
        if(_game.over ) { return; }
        bool isMoved = false;

        if(Input.GetKeyDown("right")){
            lastDirection = MyDirection.DirectionRight;
            isMoved = true;
        }else if(Input.GetKeyDown("up")){
            lastDirection = MyDirection.DirectionUp;
            isMoved = true;
        }else if(Input.GetKeyDown("left")){
            lastDirection = MyDirection.DirectionLeft;
            isMoved = true;
        }else if(Input.GetKeyDown("down")){
            lastDirection = MyDirection.DirectionDown;
            isMoved = true;
        }
        prevTime+= Time.deltaTime;
        if(isMoved){
            Debug.Log(prevTime);
            if(prevTime >= moveDuring){
                _game.move(lastDirection);
                prevTime = 0;
            }

        }

        if ( Application.platform == RuntimePlatform.Android &&(Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.Home) ))
        {
        //			OnApplicationQuit();
            Application.Quit();
        }
    }
Пример #13
0
 public static void Show(RectTransform rect, Action call = null, MyDirection type = MyDirection.up,
                         bool force = true, Action forceBlockClickAction          = null)
 {
     ViewManager.Instance.OpenWindow(WindowID.Win_FingerGuid, false,
                                     new object[] { rect, call, type, force, forceBlockClickAction });
 }
Пример #14
0
 public TurnPoint(Vector2 pos, MyDirection myDirection)
     : base("Way")
 {
     position         = pos;
     this.myDirection = myDirection;
 }