MOLIER ART STUDIO
Пятница, 26.04.2024, 04:31
Приветствую Вас Гость | RSS
 
Главная Появление спрайтов - ФорумРегистрацияВход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум » Wintermute Engine » Работа со сценой / Scenes » Появление спрайтов
Появление спрайтов
KrosadДата: Понедельник, 03.01.2011, 22:14 | Сообщение # 1
Группа: Проверенные
Сообщений: 55
Награды: 1
Репутация: 8
Статус: Offline
Награды
Как сделать, чтобы при нажатии на обьект, на сцене появлялся спрайт, и когда нажать на этот спрайт левой кнопкой, то он ищезал?

п.с. И еще, когда я совмещаю два несовместимые обьекты, то появляется текст "кент юз зис тинс тугезе". Где это прописано? Я хочу это поменять на звук.


www.anatestudio.com

Сообщение отредактировал Krosad - Понедельник, 03.01.2011, 22:16
 
AmneziAДата: Понедельник, 03.01.2011, 23:16 | Сообщение # 2
Группа: Модераторы
Сообщений: 355
Награды: 3
Репутация: 15
Статус: Offline
Награды
За хорошую репутацию +10 За 100 Сообщений За 200 Сообщений За 300 Сообщений
если я тебя правильно понял, то здесь нужно под обработчик левого клика посадить нужное событие. а сам обработчик прописать в скрипте объекта:

on "LeftClick"
{
var tmp1 = Scene.GetNode("название объекта");
tmp1.Active = true; //объект появляется
}

/////////////////

on "LeftClick"
{
var tmp1 = Scene.GetNode("название объекта");
tmp1.Active = false; //объект исчезает
}

на счет второго вопроса:

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

пиши, если возникнут трудности


Мой канал о моделизме: https://goo.gl/LgXUK9

На изломе неба
Был рожден наш мир.
Создавая землю, Первый,
Врядли ведал что творил...


Сообщение отредактировал AmneziA - Понедельник, 03.01.2011, 23:17
 
KrosadДата: Вторник, 04.01.2011, 10:35 | Сообщение # 3
Группа: Проверенные
Сообщений: 55
Награды: 1
Репутация: 8
Статус: Offline
Награды
Все сделал. Не получается.

гейм_луп.скрипт

#include "scripts\base.inc"

// this script runs in an endless loop and does all the user-interface work
// that needs to be periodically updated
// such as the floating items captions display and positioning
// and the sliding inventory window handling

global WinCaption;
global WinMenu;

// infinite loop
while(true){

// save the active object for later
var ActObj = Game.ActiveObject;

// handle the standard foating caption
if(Game.Interactive && ActObj!=null)
{
if (Game.SelectedItem==null)
{
WinCaption.X = Game.MouseX;
WinCaption.Y = Game.MouseY + 20;
WinCaption.TextAlign = TAL_LEFT;
WinCaption.Text = ActObj.Caption;

// keep the caption on screen
WinCaption.SizeToFit();
if(WinCaption.X + WinCaption.Width > Game.ScreenWidth) WinCaption.X = Game.ScreenWidth - WinCaption.Width;
if(WinCaption.Y + WinCaption.Height > Game.ScreenHeight) WinCaption.Y = Game.ScreenHeight - WinCaption.Height;
}
// handle the caption when you want to use an object with another
else {
var Item = Game.SelectedItem;

WinCaption.X = 0;
WinCaption.Y = 580;
WinCaption.Width = Game.ScreenWidth;
WinCaption.TextAlign = TAL_CENTER;
WinCaption.Text = "Use " + Item.Caption + " with " + ActObj.Caption;
}
WinCaption.Visible = true;
WinCaption.Focus();
}
else WinCaption.Visible = false;

// display the inventory window
if(Game.Interactive && Game.MouseY < 45 && !Game.ResponsesVisible && !WinMenu.Visible) Game.InventoryVisible = true;
else if(Game.MouseY > 100 || Game.ResponsesVisible || !Game.Interactive) Game.InventoryVisible = false;

// go to sleep for 20 miliseconds to allow the engine to perform other tasks
// it is important for the "endless" scripts to call the Sleep command, otherwise the game will get stuck
Sleep(20);
}

не вижу сдесь нужную строку.

Добавлено (04.01.2011, 10:35)
---------------------------------------------
Сделал немного по другому. Прописал на обьекте

on "LeftClick"
{
var tmp1 = Scene.CreateEntity("think");
tmp1.SetSprite("sprites\think.bmp");
tmp1.Active = true;
}

но теперь не знаю, где прописывать tmp1.Active = false.


www.anatestudio.com
 
AmneziAДата: Вторник, 04.01.2011, 19:10 | Сообщение # 4
Группа: Модераторы
Сообщений: 355
Награды: 3
Репутация: 15
Статус: Offline
Награды
За хорошую репутацию +10 За 100 Сообщений За 200 Сообщений За 300 Сообщений
вот эта строка:
WinCaption.Text = "Use " + Item.Caption + " with " + ActObj.Caption;

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

on "LeftClick"
{
this.Active = false;
}

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


