не понял. надписи на скрине красные, а в уроке предлагается делать зеленые... цитата из урока:
-Name (название объекта), все названия, имена используемые движком пишем на английском, проще нам и машине. Назовём наш ПУ console (от англ. пульт оператора).
-Caption (надпись которую мы будем видеть на экране) пишем “ПУ”, что то в этом роде, это не важно.
-Сursor (как будет выглядеть наш курсор, когда мы наведём его на наш объект) ищем курсор look-смотреть, в нашем варианте путь sprites\system\Look.sprite
-Font (шрифт самой надписи) пускай, надписи будут зелёные, путь fonts\comic_green.font, вы можете использовать любой другой шрифт.
Добавлено (18.02.2010, 16:33)
---------------------------------------------
еще поправка к уроку о диалогах:
if(Selected==0)
{
this.Talk("Подумай.");
}
else if(Selected==1)
{
this.Talk("Хорошо ");
Loop = false; - думаю, что есть смысл добавить эту строку, тогда после правильного ответа выходишь из диалога.
}
else if(Selected==2)
{
this.Talk("Подумай.");
}
else if(Selected==3) Loop = false;
}
Добавлено (19.02.2010, 12:52)
---------------------------------------------
Прошел урок о первой мини-игре. здорово сделано, отлично написано!
есть несколько мыслей по поводу.
у меня возникла такая ситуация: скальпель и картину целиком видно из сцены "комната". скальпель исчезает и картина меняется только на сценах "стол" и "картина" соответственно. в сцене "комната" все остается по прежнему.
Возможно ли взять предмет на одной сцене, а он исчезнет на нескольких?
на счет открывания двери предлагаю вариант:
- ключ используется на замочную скважину.
- слышен звук поворота ключа
- после этого можно попасть на следующую сцену нажимая ЛКМ на дверь.
или же после первого прохода двери сделать так, что во второй раз удастся войти без ключа.
я стал об этом думать потому что если возникнет необходимость вернуться на первую сцену, то открыть дверь можно будет только с помощью ключа.
еще такой вопрос: как отобразить реплики актера если он отсутствует в сцене?
нашел ошибку: скрипт, который присваивается скальпелю в папке "items", называется "key" - запарка по ходу)))
Добавлено (27.02.2010, 10:17)
---------------------------------------------
итак. поправки к картине и двери.
в base.inc добавил: global chekker;
в первой сцене (room) такие изменения:
картины на стене нет. она потом подгружается как "Entity". хотя, в принципе это можно реализовать через объекты в самой сцене (так же как в сцене "picture").
создал для сц "room" 2 Entity: порезаная и не порезаная картина.
в scene_init.script в начале добавил:
// подгружаю порезаную и непорезаную карту
global map = Scene.LoadEntity("entities\map\map.entity"); // может прокатило бы и через "var" :-)
map.SkipTo(0, 0); // у меня размер спрайта с картой как разрешение игры - 1024х768, поэтому такие координаты
map.Active = true;
global map_cut = Scene.LoadEntity("entities\map_cut\map_cut.entity");
map_cut.SkipTo(0, 0);
map_cut.Active = true;
// проверяю равна ли переменная chekker единице. если да, то непорезаная карта скрывается
if (chekker == 1)
{
map.Active = false;
}
// дальше - как обычно: координаты появления актера, состояние сцены.
можно подругому: при объявлении отобразить только непорезаную карту, а при проверке условия скрыть ее и отобразить порезаную.
во второй сцене (picture) скрипт, присвоеный объекту "picture" выглядит так:
#include "scripts\base.inc"
on "knife"
{
var tmp1;
var tmp2;
tmp1 = Scene.GetNode("pic");
tmp2 = Scene.GetNode("pic_cut");
tmp2.Active = true;
tmp1.Active = false;
Game.PlaySound("sounds\bumaga.wav"); //звук рвущейся бумаги
Game.DropItem("knife"); //после использования скальпель пропадает
chekker = 1;
}
подобным образом можно решить проблему с открытием двери ключем:
скрипт пришитый к объекту "дверь":
#include "scripts\base.inc"
on "LeftClick"
{
if (chekker != 2)
{
actor.GoToObject(this);
actor.Talk("Закрыто на ключ");
}
if (chekker == 2)
{
actor.GoToObject(this);
Game.ChangeScene("scenes\Zal_exit\Zal_exit.scene");
}
}
on "key" // можно сделать, чтоб здесь создавался только звук поворота ключа
{
actor.GoToObject(this); //переход на следующую сцену
Game.ChangeScene("scenes\Zal_exit\Zal_exit.scene");
Game.DropItem("key"); //после использования ключ пропадает
chekker = 2;
}
эту технику можно во многих ситуациях применять
Добавлено (15.03.2010, 16:17)
---------------------------------------------
по поводу вышесказаного:
что бы не создавать несколько переменных можно все делать через одну:
global chekker //объявили переменную
далее так:
chekker.map = 1
chekker.door = 1
таким образом в одну переменную можно влепить иформацию о состоянии нескольких объектов.
***************************************
теперь по поводу 2й мини-игры:
возможна такая вариация:
on "klei" //используем клей на две половинки
{
Game.TakeItem("rub");
Game.DropItem("klei");
Game.DropItem("rub1-2");
}
таким образом целая купюра появляется не на столе а в сразу инвентаре.
Добавлено (26.03.2010, 09:36)
---------------------------------------------
Molier, способ комбинирования предметов (так что б они появлялись в сцене) работает только если не переходить на другую сцену (хотя такой вариант все же может быть полезен).
Надо либо доработать этот способ либо использовать вышеуказаный скрипт.