Обтекание текста Playn и проблема со стилем

Как и в Effect.shadow(), он устарел в PlayN1.3. Так что раньше у меня было что-то вроде этого:

TextFormat textFormat = new TextFormat(myFont, textWidth, Alignment.LEFT, colorCode, Effect.shadow(-16777216, shadowX, shadowY));

Поэтому я изменил его на это:

TextFormat textFormat = new TextFormat();
textFormat.withFont(myFont);
textFormat.withWrapping(textWidth, Alignment.LEFT);

Мне не нужна тень сейчас. Все в порядке, но я не получил предыдущего результата. Подожди. Не думай сейчас. Затем я изменил этот код на этот:

TextFormat textFormat = new TextFormat().withFont(myFont).withWrapping(textWidth, Alignment.LEFT);

Это дает мне результат, как и предыдущий, за исключением тени, которая меня сейчас не волнует. Если я не ошибаюсь, это однострочное представление приведенного выше кода. Не так ли? Итак, почему это сработало, а приведенный выше код — нет. Есть ли какая-то концептуальная разница? Кто-нибудь может объяснить, пожалуйста!

// примечание: не беспокойтесь о переменных (textWidth, myFont), они не имеют к этому никакого отношения.


person Android Killer    schedule 25.05.2012    source источник


Ответы (1)


Объекты TextFormat неизменяемы. Когда вы вызываете textFormat.withFont(myFont), он возвращает новый экземпляр TextFormat, который вышеприведенный код отбрасывает. Если вы хотите, чтобы первый код работал, вам нужно написать его так:

TextFormat format = new TextFormat();
format = format.withFont(myFont);
format = format.withWrapping(textWidth, Alignment.LEFT);
person samskivert    schedule 26.05.2012
comment
Спасибо за это. Я новичок в игре. Нужна ваша помощь в этом. +1 и принято. - person Android Killer; 26.05.2012