Форум HeroesWorld-а - Показать сообщение отдельно - [ВОПРОС] Изменения в интерфейсе = вылет
Показать сообщение отдельно
#7
Старый 27.03.2023, 22:56
  #7
^
vova2112
 
Аватар для vova2112
📖
Регистрация: 01.09.2020
Адрес: EAO
Сообщения: 115
Регистрация: 01.09.2020
Адрес: EAO
Сообщения: 115
По умолчанию
Re: [ВОПРОС] Изменения в интерфейсе = вылет

Waterfall_13
Вот такие ClassTypeID правилные:<BackgroundSimpleScallingTexture>
    <ClassTypeID>285694784</ClassTypeID>

<BackgroundSimpleTexture>
    <ClassTypeID>285694785</ClassTypeID>

<BackgroundTiledTexture>
    <ClassTypeID>285694786</ClassTypeID>

Про mipmap нужно просто зависти правило - всегда отключать их генерацию(если это текстура интерфейса).

Вот ещё мои наблюдения при работе над интерфейсом игры:
Для обычных текстур в файлах ...(Texture).xdb более стабильно себя показала конструкция<Type>REGULAR</Type>
<ConversionType>CONVERT_ORDINARY</ConversionType>
Для текстур выделения и Highlight я использую<Type>REGULAR</Type>
<ConversionType>CONVERT_TRANSPARENT_ADD</ConversionType>
и
<Type>REGULAR</Type>
<ConversionType>CONVERT_TRANSPARENT</ConversionType>
Формат TF_8888(без потерь) самый неприхотливый к нестандартным размерам высоты и ширины, с другими форматами(TF_DXT1 - TF_DXT5, TF_565) иногда надо "поиграться с размером полотна".
в файлах ...(Texture).xdb успешно используются форматы:TF_565
TF_4444
TF_8888
TF_DXT5
TF_DXT4
TF_DXT3
TF_DXT1
Надо не забывать про точное позиционирование элементовEPA_HIGH_END - выравнивание по правому\нижнему краю
EPA_LOW_END - выравнивание по левому\верхнему краю
EPA_MARGIN - растягивание на весь экран
ERA_CENTER - расположить по центру
можно использовать в связке со значениями (x\y) в секции Position , не будет учитываться пока значение в секции Second = false.

Ещё заметил что с кнопками работаешь не "правильно" их можно объединять в группы и отслеживать визуальное состояние
Типо такого:
можно объединить в группу в которой они будут включаться по нажатию и отключаться при включении другой кнопки из группыДля этого в файлах:
SpellsInfoTableButton.(WindowMSButton).xdb
BloodInfoTableButton.(WindowMSButton).xdb
CreatureInfoTableButton.(WindowMSButton).xdb
ElementInfoTableButton.(WindowMSButton).xdb
HeroesInfoTableButton.(WindowMSButton).xdb
NecroInfoTableButton.(WindowMSButton).xdb
Установить:
    <ButtonStates>
        <Item>
            <MessageOnEnterState/>
            <CommandsOnEnterState>
                <Commands/>
                <Reversable>false</Reversable>
            </CommandsOnEnterState>
            <CommandsOnRightClick>
                <Commands/>
                <Reversable>false</Reversable>
            </CommandsOnRightClick>
            <commandsOnLDblKlick>
                <Commands/>
                <Reversable>false</Reversable>
            </commandsOnLDblKlick>
            <WaitVisual>false</WaitVisual>
            <ReverseCommands>false</ReverseCommands>
            <Name/>
        </Item>
        <Item>
            <MessageOnEnterState/>
            <CommandsOnEnterState>
                <Commands/>
                <Reversable>false</Reversable>
            </CommandsOnEnterState>
            <CommandsOnRightClick>
                <Commands/>
                <Reversable>false</Reversable>
            </CommandsOnRightClick>
            <commandsOnLDblKlick>
                <Commands/>
                <Reversable>false</Reversable>
            </commandsOnLDblKlick>
            <WaitVisual>false</WaitVisual>
            <ReverseCommands>false</ReverseCommands>
            <Name/>
        </Item>
    </ButtonStates>
   <ButtonGroupID>1</ButtonGroupID>
    <AutoChangeState>true</AutoChangeState>
    <PushEffect>
        <Commands/>
        <Reversable>false</Reversable>
    </PushEffect>
    <State>0</State>
    <TextFileRef href=""/>
    <TextFormat/>
</WindowMSButton>
А в их Shared-ах добавить обработчик на изменение визуального состояния в "режиме нажатии кнопки":        <Item>
...
...
            <DefaultSubState>BST_NORMAL</DefaultSubState>
            <VisualOnEnterState>
                <Commands>
                    <Item href="Open.(UISSendUIMessage).xdb#xpointer(/UISSendUIMessage)"/>
                </Commands>
                <Reversable>false</Reversable>
            </VisualOnEnterState>
        </Item>
        <Item>
...
...
            <DefaultSubState>BST_NORMAL</DefaultSubState>
            <VisualOnEnterState>
                <Commands>
                    <Item href="Close.(UISSendUIMessage).xdb#xpointer(/UISSendUIMessage)"/>
                </Commands>
                <Reversable>false</Reversable>
            </VisualOnEnterState>
        </Item>
    </VisualStates>
    <TriggerMode>BCST_ON_PUSH</TriggerMode>
</WindowMSButtonShared>

__________________
Грешить, злодействовать, а равно и делать добро или совершать подвиги надо без натуги. А если с натугой — то лучше не надо.
К. Прутков-инженер. Мысль № 77.
Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий.
© Козьма Прутков
Грешить, злодействовать, а равно и делать добро или совершать подвиги надо без натуги. А если с натугой — то лучше не надо.
К. Прутков-инженер. Мысль № 77.
Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий.
© Козьма Прутков
vova2112 вне форума
Ответить с цитированием