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)); }