Discuss Scratch

_galochka_
Scratcher
37 posts

Сделать поиск предметов в игре

Подскажите, как можно сделать чтобы можно было искать предметы как в играх жанра поиска предметов, т.е. в моем представлении, нашел 5 спрайтов на красивом фоне, один наше - нажал исчез, второй - нашел исчез т.д. Вопрос стоит в том, как сделать чтобы окончание игры было после того как найдутся 5 спрайтов и независимо от того какой будет нажат последний? Спасибо всем за ваши ответы.
timkoi
Scratcher
100+ posts

Сделать поиск предметов в игре

_galochka_ wrote:

Подскажите, как можно сделать чтобы можно было искать предметы как в играх жанра поиска предметов, т.е. в моем представлении, нашел 5 спрайтов на красивом фоне, один наше - нажал исчез, второй - нашел исчез т.д. Вопрос стоит в том, как сделать чтобы окончание игры было после того как найдутся 5 спрайтов и независимо от того какой будет нажат последний? Спасибо всем за ваши ответы.
Создаем переменную “спрайтов осталось” (без кавычек), наши 5 спрайтов и еще один спрайт с названием “конец игры”.
В спрайт с названием “конец игры” добавить скрипт:
when green flag clicked
задать [спрайтов осталось v] значение [5] ::variables stack
ждать до <(спрайтов осталось) = [0]> ::control stack
передать [конец игры v] ::control stack
К каждому из 5 спрайтов добавим скрипт:
когда спрайт нажат ::control hat
изменить [спрайтов осталось v] на (-1) ::variables stack
спрятаться ::looks stack
Надеюсь поможет!
_galochka_
Scratcher
37 posts

Сделать поиск предметов в игре

timkoi wrote:

_galochka_ wrote:

Подскажите, как можно сделать чтобы можно было искать предметы как в играх жанра поиска предметов, т.е. в моем представлении, нашел 5 спрайтов на красивом фоне, один наше - нажал исчез, второй - нашел исчез т.д. Вопрос стоит в том, как сделать чтобы окончание игры было после того как найдутся 5 спрайтов и независимо от того какой будет нажат последний? Спасибо всем за ваши ответы.
Создаем переменную “спрайтов осталось” (без кавычек), наши 5 спрайтов и еще один спрайт с названием “конец игры”.
В спрайт с названием “конец игры” добавить скрипт:
when green flag clicked
задать [спрайтов осталось v] значение [5] ::variables stack
ждать до <(спрайтов осталось) = [0]> ::control stack
передать [конец игры v] ::control stack
К каждому из 5 спрайтов добавим скрипт:
когда спрайт нажат ::control hat
изменить [спрайтов осталось v] на (-1) ::variables stack
спрятаться ::looks stack
Надеюсь поможет!
Спасибо за ответ)) Как сделаю отпишусь
maximngy
Scratcher
100+ posts

Сделать поиск предметов в игре

Помоему легче использовать масивы.
maximngy
Scratcher
100+ posts

Сделать поиск предметов в игре

maximngy wrote:

Помоему легче использовать масивы.
(Списки)
timkoi
Scratcher
100+ posts

Сделать поиск предметов в игре

maximngy wrote:

maximngy wrote:

Помоему легче использовать масивы.
(Списки)
Ну, можно и так:
when green flag clicked
добавить [кастрюля] к [предметы v] ::list stack
добавить [коробка] к [предметы v] ::list stack
добавить [картина] к [предметы v] ::list stack
добавить [половник] к [предметы v] ::list stack // Здесь могут быть и другие предметы.
добавить [что-то еще] к [предметы v] ::list stack
ждать до <(длина списка [предметы v]) = [0]> ::control stack // Не получается покрасить этот блок в нужный цвет. :(
передать [конец игры v] ::control stack
P.S. Для спрайтов забыл скрипт написать:
когда спрайт нажат ::control hat
задать [найден v] значение [0] ::variables stack
задать [элемент в списке v] значение [0] ::variables stack
повторять пока не <(найден) = [1]> ::control cstart
изменить [элемент в списке v] на (1) ::variables stack
если <(элемент (элемент в списке) из [предметы v]) = [кастрюля]> , то ::control cstart // Допустим весь этот скрипт для спрайта кастрюли
задать [найден v] значение [1] ::variables stack
спрятаться ::looks stack
стоп [этот скрипт v] ::control stack
end
end
И так для каждого спрайта предмета, только в место кастрюли у вас будет что-то другое.

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

Last edited by timkoi (Nov. 28, 2015 12:50:18)

_galochka_
Scratcher
37 posts

Сделать поиск предметов в игре

timkoi wrote:

maximngy wrote:

maximngy wrote:

Помоему легче использовать масивы.
(Списки)
Ну, можно и так:
when green flag clicked
добавить [кастрюля] к [предметы v] ::list stack
добавить [коробка] к [предметы v] ::list stack
добавить [картина] к [предметы v] ::list stack
добавить [половник] к [предметы v] ::list stack // Здесь могут быть и другие предметы.
добавить [что-то еще] к [предметы v] ::list stack
ждать до <(длина списка [предметы v]) = [0]> ::control stack // Не получается покрасить этот блок в нужный цвет. :(
передать [конец игры v] ::control stack
P.S. Для спрайтов забыл скрипт написать:
когда спрайт нажат ::control hat
задать [найден v] значение [0] ::variables stack
задать [элемент в списке v] значение [0] ::variables stack
повторять пока не <(найден) = [1]> ::control cstart
изменить [элемент в списке v] на (1) ::variables stack
если <(элемент (элемент в списке) из [предметы v]) = [кастрюля]> , то ::control cstart // Допустим весь этот скрипт для спрайта кастрюли
задать [найден v] значение [1] ::variables stack
спрятаться ::looks stack
стоп [этот скрипт v] ::control stack
end
end
И так для каждого спрайта предмета, только в место кастрюли у вас будет что-то другое.

Тоже неплохой вариант. Хотя, если предметы будут все время меняться, то лучше использовать переменные.
Спасибо))) Использовала первый вариант. Он оказался для меня легким. Вот конечная работа https://scratch-mit-edu.ezproxyberklee.flo.org/projects/88225794/

Powered by DjangoBB