コード例 #1
0
        internal void ReadState()
        {
            List <long> output = new List <long>(3);

            while (_outputQueue.Count >= 3)
            {
                output.Clear();
                for (int i = 0; i < 3; i++)
                {
                    output.Add(_outputQueue.Dequeue());
                }

                if (output[0] == -1 && output[1] == 0)
                {
                    Score = (int)output[2];
                }
                else
                {
                    ArcadeMachineTile tile = ArcadeMachineTileFactory.GetTile((int)output[0], (int)output[1], (int)output[2]);
                    AddTile(tile);

                    if (tile is ArcadeMachineBallTile)
                    {
                        _ballXPosition = tile.X;
                    }
                    else if (tile is ArcadeMachineHPaddleTile)
                    {
                        _paddleXPosition = tile.X;
                    }
                }
            }
        }
コード例 #2
0
        private void AddTile(ArcadeMachineTile tile)
        {
            int x = tile.X;
            int y = tile.Y;

            if (!_state.ContainsKey(y))
            {
                _state[y] = new SortedDictionary <int, ArcadeMachineTile>();
            }
            _state[y][x] = tile;
        }