Создание игр в Скретч с джойстиком Lego natyanikova / 10.03.2015 Ребятам хорошо знакомы игры с джойстиком (геймпадом): это различные бродилки и гонки, в которые каждый сегодняшний школьник играл хотя бы раз. Вот, к примеру, скриншот игры Need For Speed (источник).Можно ловко объезжать препятствия, чувствуя себя гонщиком спортивного авто; можно, управляя джойстиком, лавировать между туч в качестве пилота первоклассного вертолёта, можно также быть человечком, которому следует пройти несколько важных уровней - в пустынях, горах, пещерах - собрать монетки, найти главный вклад и победить злого волшебника. При всём этом верно одно: вряд ли дети в процессе игры задаются вопросом: "А как же всё это работает?", "Каким образом герой на экране понимает, в какую сторону ему перемещаться, быстро или медленно, каков алгоритм смены пейзажа за иллюминатором самолёта или подводной лодки?".Когда же мы открываем среду Скретч, то первое, о чём спрашивают учащиеся: "Как можно заставить героя перемещаться?". У нас в распоряжении датчики из набора Lego WeDo и мы вместе приходим к выводу, что именно с их помощью можно осуществить управление героем. Тогда нужно исследовать:- какие положения есть у датчика наклона;- какие коды передаются в компьютер с датчика наклона;- как можно запрограммировать движение спрайта (героя), используя код, полученный с датчика.Также возникает и вопрос о моделировании джойстика, имеющего столько степеней свободы, количество которых будет достаточно для получения определённого набора сигналов. Далее обо всём по порядку.Шаг 1. Сначала мы подключаем к компьютеру датчик наклона через коммутатор. Мы уже знаем, что он имеет пять положений: "нет наклона", "на правый бок", "на левый бок", "носом вниз", "носом вверх". Теперь нужно решить вопрос с кодами для каждого положения. Вытаскиваем в Скретч из ящика Сенсоры блок, который будет определять значение кода. Наклоняя датчик и нажимая на данный блок, мы увидим, что каждому положению соответствует своя цифра. Выводы:0 - датчик в горизонтальном положении, герой должен стоять на месте1 и 3 - датчик наклонён влево (вправо), герой должен идти влево (вправо)2 и 4 - датчик наклонён вперёд (назад), герой должен идти вверх (вниз)Шаг 2. Собираем простой джойстик, который сможет наклоняться влево и вправо. Это может быть подобие рычага, качелей. У нас получился такой штурвал. Главное на этом шаге: обратить внимание на положения датчика наклона: не изменились ли они после предыдущих экспериментов? По фото видно, что конструктор штурвала повернул датчик. Его можно было расположить и по-другому, лишь бы конструкция была крепкой.Шаг 3. Сборка скрипта. Научим нашего героя перемещаться влево-вправо. Например, так: Как видим, здесь использован и бесконечный цикл, и неполное ветвление, и отрицательные числа. Для ребят из начальной школы такие понятия, конечно же, сложны, но на практике они воспринимаются легко. Вместо изменения координаты x можно использовать команду идти 10(-10) шагов. Однако, на следующих шагах нам всё равно придётся столкнуться с координатами. Шаг 4. Модернизируем наш джойстик для того, чтобы он получил возможность перемещаться ещё в двух направлениях. Для этого ребята обычно используют ось, на которую монтируется установка. Получаем нечто в это роде: Шаг 5. Теперь нужно научить спрайта перемещаться вверх-вниз. Здесь потребуются разъяснения о вертикальной и горизонтальной оси координат. Для этого я обычно использую фон сцены xy-grid, имеющийся в коллекции. Алгоритм обрастает новыми условиями.Дальше мы можем наслаждаться движением спрайта по экрану, модернизировать джойстик для большего удобства управления героем и придумывать загадочные истории. Посмотрите, каким образом наша летучая мышь летает во все стороны. STEM Scratch robotics робототехника скретч