вторник, 23 марта 2010 г.

Scratch как театр 

Текст урока посвящается  Наталье Александровне Иванчевой, которая создала чудесную сказку про рыцарей и принцессу http://scratch.mit.edu/projects/electus/943526
Там у нее бьются рыцари в пустыни, плавают лебеди и сидит на берегу пруда прекрасная дама.
И все эти исполнители ролей управляются командами:



Мне очень близок и симпатичен подход, когда Scratch используется для создания цифровых историй и представлений. 
Интереснее всего про этот подход пишет Бренда Лаурел, которая специально думала и делала компьютерные игры для девочек и, кажется мне, что у нее книга или статья на эту тему была - Компьютер как театр
 
Главная идея этого урока, что создатель программы работает как режиссер спектакля. В Scrtatch эту метафору поддерживает так много элементов дизайна, что метафора театра здесь воспринимается естественно. Есть сцены, есть актеры, есть тексты пьесы. Собирать все это здесь в единый спектакль - одно удовольствие.


Текст пьесы

У нас есть текст пьесы и мы должны этот текст пьесы разбить на роли и раздать актерам. Каждый актер получает свою роль и свой текст. Этот текст своей роли он хранит в контейнере своего мозга. Мы не знаем как устроен контейнер и что там лежит. Мы говорим актеру - вот твой текст, помни его, будь готов весь этот текст проговорить. Если этот актер заболеет, то у нас должна быть возможность передать роль другому актеру.

Еще было бы здорово хранить и менять текст отдельно от актера. Например, если мы играем в России, то текст на русском. Поехали во Францию, просто поменяем текст и актеры будут произносить фразы на французском. Это чудесная возможность в обычном театре не доступна, но в компьютерном театре для нее нужно простое правило - хранить текст отдельно от формы его представления. 
Правило № 1 - хранить текст отдельно от поведения. 
- Где хранить? 
- В списке. Зайти в раздел Переменные  и Создать список. Про создание списка я писал в предыдущем уроке про презентации. Создали список - загрузили туда все фразы, которые говорит исполнитель. 

Назвал криво. Надо было назвать исполнителя Рыцарь 2, а локальный список назвать текст. Получился бы список под названием Рыцарь 2 текст.  -Yevgeny Patarakin 23.03.10 14:50 


Это и с точки зрения постановщика спектакля сильно упрощает дело. Захотим мы проверить, знает ли исполнитель свою роль. Так мы его можем попросить - расскажи весь свой текст: 

Если же мы захотим, чтобы актер последовательно проговорил все фразы, то мы добавим переменную и соберем такую конструкцию:  
   
 Про списки и их возможности и ограничения собрать отдельный урок. Здесь пока только правило хранения текстов. -Yevgeny Patarakin 23.03.10 16:06 

В продолжение темы про использование списков и создание интерактивных диалогов со зрителями есть отдельный рассказ Положи значение переменной  в мозг. С веселыми картинками:

Взаимодействие актеров

Подумаем о спрайтах как об актерах, которые участвуют в одном спектакле, и нам станет понятен весь ужас использования блока команды "Ждать". Представьте себе, что у актера роль, которая начинается во втором действии. И мы на полях его роли пишем 
Ждать 600 секунд,  
Показаться на сцене,
Сказать реплика 1 из текста
Ждать 5 секунд
Сказать реплика 1 из текста
И он, бедолага, сидит и учит свою роль с секундомером. А если что-то пойдет не так? Если свойства сцены изменились? Если партнер задержался или поспешил? Тогда все пойдет наперекосяк и весь наш спектакль развалится.

Что делать - использовать управляющие блоки "Передать" и "Когда я получу". Используем театрального суфлера или помощника, который подсказывает актерам, что им пора действовать. В принципе, каждый актер может помогать другому. Сказал свою реплику вслух и потом тихонечко, чтобы зрители не видели, прошептать партнеру - "А теперь твоя очередь, говори давай, Рыцарь Черного Лебедя". "Передать" - это как раз такие тайные сигналы, которыми обмениваются спрайты. Они не видны публики и служат для организации и синхронизации действий. Главное для организатора - развести сообщения для публики (Говорить, Думать) от сообщений для актеров. 

В отличие от настоящей театральной сцены актеры компьютерные актеры на сцене Scrath не слышат, что говорят другие актеры. Все фразы Сказать и Думать видит только зритель. Для внутреннего использования необходимо использовать команду Передать.


В качестве примера - диалог Лопатина и Дуняши из первого действия пьесы "Вишневый сад". Перед началом пьесы дадим актерам тексты их ролей. 

Создали список с текстом для Дуняши и экспортировали в этот список текст. 

