Как добавить анимерованые 3d обьекты часть I
Вы наверное видели всякие открывающиеся там блокноты и ноутбуки в игре так вот как их добывить и использовать.
Добавляем анимированый блокнот.
Я не коментировал те строки которые уже описывались ранее
Создаём фаил description.ext и в нем пишем:
#define FontM "tahomaB36"
#define FontHTML "CourierNewB64"
#define ST_HPOS 0x0F
#define ST_LEFT 0
#define ST_RIGHT 1
#define ST_CENTER 2
#define ST_FRAME 64
#define CT_STATIC 0
#define CT_BUTTON 1
#define CT_EDIT 2
#define CT_SLIDER 3
#define CT_COMBO 4
#define CT_LISTBOX 5
#define CT_ACTIVETEXT 11
#define CT_3DSTATIC 20
#define CT_3DACTIVETEXT 21
#define CT_3DLISTBOX 22
#define CT_3DHTML 23
#define CT_3DSLIDER 24
#define CT_3DEDIT 25
#define CT_OBJECT 80
#define CT_OBJECT_ZOOM 81
#define CT_OBJECT_CONTAINER 82
#define CT_OBJECT_CONT_ANIM 83
class RscText
{
type = CT_STATIC;
idc = -1;
style = ST_LEFT;
colorBackground[] = {0, 0, 0, 0};
colorText[] = {1, 1, 1, 1};
font = FontM;
sizeEx = 0.04;
};
class RscActiveText
{
type = CT_ACTIVETEXT;
idc = -1;
style = ST_LEFT;
color[] = {1, 1, 1, 1};
colorActive[] = {1, 0, 0, 1};
font = FontM;
sizeEx = 0.04;
soundEnter[] = {"ui\ui_over", 0.2, 1};
soundPush[] = {, 0.2, 1};
soundClick[] = {"ui\ui_ok", 0.2, 1};
soundEscape[] = {"ui\ui_cc", 0.2, 1};
default = false;
};
class RscButton
{
type = CT_BUTTON;
idc = -1;
style = ST_CENTER;
colorText[] = {0, 0, 0, 1};
font = FontHTML;
sizeEx = 0.025;
soundPush[] = {, 0.2, 1};
soundClick[] = {"ui\ui_ok", 0.2, 1};
soundEscape[] = {"ui\ui_cc", 0.2, 1};
default = false;
};
class RscEdit
{
type = CT_EDIT;
idc = -1;
style = ST_LEFT;
font = FontHTML;
sizeEx = 0.02;
colorText[] = {0, 0, 0, 1};
colorSelection[] = {0.5, 0.5, 0.5, 1};
autocomplete = false;
text = ;
};
class RscLB_C
{
style = ST_LEFT;
idc = -1;
colorSelect[] = {0.4, 0.4, 0.4, 1};
colorSelectBackground[] = {0.2, 0.2, 0.2, 1};
colorText[] = {0.2, 0.2, 0.2, 1};
colorBackground[] = {0.4, 0.4, 0.4, 1};
font = FontHTML;
sizeEx = 0.025;
rowHeight = 0.04;
};
class RscListBox : RscLB_C
{
type = CT_LISTBOX;
};
class RscCombo : RscLB_C
{
type = CT_COMBO;
wholeHeight = 0.3;
};
class RscObject
{
type = CT_OBJECT;
scale = 1.0;
direction[] = {0, 0, 1};
up[] = {0, 1, 0};
};
class Rsc3DStatic
{
type = CT_3DSTATIC;
font = FontHTML;
style = ST_LEFT;
selection = "display";
angle = 0;
size = 0.04;
color[] = {0,0,0,1};
};
// Имя нашего диалога
class DlgTutorial
{
idd = -1;
movingEnable = true;
controlsBackground[] = { };
controls[] = { };
// Определяем классы обьектов, которые мы добавим
objects[] = { Organizer };
class Organizer : RscObject
{
//модель обьекта
model = "blok_selmis2.p3d";
idc = -1;
type = CT_OBJECT_CONT_ANIM;
autoOpen = true;
autoZoom = true;
animSpeed = 1;
//файл анимации
animation = "BLOK_MIS.rtm"
position[] = {0.1, 0, 0.6};
direction[] = {0, 0, 90};
up[] = {0, cos 20, -sin 20};
positionBack[] = {0.1, 0, 0.8};
inBack = true;
enableZoom = false;
zoomDuration = 1;
scale=1;
controls[]={MY_TEXT1,MY_TEXT2}; // Перечисление классов с текстом которые используются ниже
// Этот класс MY_TEXT1 наследует Rsc3DStatic, то есть ему автоматически все свойства класса Rsc3DStatic
class MY_TEXT1 : Rsc3DStatic
{
idc = 100;
selection = "papir2"; // Та часть (selection) модели на которой будем писать текст их задают в O2
x = 0.025; y = 0.033; w = 0.8; h = 0.04; // Собсно расположение текста
angle = 0; // Угол поворота текста
size = 0.4; // Размер текста
color[] = {1, 0, 0, 1};
text = "Nero12 Приветствует вас!";
};
class MY_TEXT2 : Rsc3DStatic
{
idc = 100;
selection = "papir2"; // Та часть (selection) модели на которой будем писать текст их задают в O2
x = 0.025; y = 0.1; w = 0.8; h = 0.04;
// Собсно расположение текста
angle = 0; // Угол поворота текста
size = 0.4; // Размер текста
color[] = {0, 0.65, 1.0, 1};
text = "nero12@mail.ru";
};
};
};
Вызываем обьект вот так:
делаем файл createDialog.sqs содержанием:
_ok = createDialog "DlgTutorial"
?(!_ok): hint "Error!"; exit
Пример находится в папке "ПРИМЕРЫ" под названием - "Как добавить анимерованые 3d обьекты часть I"