在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),它们与此无关。
答案 0 :(得分:1)
TextFormat对象是不可变的。当您调用textFormat.withFont(myFont)时,它返回一个 new TextFormat实例,上面的代码将丢弃。如果你想要第一个代码工作,你需要这样写:
TextFormat format = new TextFormat();
format = format.withFont(myFont);
format = format.withWrapping(textWidth, Alignment.LEFT);