Создаём старую добрую игру Арканоид. Создаём меню, рисуем уровень, размещаем ракетку. Делаем, чтобы ракетка двигалась.
Дата отправки отчёта:
7 апреля 2017 г.
Задание выполнено: за
1 час. 20 мин.
Чему научился:
Увидел, как в реальной программе вызываются функции и передаются параметры. Ну и вообще перенос того, что было в консоли в оконное приложение.
Что было сложным:
Пока ничего
Комментарии:
Не понимаю, почему если изменить вот эту часть кода: private void shift_racket (int sx) { int ax1 = racket_x + sx; int ax2 = ax1 + racket.Width; if (side_lx > ax1) ax1 = side_lx; if (side_rx < ax2) ax1 = side_rx - racket.Width; racket_x = ax1; racket.Location = new Point(racket_x, racket_y); } Вот так: private void shift_racket (int sx) { int ax1 = racket_x + sx; int ax2 = ax1 + racket.Width; if (side_lx > ax1) ax1 = side_lx; if (side_rx < ax2) ax1 = side_rx - racket.Width; racket.Location = new Point(ax1, racket_y); }
То программа работает не правильно. Если мы последним действием внутри функции просто передаем значение уже существующей переменной, то почему нельзя просто использовать эту переменную. Не понимаю. Но, иначе не работает) Спасибо за урок!
А что тут не ясного? ax1 это временная переменная, которая определена в пределах данной функции и перестаёт существовать после завершения её работы, а та, куда передаётся информация определена ранее глобально и продолжает существовать после завершения функции. Следовательно значение которое в ней остаётся, оно никуда не теряется и с ним взаимодействуют дальше другие функции. Это как автомобиль и зажигалка: Автомобиль это глобальная переменная, а зажигалка это внутренняя. Автомобиль можно заправить и он останется заправленным сидишь ты в нём или покинул его. А зажигалку можно либо оставить в бардачке и тогда любой другой, кто сядет в автомобиль сможешь ею воспользоваться, либо забрать её с собой и тогда тот, кому она понадобится, не сможет её найти.
Научился: Был полезным момент с граничным перемещением ракетки Трудности: По данному материалу сложностей не возникло По данному материалу вопросов нет