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(); }
private void setPoint(Point point, Climby.EAroundSquare e, int padX = 0, int padY = 0) { Point p = aroundRect[e]; p.X = (point.X - (int)CoordHelper.Instance.getLeftMargin(playerType)) / (int)Constants.Measures.blockSize + padX; p.Y = (point.Y - (int)Constants.Measures.upBoardMargin) / (int)Constants.Measures.blockSize + padY; aroundRect[e] = p; }