Тоже самое сделаем и для Лопахина. Теперь у артистов есть роли.

Роли разучены (тексты в голове). Теперь мы хотим, чтобы партнеры начали обмениваться репликами.


Обратите внимание, как технично исполнители дергают друг друга за ниточки и передают ход. Сказал свою реплику и шепнул партнеру - "Теперь твоя очередь"  

В сети этот пример http://scratch.mit.edu/projects/patarakin/945353

Задание

Создавая примеры, в которых персонажи обмениваются фразами, обходитесь без блока  Ждать

пятница, 19 марта 2010 г.

Урок № 5 Собираем презентацию

Да, в Скретч можно собрать и презентацию. 
Из чего будет состоять презентация? Из перечня слайдов или сцен. 
Как мы будем добавлять сцены? Просто будем их рисовать. Выбираем объект Сцена. Новый фон -> Рисовать.


И в новом фоне мы можем выбрать текстовый режим и написать буквы:



 
На следующие фоны мы просто будем добавлять фотографии с учебными ситуациям. С добавлением фотографий проблем быть не должно. Только нужно помнить, мы создаем сетевой проект и не нужно его перегружать. Размер изображений - 480 на 320.
Сцена - управляемый объект, которому можно давать команды. Мы можем управлять сценой, щелкая мышкой по сцене. Щелкнем в правой части - будет следующий слайд. Щелкнем в левой - предыдущий. Интерес тут представляет только переменная фон# - значение этой переменной содержит текущее значение фона.  


В первом приближении - все. Многие презентации так и устроены - мы умеем листать слайды.
Задание 1. Предложите и реализуйте другие способы переключения слайдов. -Yevgeny Patarakin 19.03.10 16:42 
Задание 2. Найдите мелкую ошибку в скрипте  -Yevgeny Patarakin 19.03.10 17:28 

Теперь мы хотим украсить презентацию текстами и звуками. Например, если у нас представлена учебная ситуация, когда учитель бродит с учениками и цифровыми устройствами по лесу, то мы хотим, чтобы на этом слайде Кот или другой рассказчик говорил фразу "Современный учитель мобилен. Он в классе не сидит". 

И под каждую картину мы бы хотели добавлять свою фразу. Нам понадобится список. Мы заходим в сектор "Переменные" и создаем список.

Система нас спросит как называется наш список и мы, чтобы он был доступен для всех объектов. Мы выберем локальный список для своего рассказчика (так мы нашего Кота назвали)

Теперь у нас есть пустой список Рассказчик Рассказ и мы можем записывать туда свои фразы.

Не обязательно записывать фразу внутри среды Scratch. Мы можем экспортировать текст списка и он сохранится как текстовый файл, где на каждой строчке будет отдельная фраза - элемент списка.
И мы можем редактировать текст в обычном текстовом редакторе (Блокнот), а потом экспортировать текст в  в список импортировать.

Теперь пришло время использовать список. Мы хотим, чтобы в начале, когда запускается скрипт на экране был первый слайд и рассказчик бы давал пояснение. Пояснение у нас записано первым элементом в списке. Вот мы и пишем указание рассказчику: Сказать элемент 1 из списка.


Дальше еще интереснее. Мы хотим, чтобы всякий раз, когда переключается слайд, рассказчик говорил бы соответствующее слайду пояснение. Но, как рассказчик узнает, что произошло переключение слайда?
А пусть ему сцена расскажет! Сцена, она же исполнительный и умный объект. Мы добавляем команду Передать 

А рассказчику мы добавляем команды Когда я получу

В тексте добавлено еще управление звуками, но это уж для красоты. Главное сегодня - списки и обмен сообщениями
Задание №3 Примите участие в пополнении общей презентации
Задание №4 Создайте собственную презентацию с фотографиями и текстами
Задание № 5 Создайте два персонажа, которые будут вести диалог в ходе презентации -Yevgeny Patarakin 19.03.10 17:41 












среда, 17 марта 2010 г.

Пример с конем

Еще об этом проекте

Пояснения к уроку №3

Всадник на лошади приближается к камню


Начнем с камня, поскольку он самый  простой объект. Когда запустится проект, камень встанет в нужную точку.


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

Обратите внимание, что мы может копировать  команды из одного спрайта в другой. Можно просто взять блоки команд и перетащить их из камня в лошадь или во всадника.



И лучше называть каждый спрайт своим именем, чтобы не путаться в названиях.


Теперь решим задачу со всадником, который должен все время сидеть коне и думать, сколько шагов осталось до камня. 

Да, обратите внимание, на всякий случай мы указали, что размер всадника соответствует размеру коня.

