Example #1
0
        public GameSession(CoordHelper.EProfile pt, HUD h)
            : base(App.Game)
        {
            hud = h;
            playerType = pt;
            board = new Board(playerType, new Vector2(Constants.Measures.boardBlockWidth, Constants.Measures.boardBlockHeight));
            climby = new Climby(playerType);
            //
            aroundRect = new Dictionary<Climby.EAroundSquare, Point>();
            #region Set Around Rect
            aroundRect.Add(Climby.EAroundSquare.FRONT, Point.Zero);
            aroundRect.Add(Climby.EAroundSquare.FRONT_TOP, Point.Zero);
            aroundRect.Add(Climby.EAroundSquare.FRONT_UNDER, Point.Zero);
            aroundRect.Add(Climby.EAroundSquare.FRONT_UNDER_UNDER, Point.Zero);
            aroundRect.Add(Climby.EAroundSquare.TOP, Point.Zero);
            aroundRect.Add(Climby.EAroundSquare.UNDER, Point.Zero);
            #endregion
            lastDir = climby.Direction;
            //

            tetriminoFactory = TetriminoFactory.Instance;
            var tmp = tetriminoFactory.getTetrimino(playerType);
            currTetrimino = tmp.Item1;
            shadowTetrimino = tmp.Item2;
            hud.setNext(TetriminoFactory.Instance.getNextTetrimino(playerType), playerType);
            cur = TimeSpan.Zero;
            //lat = new TimeSpan(10000000/3); // 3
            score = new Score();
            level = new Level();
            //lat = new TimeSpan(10000000 / (level.level + 1));
            lat = new TimeSpan((10 - level.level) * 1000000);
            //lat = new TimeSpan(2 / (level.level + 1) * 10000000);
            tSpinLimit = new TimeSpan(1000000 * 3); // TSPIN TIME
            tSpinCur = TimeSpan.Zero;
            state = new Dictionary<Climby.EState, Action>();

            #region Climby State
            state.Add(Climby.EState.FALL, climbyFall);
            state.Add(Climby.EState.FREE_FALL, climbyFreeFall);
            state.Add(Climby.EState.CLIMB, climbyClimb);
            state.Add(Climby.EState.END_CLIMB, climbyClimb);
            state.Add(Climby.EState.MOVE, climbyMove);
            state.Add(Climby.EState.STOP, climbyStop);
            #endregion
            updateAroundRects();
        }
Example #2
0
 public bool overlap(Board board)
 {
     foreach (Block b in shape)
         if (board.isOutOfBond(new Vector2(PosRel.X + b.PosRel.X, PosRel.Y + b.PosRel.Y)) ||
             board.isBusyCase(new Vector2(PosRel.X + b.PosRel.X, PosRel.Y + b.PosRel.Y)))
             return true;
     return false;
 }