С чего начать.
Для того, чтобы сделать такую вот кликабельную картинку, нужно в первую очередь создать два изображения. Одно из них будет основным, а второе - как бы изнанкой. Оно будет проявляться только при наведении на него. Там мы можем сделать подписи, подсветку и прочее на ваше усмотрение. Например, у меня таким образом сделаны стрелочки. Наверное, вы обратили внимание, что когда на них наводишь, то появляется текст, куда это ведёт.
Вот, например, две картинки - основа и изнанка:
Первая картинка в игре называется "find begin.jpg", а вторая "find begin_map.jpg"
И теперь самое интересное, как это реализовано в скрипте:
# помечены комментарии-пояснения
label click:
# Все эти цифры в конструкции - координаты.
# Координаты хотспотов - невидимых активных зон -
# икс-игрек левой верхней точки прямоугольника,
# затем икс-игрек правой ниженй - всего 4 цифры.
# При наведении мыши на хотспот "просвечивает" второй фон,
# причем только та часть, которая ограничена координатами.
# Так можно сделать предметы, "оживающие" под курсором мыши.
# После координат задаем метку, на которую будем переходить по клику на хотспот.
# Координаты в пикселях удобнее смотрять прямо в фотошопе.
# Сначала получаем результат клика -
$ result = renpy.imagemap("find begin.jpg", "find begin_map.jpg", [
(0, 0, 112, 91, "help"),
(13, 274, 120, 346, "home"),
(643, 497, 765, 580, "karusel"),
(674, 275, 790, 357, "pravo"),
(650, 152, 740, 245, "river"),
(300, 283, 430, 409, "cat"),
(66, 116, 738, 126, "volga")
])
# Внимание - не теряй нужные закрывающие скобки!
# Теперь проверяем получившися результат и переходим -
if result == "home":
if yes:
play sound "begin5.mp3"
#"Скоро я уже буду дома! Вот она обрадуется!"
"I'll soon be home! She would be so happy!"
jump home
else:
play sound "begin6.mp3"
#"Пойду домой."
"Let's go home."
jump home
elif result == "pravo":
play sound "begin7.mp3"
#"Пойду вперед!"
"Let's go forward!"
jump img
elif result == "karusel":
play sound "begin8.mp3"
#"Пойду к каруселям."
"Let's go to the carousels."
jump attr
elif result == "river":
play sound "begin9.mp3"
#"Пойду к речке!"
"Let's go to the river."
$ wwerh = True
jump river
elif result == "cat":
if yes:
play sound "homeA.mp3"
#"В какую сторону домой?"
"Which way leads back to my home?"
else:
play sound "gdeIskat.mp3"
"Where should I search?"
#"Где же искать?"
jump click
elif result == "volga":
play sound "begin10.mp3"
#"Это река - Волга"
"This river is called the Volga."
jump click
elif result == "help":
call menuuu
jump click
Для отлавливания нужных областей можно использовать также пейнт. Ну, в любом случае основная сложность этого способа в том, что если областей много, то занятие вылавливания каждой точки весьма утомительно. Ну, ничего не поделаешь, нужно набраться терпения.
Для как каждой области задаем метку. Допустим, мы кликнули на область, огороженную х1=650, y1=152, x2=740,y2= 245, что соответствует метке "river".
В результате у нас подсвечивается область с подписью "к речке" из изображения find begin_map.jpg и будет выполняться часть скрипта, идущая после elif result == "river":
И так я для каждого варианта задала свою метку, а потом в зависимости от этого переходим в нужное место и там же совершаем нужное нам действие. В данном случае мы выводим текст на экран, а также озвучку, и переходим на другую локацию с речкой.
А если нажимаем на котёнка, то идёт фраза "Где же искать?" и возвращаемся к нашей первой метке click:, то есть на начало. И можем дальше сколько хочется кликать.
Заключение.
Эта игра про котёнка сейчас проходит гринлайт, и вы можете поддержать её по этой ссылке: http://steamcommunity.com/sharedfiles/filedetails/?id=865351...
Спасибо вам и приятных выходных!