Собственно для выполнения задания, чтобы всадник и конь думали про оставшееся и пройденное расстояние достаточно перечисленных блоков.
Мы добавим к лошади локальную переменную пробег и используем ее для изменения размеров коня.


Готовый проект можно посмотреть и скачать - http://scratch.mit.edu/projects/patarakin/935409




четверг, 4 марта 2010 г.

Scratch day 2010 в России

Каждый год 22 мая во всем мире отмечается день Scratch. Учителя, студенты, школьники и их родители связывают с этим днем мероприятия по продвижению языка: встречи, семинары, выставки работ, мастер-классы.
Сейчас в списке запланированных  событий http://day.scratch.mit.edu/ 24 страны и 40 событий.   И ни одного из России. Если посмотреть на карту, то в центре большое пустое поле. 



Если мы посмотрим на прошлогодний день Scratch http://day.scratch.mit.edu/sd2009, то увидим только 2 события на карте России - в Нижнем Новгороде и Красногорске.
 Давайте в этом году изменим ситуацию. У нас есть боевая группа http://groups.google.ru/group/Scratch_ru. Нас в ней на данный момент 77 участников. Представляете как мы можем украсить карту событий! И не обязательно собирать большое мероприятие. 
Я, например, могу обещать, что мы соберем и покажем в сети проекты и методические материалы, которые сделают к этому моменту студенты нижегородского педагогического университета. Мы их соберем, расскажем о них в блоге http://ru-scarystories.blogspot.com/ - и это будет маленькое и хорошее дело. Поставим на карте точку - Нижний Новгород
А  еще могу обещать, что мы устроим выставку отдельных спрайтов на Летописи. Поставим точку - Москва.

Что сделать, чтобы поучаствовать
  • Зарегистрироваться на http://day.scratch.mit.edu/user/register Да, там все на английском, но простые вопросы про страну.
  • После того как пришлют подтверждение, заполнить событие, которое вы собираетесь провести. 
  • Если нужна поддержка - расскажите о возможном событии сначала в группе, попросите поддержки у других участников.

Давайте представим наши работы всему миру. Давайте попробуем сделать в рамках подготовки к дню Скретча совместные проекты. Это же такая классная возможность общаться со школьниками из других стран на языке проектов. 

среда, 3 марта 2010 г.

Урок № 4 Рисование, звуки, операторы, сенсоры, переменные

  Это урок, в котором представлено  много блоков. мы в дальнейшем будем на них ссылаться и использовать их в работе над проектами.  -Yevgeny Patarakin 03.03.10 12:42 

Команды рисования (темно-зеленый ящик)

 

В зеленом ящике собраны команды, которые позволяют управлять пером или карандашом, которым могут рисовать наши объекты. Как и черепашка Лого, все объекты Скретч могут рисовать и оставлять на экране свои отпечатки.

Мы можем менять цвета и размер карандаша, поднимать и опускать карандаш. В результате выполнения сценария на экране рисуются разноцветные геометрические фигуры.

Команда

Назначение

Очистить

Очистить экран от всех следов, которые на нем оставили объекты

Опустить перо

Опустить карандаш. После этой команды за движущимся объектом будет оставаться след.

Поднять перо

Поднять карандаш

Установить цвет пера()

Выбрать цвет, которым мы собираемся рисовать. Цвет можно выбрать из объектов на экране

Изменить цвет пера на ()

Изменить цвет пера на указанное значение.

Например: Изменить цвет пера на (50)

Изменить тень на ()

Установить градиент цвета следа, который оставляет объект. 100 – белый, 0 – черный.

Печатать

Отпечатать объект на экране. Например, у нас есть спрайт дерево и мы хотим посадить лес из деревьев разного размера. 

Лиловый ящик - Звуки

 

Лиловый ящик Скретч предоставляет массу звуковых возможностей.  При этом звук можно выбрать в библиотеке – там этих звуков достаточно много. Так же как и библиотека картинок, библиотека звуков расширяется и к ней можно добавлять свои звуки в формате wav. Звуки можно записывать в редакторе самой среды Скретч. Внутрь  звуковых кирпичиков можно добавить любые значения, которые мы вычисляем или считываем с датчиков. К разным объектам в Скретче можно добавлять свои музыкальные партии.

 

Команда

Назначение

Играть звук

Воспроизвести звук (можно выбрать звук). При этом звук никак не влияет другие действия нашего объекта

Играть звук до завершения

Играть звук до его завершения. Никакие другие действия наш спрайт при этом не совершает.

Выбрать инструмент

Выбрать инструмент, который будет играть. Инструментов в Скретче более 130

Барабанам

Ударные играют указанное число тактов

Играть ноту