Мой канал о моделизме: https://goo.gl/LgXUK9

На изломе неба
Был рожден наш мир.
Создавая землю, Первый,
Врядли ведал что творил...
 
KrosadДата: Среда, 05.01.2011, 13:06 | Сообщение # 5
Группа: Проверенные
Сообщений: 55
Награды: 1
Репутация: 8
Статус: Offline
Награды
Спрайт не представлен отдельнім обьектом. Он создается в скрипте другого обьекта.

п.с. "Use " + Item.Caption + " with " + ActObj.Caption; это типа "использовать" что-то "с" чем-то. Я ищу "Cant use this thinks together".


www.anatestudio.com
 
AmneziAДата: Среда, 05.01.2011, 21:34 | Сообщение # 6
Группа: Модераторы
Сообщений: 355
Награды: 3
Репутация: 15
Статус: Offline
Награды
За хорошую репутацию +10 За 100 Сообщений За 200 Сообщений За 300 Сообщений
что-то совсем запутался со спрайтами))) проверю на движке - отпишусь

сорри, тупанул со вторым вопросом)) тебе нужен гейм.скрипт. в нем 58я строка. это под обработчиком ЛКМ. default-use не трогай. это в другом месте можно исправить (интерфейс -> меню -> меню.скрипт)

вот этот блок:

Code
var Item = Game.SelectedItem;
        if(ActObj.CanHandleEvent(Item.Name)) ActObj.ApplyEvent(Item.Name);
        else if(Item.CanHandleEvent("default-use")) Item.ApplyEvent("default-use");
        else if(ActObj.CanHandleEvent("default-use")) ActObj.ApplyEvent("default-use");
        else actor.Talk("Так ничего не получится");


Мой канал о моделизме: https://goo.gl/LgXUK9

На изломе неба
Был рожден наш мир.
Создавая землю, Первый,
Врядли ведал что творил...


Сообщение отредактировал AmneziA - Среда, 05.01.2011, 22:05
 
KrosadДата: Среда, 05.01.2011, 23:10 | Сообщение # 7
Группа: Проверенные
Сообщений: 55
Награды: 1
Репутация: 8
Статус: Offline
Награды
Нашел, благодарю)

www.anatestudio.com

Сообщение отредактировал Krosad - Среда, 05.01.2011, 23:12
 
AmneziAДата: Четверг, 06.01.2011, 00:38 | Сообщение # 8
Группа: Модераторы
Сообщений: 355
Награды: 3
Репутация: 15
Статус: Offline
Награды
За хорошую репутацию +10 За 100 Сообщений За 200 Сообщений За 300 Сообщений
еще одна попытка разобраться в ситуации:

сцена:
есть 1-й объект сцены - бутылка (sprite entity или region entity), называется bottle. изначально отображен.
есть 2-й объект сцены - призрак (sprite entity), называется ghost. изначально скрыт.

скрипт для bottle:

Code
#include "scripts\base.inc"

on "LeftClick"
{
    var gh1 = Scene.GetNode("bottle");
    var gh2 = Scene.GetNode("ghost");
    gh1.Active = false;
    gh2.Active = true;
}

скрипт для ghost:

Code
#include "scripts\base.inc"

on "LeftClick"
{
var gh1 = Scene.GetNode("bottle");
var gh2 = Scene.GetNode("ghost");
gh2.Active = false;
gh1.Active = true;
}

действие: нажимаем на бутылку - появляется джин. нажимаем на джина - он пропадает, опять можно нажать на бутылку.

такая была задача? или я опять чего-то не понимаю...


Мой канал о моделизме: https://goo.gl/LgXUK9

На изломе неба
Был рожден наш мир.
Создавая землю, Первый,
Врядли ведал что творил...


Сообщение отредактировал AmneziA - Четверг, 06.01.2011, 00:39
 
KrosadДата: Четверг, 06.01.2011, 14:44 | Сообщение # 9
Группа: Проверенные
Сообщений: 55
Награды: 1
Репутация: 8
Статус: Offline
Награды
все верно, только как сделать чтобы призрак был изначально скрыт?

www.anatestudio.com
 
AmneziAДата: Четверг, 06.01.2011, 17:53 | Сообщение # 10
Группа: Модераторы
Сообщений: 355
Награды: 3
Репутация: 15
Статус: Offline
Награды
За хорошую репутацию +10 За 100 Сообщений За 200 Сообщений За 300 Сообщений
так вот в чем дело!)) это в редакторе сцены нужно рядом с элементом галочку убрать

Мой канал о моделизме: https://goo.gl/LgXUK9

На изломе неба
Был рожден наш мир.
Создавая землю, Первый,
Врядли ведал что творил...
 
Форум » Wintermute Engine » Работа со сценой / Scenes » Появление спрайтов
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright MyCorp © 2024
!!! На сайте могут находиться статьи, которые, честно и не помню, откуда они у меня появились, одним словом нет информации о первоисточнике и авторе, если на них наткнётся автор, просьба к нему написать мне, чтобы я смог поставить ссылку на источник. !!!