Exemple #1
0
        static void Main(string[] args)
        {
            _screen = new Screen(_gameWidth, _totalHeight - 3);

            Console.CursorVisible = false;
            Console.Title         = "teXtris";

            Console.WriteLine("Welcome to teXtrix.  Please press any key to start");
            Console.ReadKey();
            Console.Clear();

            //_threadHandle.Start();

            char _charBuff = '\0';

            //Ypos = _totalHeight = 5;

            DrawBoard();
            DrawBoxNextPiece();

            while (!_killBit)
            {
                if (_areYouSure)
                {
                    switch (_charBuff)
                    {
                    case 'Y':
                    case 'y':
                        _killBit = true;
                        try
                        {
                            _threadHandle.Abort();
                            _threadHandle.Join();
                        }
                        catch
                        {
                        }
                        continue;

                    case (char)27:
                        break;

                    default:
                        Console.CursorTop  = _totalHeight / 2;
                        Console.CursorLeft = (_totalWidth / 2) - (BLANK.Length / 2);
                        Console.Write(BLANK);
                        _killBit    = false;
                        _areYouSure = false;
                        _threadHandle.Resume();
                        break;
                    }
                }
                else
                {
                    BlankPiece();

                    switch (_charBuff)
                    {
                    case 'A':
                    case 'a':
                        _currentPiece.rotPiece();
                        break;

                    case 'D':
                    case 'd':
                        _currentPiece.rotPieceOther();
                        break;

                    case 'J':
                    case 'j':
                        if (_screen.CanLeft(Xpos, Ypos, _currentPiece))
                        {
                            Xpos--;
                        }
                        break;

                    case 'L':
                    case 'l':
                        if (_screen.CanRight(Xpos, Ypos, _currentPiece))
                        {
                            Xpos++;
                        }
                        break;

                    case 'I':
                    case 'i':
                        Ypos--;
                        break;

                    case 'K':
                    case 'k':
                        Ypos++;
                        break;

                    case (char)27:
                        _threadHandle.Suspend();
                        Console.CursorTop = _totalHeight / 2;
                        int _cPos = (_totalWidth / 2) - (ARE_YOU_SURE.Length / 2);
                        Console.CursorLeft = _cPos;
                        Console.Write(ARE_YOU_SURE);
                        _areYouSure = true;
                        continue;

                        //default:
                        //    _currentPiece.setPiece(_nextPiece.PieceInt);
                        //    _nextPiece.randomPiece();
                        //    break;
                    }

                    bool _hit = _screen.CollisionDetect(Xpos, Ypos, _currentPiece);

                    DrawScreen();

                    Console.CursorLeft = _offset * 2 + _offset / 2;
                    Console.CursorTop  = 0;
                    Console.Write(Xpos);
                    Console.CursorTop = 1;
                    Console.Write(Ypos);
                }

                _charBuff = Console.ReadKey(true).KeyChar;
            }
        }