Народ помогите понять, зачем нужна строка " gameField[y][x]=new GameObject(x,y); " Как я понимаю это - в ячейку с координатами "у" и "х" записываем объект типа GameObject с координатами "х" и "у".
Правильно ли я понимаю? Если да, то:
- зачем так делать? я удалил эту строку и запустил код, он всё равно мне клетки окрасил так же как и с этой строкой
- новому созданному объекту с типом "GameObject" имя не обязательно?
Помогите понять, может ссылки на статьи какие-нибудь?
Дима
16 уровень
Зачем нужна строка gameField[y][x]=new GameObject(x,y);
Решен
Народ помогите понять, зачем нужна строка " gameField[y][x]=new GameObject(x,y); " Как я понимаю это - в ячейку с координатами "у" и "х" записываем объект типа GameObject с координатами "х" и "у".
Правильно ли я понимаю? Если да, то:
- зачем так делать? я удалил эту строку и запустил код, он всё равно мне клетки окрасил так же как и с этой строкой
- новому созданному объекту с типом "GameObject" имя не обязательно?
Помогите понять, может ссылки на статьи какие-нибудь?
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Павел Безумный учёный Expert
5 сентября 2021, 12:38решение
В каждом шаге игры можно условно выделить три этапа:
1) ввод данных от пользователя;
2) обработка полученных данных (изменение матрицы gameField);
3) вывод состояния матрицы на экран.
За ввод и отображение отвечает класс Game, то есть базовая часть класса MinesweeperGame, а все необходимые операции производятся над матрицей gameField, находящейся в его расширенной части. Базовая часть не "следит" за матрицей gameField и не изменяет автоматически вид отображаемого игрового поля. Управление "экраном" игрового поля происходит "извне" (т. е. из расширенной части класса MinesweeperGame) при помощи методов класса Game. Одним из таких методов является метод setCellColor(), окрашивающий заданную ячейку на "экране" в заданный цвет. Эти данные берутся из матрицы gameField, размеры которой соответствуют размерам "экрана" игрового поля.
Подобным образом работает монитор компьютера: он отображает то, что пришло через интерфейс. О логических процессах, происходящих в памяти компьютера, монитору ничего не известно, он реагирует только на сигнал от видеокарты.
В методе createGame() выполняются две не зависящие друг от друга операции:
- инициализация (первоначальное заполнение объектами) матрицы gameField;
- инициализация "экрана", т. е. заполнение его "пикселей" оранжевым цветом.
В дальнейшем при написании игры необходимо будет брать значения из матрицы gameField и передавать их на "экран" при помощи соответствующих методов. Таким образом состояние матрицы будет отображаться игроку.
Шаблон разработки MVC
+5
Дима
5 сентября 2021, 13:43
Спасибо за ответ) Чтоб переварить мне понадобится некоторое количество времени)
Получается что матрицу "gameField" мы заполняем объектами GameObject в аргументах которых указываем адрес (координаты) ячейки где именно лежит этот объект в матрице "gameField". Эти координаты нам понадобятся для дальнейшей работы с методами класса Game
0
Павел Безумный учёный Expert
5 сентября 2021, 14:03решение
Верно, именно это и происходит.
+2
Дима
5 сентября 2021, 14:27
Спасибо за помощь))
0