Цель урока , перед нами ящик , который заколочен гвоздями, с помощью гвоздодера извлекаем гвозди, открываем крышку и берем из ящика книгу (или любой другой предмет).
И так приступим. Создаем новую сцену назовем ее Box, Меняем background на нашу картинку с открытым ящиком.
Теперь добавим крышку top
и заколачиваем её гвоздями nail1_1, nail2_1, nail3_1 и nail4_1
В принципе начальная сцена готова, приступим
в scene_init.script убираем актера
actor.Active = false;
Теперь нам необходим гвоздодер, назовем его lom
Заходим в папку items и в items.items добавляем наш lom
ITEM { CURSOR_COMBINED = TRUE CAPTION = "Гвоздодер" NAME = "lom" IMAGE = "items\lom_item.png" CURSOR = "items\lom.png" CURSOR_HOVER = "items\lom.png" SPRITE_HOVER = "items\lom.png" SCRIPT = "items\lom.script" }
тек же пишем скрипт lom.script
#include "scripts\base.inc"
/////////////////// on "LookAt" { actor.Talk("udjpljlth"); }
//////////////// on "Take" { Game.SelectedItem = "lom"; }
Чтобы наш lom появился сразу в инвентаре, добавляем строку в scene_init.script
Game.TakeItem("lom");
Теперь можно проверить результат
все работает, идем дальше. Так как наши гвозди не сразу будут вытащены, а постепенно, по чуть-чуть, добавляем в нашу сцену остальные гвозди, nail2 и nail3
должно получится примерно так
наводим порядок прячем наши гвозди с окончанием _2 и _3, убираем галочки
Продолжаем работу со скриптами , для nail1_1 пишем
#include "scripts\base.inc"
on "lom" { var tmp1 = Scene.GetNode("nail1_1"); var tmp2 = Scene.GetNode("nail1_2"); tmp1.Active = false; tmp2.Active = true; }
далее для nail1_2 пишем
#include "scripts\base.inc"
on "lom" { var tmp1 = Scene.GetNode("nail1_2"); var tmp2 = Scene.GetNode("nail1_3"); tmp1.Active = false; tmp2.Active = true; }
и для nail1_3 пишем
#include "scripts\base.inc"
on "lom" { var tmp1 = Scene.GetNode("nail1_3"); var tmp2 = Scene.GetNode("nail1"); tmp1.Active = false; tmp2.Active = true; }
Теперь добавим в сцену nail1, целый гвоздь и положим его возле ящика
и прячем его убираем галочку
проверим, работает, движемся дальше.
Пишем все то же самое для оставшихся гвоздей. Осталось снять крышку, выбираем наш top и пишем
#include "scripts\base.inc"
var tmp1 = Scene.GetNode("nail1"); var tmp2 = Scene.GetNode("nail2"); var tmp3 = Scene.GetNode("nail3"); var tmp4 = Scene.GetNode("nail4");
on "LeftClick" { if(tmp1.Active == true) if(tmp2.Active == true) if(tmp3.Active == true) if(tmp4.Active == true) { var tmp5 = Scene.GetNode("top"); tmp5.Active = false; } }
Осталось положить книгу в ящик, в PhotoShop подгоняем книгу под нашу сцену и размещаем в ящике и делаем невидимой
в top добавляем
var tmp6 = Scene.GetNode("book"); tmp6.Active = true;
Пишем для book скрипт
#include "scripts\base.inc"
on "LeftClick" { Game.TakeItem("book"); this.Active = false; }
не забывает про items.items добавляем
ITEM { CURSOR_COMBINED = TRUE CAPTION = "Старая книга" NAME = "book" IMAGE = "items\book_item.png" CURSOR = "items\book_item.png" CURSOR_HOVER = "items\book_item.png" SPRITE_HOVER = "items\book_item.png" SCRIPT = "items\book.script" }
Ну, вот наверное и все Отдельное спасибо AmneziA, за помощь в создании урока.
ПЕРЕЙТИ НА ФОРУМ ДЛЯ ОБСУЖДЕНИЯ И ДОПОЛНЕНИЯ УРОКА
|