Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович
Вступай в Телеграм чат проекта
Вебинар «Мы начинаем PHP + Yii2» начнётся через 1  день 2 час. 39 мин.

Наноигры / Арканоид - Шарик и кирпичики

  • Делаем движение шарика, отскок его от стен и ракетки, а также выбивание кирпичиков.
  • Дата отправки отчёта: 14 октября 2016 г.
  • Задание выполнено: за 5 час. 00 мин.
  • Чему научился: На этом уроке я научился передвигать элемент формы по нажатию клавиш - ракетку. Научился задавать и определять координаты элемента на форме - стенок, ракетки и шарика. Повторил метод Random и научился использовать его для  отскока элемента случайным образом - да здравствует разноообразие :)  Научился создавать отскок от элементов формы и повторил оператор switch. Весьма полезная вещь. Повторил работу с элементом Таймер, вспомнил как создавать новую форму и класс для звуков, освежил в памяти настройку параметров формы.
  • Что было сложным: Самым сложным было понять как всё работает, поэтому на этот урок ушло много времени. Кроме этого надо было ещё не запутаться во всём этом деле. Но я всё равно запутался, но опечатку нашёл ))
  • Комментарии: Чем больше раз выполнишь материал урока сам, тем лучше это запомнится и останется в голове. От себя добавил заставки для меню и игрового поля,  звуки, выбор скорости полёта шарика ( по нажатию цифровых клавиш 1, 2, 3) и подсчёт шариков, с последующим выводом их количества на экран. Хотел сделать игровые настройки, но пока не стал делать, и так уже долго урок прохожу,  но главное, это займёт немало времени. Около часа, кстати, может чуть меньше - ушло на тестирование и отладку игры, так как в процессе создания было выявлено немного багов. Уроком остался доволен. Он хоть и сложный ( лично для меня ), но очень интересный. Остался только 1 вопрос. Как передать значения элементов из одной формы в другую ( нужно для настроек программы )? Сам додумаюсь конечно, но времени уйдёт много. Спасибо за урок, Евгений Витольдович. В который раз убедился, что я пришёл к вам не зря.
  • Оценка видео-уроку:
Отчёт от 8520 за Наноигры / Арканоид - Шарик и кирпичики


Отчёт от 8520 за Наноигры / Арканоид - Шарик и кирпичики




Оцени работу

 
Сохранить страницу:

1232. Фомичева Наталья
Фомичева Наталья
ответить
→  Сергей Колупаев  # Наноигры / Арканоид - Шарик и кирпичики / 2016-10-15 12:25

Настройки программы можно сохранить в файл, при следующем запуске их загружать. Также можно создать класс  с настройками и хранить их там. Настройки получать в конструкторе формы, например.
namespace MyProgram

  class Properties
    {
        public static int prop;

        static Properties()
        {
            prop = 5;
        }
    }
    ...


11017. Владимир Петреченко
Владимир Петреченко
ответить

10558. Иван Воронин
Иван Воронин
ответить
→  Сергей Колупаев  # Наноигры / Арканоид - Шарик и кирпичики / 2016-10-15 09:32

Красиво, когда я делал эту игрушку, тоже хотел много чего добавить, но потом решил отложить на будущее.


1901. Neverwinter 2
Neverwinter 2
ответить
→  Сергей Колупаев  # Наноигры / Арканоид - Шарик и кирпичики / 2016-10-15 08:19

Выбор скорости по нажатию клавишъ? Чит!! Лайфхак!
))))))
А как передать из одной формы в другую - меня и самого интересует))) Молодец! Просто отлично прокачиваешь навыки!


10673. Алексей Хонин
Алексей Хонин
ответить
→  Сергей Колупаев  # Наноигры / Арканоид - Шарик и кирпичики / 2016-10-14 17:08

Отличный арканоид получился!


1. Евгений Волосатов
Евгений Волосатов
ответить
→  Сергей Колупаев  # Наноигры / Арканоид - Шарик и кирпичики / 2016-10-14 11:13

Сергей, я рекомендую тебе не зацикливаться слишком много на каждом уроке, а двигаться дальше.
Когда полностью пройдёшь курс, через некоторое времмя советую вернуться к нему и пересоздать все программы. Ты совсем другими глазами на это всё посмотришь и многое станет куда проще и понятней.


10670. Сергей Соколов
Сергей Соколов
ответить
→  Сергей Колупаев  # Наноигры / Арканоид - Шарик и кирпичики / 2016-10-14 11:04

Молодец. Отличный отчёт получился!



Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Познакомилась с новыми методами. Вспомнила геометрию.
Трудности: Понять геометрию отскока от преград. Похоже мои комментарии будут связаны с моим увлекательным поиском багов. В момент, когда шарик соприкасался с кирпичиком, игра замирала и требовалось нажать Enter для запуска опять. Начала проверять весь код и нашла ошибку timer.Enabled = false; - я вставила в метод drop_brick. Почему? Да кто ж его знает)))) Немного посидела над счетчиком. В голове представляю, что нужно сделать, но за отсутствием опыта пока не понимаю как реализовать.



Научился:  * Алгоритмам, то, с чем по пока есть проблемы. * Самостоятельной работе! + Добавил в игру "жизни". Написал перечисление Hearth, функцию HealthToPicture и реализовал алгоритм игры до потери трех жизней. После потери жизни ракетка и шарик занимают стартовую позицию, таймер шарика выключается. Отвечает за это функция start_pos(). + Добавил в игру возможность паузы по кнопке Space или Pause. Во время паузы выводится сообщение и мигает pictureBoxHearth (текущий уровень жизни). Фича с паузой будет работать только, если игра уже запущена, это отслеживаю булевой переменной isStartGame. Игра считается запущенной, если была нажата клавиша Enter. До этого был bug, игру можно было запустить кнопкой паузы и висело сообщение о паузе во время игры :) +По нажатию на клавишу ESC вызывается функция exit_game(). Приостанавливается игра и выходит MessageBox с предложением выйти из игры. При нажатии "ДА" окно с игрой закроется, при нажатии "НЕТ" игра возобновится.
Трудности: Добавлять в игру свои фичи
Пока не разобрался как упростить создание кирпичиков. Вызывал 24 раза cross_brick() с разным brick и понимаю, что можно сделать правильнее. Были еще идеи чего можно добавить и мысли как это сделать, но затянул бы на неделю :)