У меня есть текст, который я иногда хочу иметь черный контур, а иногда и зеленый. Я думал, что смогу выполнить это, имея два StrokeFonts, один с черным контуром, и один с зеленым контуром, а затем, когда я создаю экземпляр объекта Text
, я просто использую шрифт, который я хочу.Strokefont Цвет обводки Overwritten после setColor()
Проблема заключается в том, что после этого мне также нужно установить основной цвет (внутри, а не штрих) шрифта на основе других условий. Хотя моя логика работает, когда я делаю setColor()
, штрих всегда черный, что делает мою первую логику бесполезной.
Есть ли что-то, что мне не хватает здесь, или еще один способ обойти это? Я прокомментировал вызовы setColor()
после того, как я решил, какой StrokeFont использовать, и я вижу ход правильно, поэтому я знаю, что он перезаписывается вызовом setColor()
.
Я знаю об использовании белого цвета, чтобы можно было изменить цвет. Но в основном проблема заключается в том, что setColor(), похоже, делает это умножение и меняет цвет штриха, даже если вы этого не хотите. Есть ли способ обойти это? Там честно должен быть setStrokeColor() или что-то в API. Похоже, мне придется изменить источник. Я отвечу на ваш ответ из-за умножения информации о цветах. –
Дело в том, что удар не добавляется во время выполнения. Его нарисовано на текстуре. Поэтому, когда вы накладываете setColor() на шрифт, штрих является частью одной и той же текстуры. Вы не можете оттенять текстуру выборочно с помощью пикселя. Что вам нужно сделать, это создать свои собственные растровые шрифты, один из штрихов и один из заполнения, а не полагаться на StrokeFont, чтобы получить необходимый эффект. Тогда всякий раз, когда вы показываете текст штриха, на самом деле есть два многослойных текста - один из шрифтов Stroke и один из них. Вы будете иметь возможность setColor() для каждого текстового объекта индивидуально. Пользователю это будет выглядеть в текстовом поле. –
Что мой друг - хорошая идея. Когда вы говорите «мой собственный растровый шрифт», я предполагаю, что вы имеете в виду как мой собственный класс Java, который объединяет два шрифта/два объекта «Text» в AndEngine вместе в единый объект, который я могу затем самостоятельно контролировать, как я хочу. Это действительно хорошая идея. Благодарю. –