示例#1
0
        private void Model_FieldsChanged(object sender, EventArgs e)
        {
            Device.BeginInvokeOnMainThread(() =>
            {
                FieldType[][] matrix = new FieldType[_model.GameBoard.Width][];

                for (int i = 0; i < matrix.Length; i++)
                {
                    matrix[i] = new FieldType[_model.GameBoard.Height];

                    for (int j = 0; j < matrix[i].Length; j++)
                    {
                        matrix[i][j] = FieldType.EMPTY;
                    }
                }

                foreach (Coordinate asteroid in _model.Asteroids)
                {
                    matrix[asteroid.X][asteroid.Y] = FieldType.ASTEROID;
                }

                matrix[_model.Player.X][_model.Player.Y] = FieldType.PLAYER;

                Fields.Clear();

                for (int i = 0; i < matrix.Length; i++)
                {
                    for (int j = 0; j < matrix[i].Length; j++)
                    {
                        Fields.Add(new Field(i, j, matrix[j][i]));
                    }
                }

                OnFieldsChanged?.Invoke(this, new FieldsChangedEventArgs(_model.Player, _model.Asteroids));
            });
        }
 private void Model_FieldsChanged(object sender, EventArgs e)
 {
     OnFieldsChanged?.Invoke(this, new FieldsChangedEventArgs(_model.Player, _model.Asteroids));
 }