-
1. Знакомство со спрайтом 0
Знакомьтесь - спрайт, маленький объект, активный персонаж компьютерных игр. На этих уроках мы научимся создавать спрайты BBC micro:bit и управлять ими. Мы разработаем компьютерные игры, где спрайты будут двигаться, сталкиваться, бороться за своё существование.
-
Лекция1.1
-
Лекция1.2
-
-
Игры со спрайтами. Уровень 1 0
-
Лекция2.1
-
Лекция2.2
-
Лекция2.3
-
-
Игры со спрайтами. Уровень 2. Массивы 1
В этом разделе мы познакомимся с новым понятием - массив. Массив поможет нам разрабатывать более сложные программы, а значит - игры, которые ещё интереснее и увлекательнее, чем те, которые мы научились делать.
-
Лекция3.1
-
Лекция3.2
-
Моделируем игру Flappy Bird
Описание и планирование игры
Оригинальная идея: https://makecode.microbit.org/projects/crashy-bird
- Разместим птичку (спрайт) на экране, немного отступив от левого края. Игроку надо успеть переместить птичку в нужную позицию, а препятствию-стенке тоже надо успеть продвинуться по экрану. Можно было бы разместить птичку на нулевой вертикали экрана, но отступив немного от края, мы сможем наглядно увидеть, попала птичка в отверстие в стене или нет.
Создайте переменную птичка
В блоке при начале переменной птичка задайте значение спрайт с координатами x=1, y=2.
- Птичка управляется кнопками. При нажатии на кнопку А птичка опускается на одну позицию, при нажатии на кнопку B — поднимается на одну позицию.
Добавьте в программу управление кнопками.
Проверьте, правильно ли работает программа.
Увы! Вместо того, чтобы двигаться вверх и вниз, спрайт перемещается вправо и влево. Что нужно изменить? Ну конечно, свойство направление!
При создании спрайта его направление равно 90 градусам (спрайт смотрит направо). Задайте свойству направление значение 0 (наверх) в блоке при начале. После этого управление должно работать правильно. Проверьте.
Добавьте для наглядности эффект мерцание. Это украсит программу.
- Пока игра не закончена, на правом краю экрана появляется препятствие (стенка) с отверстием. Стенка движется справа налево. Игрок должен провести птичку в это отверстие.
Когда стенка сделает три шага, она окажется на одной вертикали с птичкой. В этот момент надо проверить, совпадает ли координата спрайта на оси Y со значением пусто. Если совпадает, то игрок успешен, и стенка делает ещё один шаг вперёд после чего исчезает, иначе игрока постигла неудача. В этом случае игра может быть закончена или же игроку даётся ещё шанс, но он теряет жизнь.
В соответствии с этим планом надо внести изменения в функцию двигать стенку:
- Пусть событием, при котором начнётся игра, будет нажатие клавиш A+B. Это событие запустит обратный отсчёт времени, а затем и саму игру.
Напишите функцию обратный отсчёт, которая будет выводить на экран числа: 3, 2, 1, 0. Такая функция у нас уже была в предыдущем проекте, и вы с ней справитесь самостоятельно. Но…
Но мы уже умеем работать с циклом со счётчиком. Попробуйте сообразить, как написать функцию обратный отсчёт времени короче, используя цикл со счётчиком. - Продумав все детали, внесём в код программы дополнения:
- Введите в программу переменную игра идёт. В блоке при начале задайте переменной игра идёт значение ложь (игра ещё не началась).
- В блоке при начале задайте начальное количество жизней, которое дарите игроку.
- Блок кнопка A+B нажата должен содержать следующие команды:
- вызов функции обратный отсчёт,
- задать переменной игра идёт значение истина.
- пока игра идёт (переменная имеет значение ИСТИНА) делать: вызов сделать стенку, вызов двигать стенку, вызов удалить стенку.
Проверяем, всё ли работает как задумано. Если нет, ищем и исправляем ошибки, добиваемся задуманного результата.
Если всё работает как было задумано, можно подумать о развитии игры.
- Введите команду подсчёта очков
- Изменяйте скорость игры постепенно, по мере накопления очков, или меняйте её значение при переходе на новый уровень.
- Подумайте над оформлением игры.
- А в качестве упражнения измените игру так, чтобы игрок управлял космическим кораблём, который надо провести сквозь метеоритный поток, падающий сверху в виде горизонтального препятствия
Удачи!