Обсуждение:Хакатон/Сочиняем сказки

Материал из Letopisi.Ru — «Время вернуться домой»
Перейти к: навигация, поиск

Материалы, которые не удалось использовать

Содержание

 [убрать

Организуем переход персонажа из одного фона в другой

И тут у нас появляются Переменная -

background

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

Collabok14 fon.png

Поскольку у нас Колобок путешественник, то мы хотим, чтобы он перемещался по лесу и мир вокруг него изменялся бы.

Вариант 1
Есть описание проекта, в котором персонаж переходит из одного фона в другой. См. Скретч-квест

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

повернутьвнаправлении180
идти1шагов
, вверх, вправо и влево. Scratch/Как передвигать спрайт клавишами.

А вот мир вокруг Колобка устроен сложнее, он должен помнить откуда идет Колобок и куда он должен попасть при соприкосновении с экраном.
Как только Колобок касается экрана, он посылает миру сигнал -

передатьChange place
В ответ на этот сигнал среда начинает анализировать положение (направление) кошки и фон, на котором она находится.
В зависимости от того, куда смотрит Колобок и из какой комнаты она пришел, программа предлагает колобку новые изображения

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

когдаяполучуИзменить местоизменитьbackgroundна1сменитьфоннаbackground
Вариант 2
У нас в студии уже есть готовый проект, в котором фон умеет реагировать на движение персонажа и если персонаж подходит к краю экрана, то фон меняется. См. проект Переход

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

Collabok15 fon.png



Организуем взаимодействие персонажей

У нас есть 2 персонажа. Например, Колобок и Медведь.

  • При встрече Медведь говорит "Колобок, колобок, я тебя съем ..."
  • А Колобок ему отвечает

Существует множество вариантов организовать взаимодействие персонажей.

Вариант 1 (выглядит как взаимодействие)
Сказка начинается и через 2 секунды Медведь говорит "Колобок, колобок, я тебя съем ..."
а через 3 секунды Колобок говорит "Не ешь меня, Медведь"

Выглядит так, как будто они взаимодействуют, хотя на самом деле взаимодействия нет

Вариант 2
  • есликасаетсяцвета?,то
    - если медведя коснется колобок коснется какого-то определенного цвета
  • есликасаетсяsprite1?,то
    если касаюсь спрайта Колобка

В этом случае взаимодействие есть - медведь реагирует на присутствие колобка - тот его коснулся и медведь отвечает.

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



Collabok 20 generator.png

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

Collabok 21 generator.png

Правила форматирования и описания блоков представлены в статье ScratchBlockPlugin - как правильно форматировать блоки скретч кода на страницах.



Сцена

В сцене заложено несколько фонов, которые можно менять. Фоны пронумерованы.

когдащелкнутпосменитьфонна1когдаяполучуchange place Когда поступает сигнал о перемене местаизменитьbackgroundна1 изменяем значение переменнойсменитьфоннаbackground подставляем фон, имя которого = значение переменнойкогдаяполучуКолобок погибает! После гибели колобка возвращаем сцену в начальное положениесменитьфонна1

Управляемый персонаж (Колобок)

когдащелкнутпоустановитьразмер100 %показатьсяперейтивx:-180y:100говоритьЯ Колобок!втечение2секундзадатьbackgroundзначение1когдаклавишастрелка вправонажатаповернутьвнаправлении90следующийкостюмmove10stepsкогдащелкнутповсегдаNewRoom определитьNewRoomеслиtouchingedge ?,топередатьchange placeиждатьsetxto0-xpositionидти40шаговкогдаяполучуКолобок погибает!перейтивx:0y:0sayМеня съела лиса!for2secsgotoЗвериповторить10changesizeby-5wait0.1secsспрятатьсяstopall

Персонажи, которых встречает колобок

когдащелкнутпоswitchcostumetoкостюм1когдаяполучуchange place Получив сообщение, что колобок перешел в следующий фон следующийкостюмАгент надевает шкуру следующего зверясказатьслитьПривет, колобок! ислитьслитьЯ, иэлементbackground+1ofЗвери и я тебя съемеслиcostume#=5,тоговоритьслитьПривет, колобок! ислитьслитьЯ, иэлементbackground+1ofЗвери и я тебя съемвтечение2секундпередатьКолобок погибает!
Персональные инструменты
Инструменты