Организовать взаимодействие персонажей: различия между версиями

Материал из Энциклопедия вычислительного мышлении
Перейти к навигации Перейти к поиску
(Новая страница: « Категория:WikiHow»)
 
Строка 1: Строка 1:
 +
{{HowTo practice
 +
|Name=Организовать взаимодействие персонажей
 +
|Description_of_problem=В искусственном мире есть несколько акторов-персонажей и мы хотим, чтобы они взаимодействовали между собой
 +
|Environment=Scratch
 +
|Solution=Каждый персонаж, который создали участники нашей команды, в начале истории будет прятаться и вставать в угол, где он колобка не учует. Появляться зверь этот зверь будет только тогда, когда его позовут - т.е. когда он получит сообщение. Например, медведь будет реагировать на сообщение “Приходи, медведь”.
  
 +
Общая схема обмена сообщениями выглядит следующим образом:
 +
* Колобок делает 10 шагов и посылает сообщение “Приходи, Медведь”
 +
* Медведь получает это сообщение, приходит и посылает сообщение “Колобок, я, медведь, тебя съем”
 +
* Колобок получает сообщение “Колобок, я, медведь, тебя съем”
 +
* и в ответ посылает сообщение “Не ешь меня, медведь”
 +
* Медведь получает  “Не ешь меня, медведь” и уходит (прячется)
  
 +
Вся наша история определяется  только числом  шагов Колобка. Сделал Колобок 10 шагов пришел Заяц. Сделал 100 шагов - пришел Медведь. Мы можем заранее прописать сообщения для всех предполагаемых персонажей сказки и организовать появление персонажей, через рассылку им сообщений:
 +
 +
Еще один важный момент. Если мы прописали команды поведения спрайта Медведь, то нам не нужно заново прописывать поведения Зайца, который ведет себя подобно Медведю и только реагирует на обращение не к Медведю, а к Зайцу. Мы берем блоки команд из спрайта Медведь и перетаскиваем (копируем) их в Зайца.
 +
 +
http://letopisi.org/images/1/15/Copy_spript.png
 +
 +
И в спрайте Зайца изменяем команду с Приходи медведь, на Приходи, Заяц
 +
 +
http://letopisi.org/images/5/5e/Change_message.png
 +
 +
 +
Подробности переговоров Колобка, Зайца и Медведя можно посмотреть в проекте https://scratch.mit.edu/projects/212219937
 +
 +
Участниками переговоров могут быть не только спрайты Колобка, Зайца и Медведя, но и спрайт Сцена. Мы можем для каждого героя определить внешний вид фона - нарисовать или взять из библиотеки готовых фонов.
 +
 +
http://letopisi.org/images/4/47/Fons_kolobok.png
 +
|Code=; Скрипты, управляющие поведением медведя:
 +
 +
<scratchblocks>
 +
когда я получу [Приходи, медведь v]
 +
перейти в x: (0) y: (0)
 +
показаться
 +
сказать [Колобок, я тебя съем]
 +
передать [Колобок, я, медведь, тебя съем! v]
 +
 +
когда я получу [Не ешь меня, медведь v]
 +
перейти в x: (240) y: (160)
 +
спрятаться
 +
</scratchblocks>
 +
 +
; Скрипт, управляющий ответом Колобка:
 +
 +
<scratchblocks>
 +
когда щёлкнут по зелёному флагу
 +
задать [Шаги Колобка v] значение [0]
 +
всегда
 +
  если <[ 10 ] = (Шаги Колобка)> , то
 +
    передать [Приходи, заяц v] и ждать
 +
  end
 +
  если <[100] = (Шаги Колобка)> , то
 +
    передать [Приходи, медведь v] и ждать
 +
  end
 +
end
 +
 +
когда я получу [Колобок, я, медведь, тебя съем! v]
 +
говорить (слить (слить [Я от дедушки ушел, я от бабушки ушел и от тебя  ] и [медведь]) и [ уйду!]) в течение (5) секунд
 +
передать [Не ешь меня, медведь v]
 +
 +
когда я получу [Колобок, я, заяц, тебя съем! v]
 +
говорить (слить (слить [Я от дедушки ушел, я от бабушки ушел и от тебя  ] и [Заяц]) и [ уйду!]) в течение (5) секунд
 +
передать [Не ешь меня, заяц v]
 +
 +
</scratchblocks>
 +
 +
; Обмен сообщениями
 +
 +
<scratchblocks>
 +
 +
когда щёлкнут по зелёному флагу
 +
сменить фон на [Начало v]
 +
 +
когда я получу [Приходи, заяц v]
 +
сменить фон на [Заяц v]
 +
 +
когда я получу [Приходи, медведь v]
 +
сменить фон на [Начало v]
 +
 +
</scratchblocks>
 +
|url_example=https://scratch.mit.edu/studios/4819703/
 +
|similar_practices=Организовать взаимодействие пород агентов
 +
}}
 
[[Категория:WikiHow]]
 
[[Категория:WikiHow]]

Версия 15:40, 13 сентября 2019

Name Организовать взаимодействие персонажей
Описание проблемы В искусственном мире есть несколько акторов-персонажей и мы хотим, чтобы они взаимодействовали между собой
Среда Scratch
Предлагаемое решение Каждый персонаж, который создали участники нашей команды, в начале истории будет прятаться и вставать в угол, где он колобка не учует. Появляться зверь этот зверь будет только тогда, когда его позовут - т.е. когда он получит сообщение. Например, медведь будет реагировать на сообщение “Приходи, медведь”.

Общая схема обмена сообщениями выглядит следующим образом:

  • Колобок делает 10 шагов и посылает сообщение “Приходи, Медведь”
  • Медведь получает это сообщение, приходит и посылает сообщение “Колобок, я, медведь, тебя съем”
  • Колобок получает сообщение “Колобок, я, медведь, тебя съем”
  • и в ответ посылает сообщение “Не ешь меня, медведь”
  • Медведь получает “Не ешь меня, медведь” и уходит (прячется)

Вся наша история определяется только числом шагов Колобка. Сделал Колобок 10 шагов пришел Заяц. Сделал 100 шагов - пришел Медведь. Мы можем заранее прописать сообщения для всех предполагаемых персонажей сказки и организовать появление персонажей, через рассылку им сообщений:

Еще один важный момент. Если мы прописали команды поведения спрайта Медведь, то нам не нужно заново прописывать поведения Зайца, который ведет себя подобно Медведю и только реагирует на обращение не к Медведю, а к Зайцу. Мы берем блоки команд из спрайта Медведь и перетаскиваем (копируем) их в Зайца.

Copy_spript.png

И в спрайте Зайца изменяем команду с Приходи медведь, на Приходи, Заяц

Change_message.png


Подробности переговоров Колобка, Зайца и Медведя можно посмотреть в проекте https://scratch.mit.edu/projects/212219937

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

Fons_kolobok.png

Пример кода
; Скрипты, управляющие поведением медведя:

'"`UNIQ--scratchblocks-00000000-QINU`"'

; Скрипт, управляющий ответом Колобка:

'"`UNIQ--scratchblocks-00000001-QINU`"'

; Обмен сообщениями

'"`UNIQ--scratchblocks-00000002-QINU`"'
Адрес примера https://scratch.mit.edu/studios/4819703/
Стандарты
сходные практики Организовать взаимодействие пород агентов
Ключевые понятия
FieldActivity