пятница, 29 января 2016 г.

Урок 18

Продолжаем улучшать нашу игру с лабиринтом.

К концу предыдущего урока у нас выполнялись такие условия:


  1. Кот ходил по лабиринту, управляемый стрелками клавиатуры.
  2. Кот не проходил сквозь стены.
  3. При достижении выхода кот сообщал, что он победил.
Усложним немного игру:

  1. Добавим в лабиринт объекты, которые будут появляться при нажатии на зеленый флажок. Чтоб выиграть, уже недостаточно будет просто пройти лабиринт. Необходимо будет собрать все объекты.
  2. Необходимо успеть пройти игру за определенное время. Для этого введем новый объект - таймер.
Приступим!

  1. Создадим переменную "Счет":
    • Перейдем на вкладку "Переменные"
    • Нажмем "Создать переменную"
    • Назовем её Счет
    • Если вы хотите видеть счет на игровом поле - оставьте галочку рядом с переменной. Не хотите - уберите. 
  2. Настроим обновление технических переменных при запуске игры:
    • Выберем объект "Сцена
    • Перейдем на вкладку "Скрипты"
    • Соберем такую конструкцию: "Когда щелкнут по зеленому флажку" - "Поставить Счёт в 0" - "Перезапустить таймер" (команда "Перезапустить таймер" находится  в разделе "Сенсоры")



 3. Теперь давайте расставим по лабиринту то, что будет собирать кот. Мой кот будет собирать мышей. 
  • Создадим новый спрайт. Для этого вы должны нажать на кнопку, выделенную красным прямоугольником на рисунке и выбрать объект, который будет собирать кот.
  • Измените размеры спрайта так, чтоб он помещался в вашем лабиринте.
  • Поставьте спрайт в ту точку, в которой он будет располагаться в ходе игры и настройте для него такие параметры:


 Итак, что означают эти настройки?
  • Когда щелкнут по зеленому флажку и игра начнется...
  • Идти в точку ... (поставьте свои координаты. Их можно посмотреть, наведя указатель мышки на ваш установленный в лабиринте спрайт)
  • Показаться (появляется в лабиринте при начале игры)
  • У меня кот - это спрайт 1. Поэтому я устанавливаю такие условия: Если касается спрайт 1 увеличить счет на 1 и спрятаться.
  • Попробуйте эту комбинацию без модуля "Всегда". Запустите программу. Что работает неправильно? Почему?
4. Щелкните правой кнопкой мыши по созданному спрайту 3, продублируйте его еще 4 раза, расставьте по лабиринту и измените начальные координаты для каждого из спрайтов.

5. Теперь изменим условия выигрыша в игре. Во вкладке "Скрипт" нашего кота мы создавали не один надор команд, а два. Давайте изменим второй набор. Выигрыш наступает если:
  •      Собраны все мыши (счет равен 5)
  •      Кот дошел до выхода (касание спрайта 1 и спрайта 2)
  •      Кот успел собрать всех мышей и прийти к выходу до определенного времени.
По поводу третьего условия выигрыша: помните, в начале урока мы говорили о датчике "Таймер"? Так вот, он у нас перезапускается при нажатии на зеленый флажок, и начинает автоматически изменяться. В моей игре надо успеть выполнить все условия за 100 секунд. Поэтому обратите внимание на ВСЕ условия выигрыша.
Если игрок не успел выполнить задание за отведенной время - выводим сообщение о проигрыше.


Задание сегодняшнего урока выполнено. Творческих успехов!

вторник, 19 января 2016 г.

Урок 17

Всех с прошедшими праздниками!

У нас карантин, и первая учебная неделя после каникул не состоялась, но это всего лишь означает, что на окончание блока "Программирование в Skratch" у нас не 4 урока, а 3.
Так даже интереснее - у нас, как у настоящих программистов, "горят сроки". :-)

Для получения тематической оценки вам необходимо будет выполнить практическую работу, с которой мы начнем работать уже на этом уроке, и, 12 февраля, на последнем уроке темы, выполнить теоретическую контрольную работу.

Теория будет основана на практике. Поэтому к практике мы и приступим.

Глобальная задача:

Создаем игру на прохождение лабиринта.


Уровни сложности:

На оценку 4-6 баллов:
  • кот идет по лабиринту, управляется с клавиатуры, меняет костюмы.
  • НЕ ПРОХОДИТ сквозь стены,
  • когда достигает выхода, сообщает, что он выиграл.


На оценку 7-9 баллов:
  • все условия задания 4-6 баллов выполнены
  • должен собрать по дороге не менее 5 объектов, которые стоят на поле в начале игры
  • должен выйти из лабиринта за ограниченное время, в случае превышения времени или недостаточного количества собранных объектов сообщает, что проиграл


На оценку 10-12 баллов:
  • Выполнены все условия заданий выше,
  • Объекты для сбора появляются в случайных точках лабиринта,
  • В лабиринте существует еще один спрайт, который автоматически движется к коту, и, если поймает, кот отправляется на стартовую позицию.

Начнем выполнение проекта.

Для тех, кто работает он-лайн, необходимые материалы ЗДЕСЬ

  1. Установим в качестве фона изображение лабиринта (файл maze.png в папке «Задания») 
  2. Изменим размеры кота та, чтоб он мог пройти через лабиринт.
  3. На выходе установим Спрайт 2 – солнышко из файла map.jpg
Должно получиться примерно так:





4. Научим кота радоваться выходу из лабиринта. Для этого перейдем на вкладку «Скрипты» для кота (Спрайт 1) и соберем такой блок:


5. Теперь научим кота ходить по команде с клавиатуры. Будем использовать стрелки. Создаем новый скрипт, начиная с «Когда щелкнут по зеленому флажку»:


Что мы сделали в этом блоке?

  • Сообщили коту, что при запуске игры он должен появиться на старте.
  • Вспоминаем, что движение – это изменение координат. Движение вверх – изменение координаты у в сторону увеличения, движение вниз - изменение координаты у в сторону уменьшения, движение вправо – изменение координаты х в сторону увеличения, движение влево - изменение координаты х в сторону уменьшения.
  • Лабиринт черного цвета, значит, если кот коснулся стены лабиринта, он должен отступить на один шаг (а шаг у нас равен 4 единицам) в направлении, противоположном движению. Соответственно, если стрелка нажата вверх, то отступить он должен вниз.
6. Самостоятельно достройте блок движения так, чтоб кот двигался во все стороны.

7.  Проверьте работу программы. Сохраните ее.

8.Продолжение – самостоятельно по заданию или на следующем уроке.

Удачи!