Играть определенную ноту указанное количество времени (в секундах). Ноты записаны в цифрах, но против каждой цифры стоит ее звучание.

Убрать все звуки

Все звуки данной модели умолкают

Изменить темп

Меняет темп игры

Темп

Возвращает значение темпа игры

 

Операторы (зеленый ящик)

 

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

Команда

Назначение

() + ()

операция сложения

() – ()

вычитание

() * ()

умножение

() / ()

деление

() > ()

Сравнение больше, равно, меньше.

Например: ((5) * (5)) < ((4) * (10))

Выдать случайное от () до ()

Возвращает число в интервале от () и до ().

Например: Установить направление(Выдать случайное от (-180) до (180)

буква(№)в(слово)возвращает значение буквы, которая стоит в слова под выбранным номером. Например, буква(1)в(Скетчер) = С. буква(2)в(Скретчер) = к
Слить () ()Объединяет слова и возвращает слитное значение.  Например, слить(Привет)(Сретчер) будет ПриветСкретчер
длина строки()Возвращает длину строки. Например длина строки(Привет, Скретчер!) = 17

Логические операторы. Эти блоки содержат входные окошки, куда вставляются кирпичики сравнений.

<> и <>

<> или <>

Не <>

Например: () и ()

Функция от ()

Перечень возможных функций показан на рисунке после этой таблицы

 

Возможные вычисляемые функции

 

 

 

 

Посмотреть на результат выполняемой функции можно, если попросить котенка или другого героя сказать или подумать результат функции:


Сенсоры (голубой ящик)

Кирпичики из голубого ящика тоже нельзя использовать в качестве строительных блоков, но они могут использоваться, как и числа и логические значения «истина» или «ложь». Для того чтобы посмотреть на значение датчика можно попросить котенка проговорить или продумать значение датчика. Интересно, что датчик может получать информацию не только от объекта, с которым он связан, но и от любого объекта, существующего в нашей системе. Например, спрайт котенка может узнать касается ли он спрайта мышки, координаты другого спрайта.

Команда

Назначение

Мышка по x

возвращает значение указателя мыши по оси x

Мышка по y

возвращает значение указателя мыши по оси x

Касается цвета ()

касается ли наш объект указанного цвета Например: цвет касается () ? –

Касается цвет () цвета

Касаются ли указанные цвета. Возвращает «истина» или «ложь»

Мышка нажата

Нажата ли управляющая клавиша мышки? Возвращает «истина» или «ложь»

Касается ()

Касается ли наш объект мышки или другого существа касается ли наш объект цвета() соприкасается ли цвет() с цветом().Возвращает «истина» или «ложь» 

Параметр () от ()

Возвращается размер, положение по x или y, направление, костюм и громкость любого объекта существующего в данной модели.

 

Расстояние до ()

Возвращает расстояние от нашего спрайта до выбранного объекта – край, мышка, другой спрайт.

Среди команд голубого ящика есть такие, которые считывают данные со специального устройства – picoboard или ScratchBoard

 

 


ScratchBoard в России, скорее всего, только 1 - тот который я в Бостоне купил. Необычайно расширяет возможности и позволяет создавать настоящие мультимедийные проекты. 

 

Переменные (оранжевый ящик)

 

В оранжевой ящике изначально ничего не лежит, кроме предложения «создать переменную». Мы сами создаем кирпичики, которые планируем использовать в своих сценариях. Если мы щелкаем по кнопке «создать переменную», то Скретч предлагает определить имя и свойства новой переменной. Переменные могут быть глобальными и локальными.

Глобальные переменные действую для всех объектов внутри данного проекта.  Локальные переменные действуют только для данного объекта. Например, мы хотим несколько раз сыграть несколько нот, постепенно убыстряя темп игры. Мы создаем две локальные переменные – «nota» и «temp

Temp – определяет время звучания и увеличивая значение этой переменной мы ускоряем скорость игры.

 

 

 Задания

Опишите на языке Scratch следующие истории.
  • Пустыня. Когда пользователь нажимает на зеленый флаг, пустыня покрывается деревьями. Деревья различаются по форме и размерам.
  • И в этой пустыне появляется всадник на лошади, для которого нужно выполнить задание из предыдущего урока. (Всадник и лошадь увеличиваются в размерам и приближаются к камню. Всадник думает - "До цели осталось (Расстояние до камня) шагов". Лошадь думает "Я проскакала уже (расстояние от начальной точки) шагов". Когда лошадь касается камня, всадник слезает с лошади)
  • Добавьте к проекту музыкальное сопровождение.  Обычно музыкант это - отдельный спрайт, который можно уменьшить или спрятать. на экране его не видно, а управлять им можно. -Yevgeny Patarakin 03.03.10 12:39