Java Can';无法使画布/画布层在Playn中工作
正如标题所说,我无法让画布/画布层在PlayN中工作。我的示例代码再简单不过了。ImageLayer和默认背景加载良好(该代码在此处注释掉),但画布实际上始终不可见Java Can';无法使画布/画布层在Playn中工作,java,canvas,playn,Java,Canvas,Playn,正如标题所说,我无法让画布/画布层在PlayN中工作。我的示例代码再简单不过了。ImageLayer和默认背景加载良好(该代码在此处注释掉),但画布实际上始终不可见 public void init() { // create and add background image layer //Image bgImage = assetManager().getImage("images/bg.png"); //ImageLayer bgLayer = graphics()
public void init() {
// create and add background image layer
//Image bgImage = assetManager().getImage("images/bg.png");
//ImageLayer bgLayer = graphics().createImageLayer(bgImage);
//graphics().rootLayer().add(bgLayer);
graphics().setSize(500, 400);
CanvasLayer testLayer = graphics().createCanvasLayer(200,200);
Canvas testCanvas = testLayer.canvas();
graphics().rootLayer().add(testLayer);
//testCanvas.clear();
testCanvas.setStrokeColor(0x000000);
testCanvas.setStrokeWidth(2);
testCanvas.setFillColor(0xff0000);
testCanvas.drawText("hello", 50, 50);
testCanvas.drawLine(0, 0, 300,300);
testCanvas.strokeRect(1, 1, 46, 46);
//I even tried adding this.
testLayer.setAlpha(1);
testLayer.setVisible(true);
testLayer.setScale(1);
}
我正在对Maven使用Playn1.0.3。注意,这是纯java编译
TIA Daniel您的颜色代码错误,您必须同时指定alpha
0x000000
实际上意味着00 alpha,00 red,00 gren
请尝试以下方法:
testCanvas.setStrokeColor(Color.rgb(0,0,0))代码>
或者,如果您想要50%的透明度:
testCanvas.setStrokeColor(Color.argb(0x80,0,0,0))代码>
您可能还需要在添加画布层之前添加背景:
SurfaceLayer bgLayer = graphics().createSurfaceLayer(500, 400);
bgLayer.surface().setFillColor(Color.rgb(0,0,0));
bgLayer.surface().fillRect(0, 0, bgLayer.surface().width(),
bgLayer.surface().height());
graphics().rootLayer().add(bgLayer);
塔克斯!我仔细查看了演示中的代码,不习惯使用0xXXX的颜色表示法,希望使用一种更“新的颜色()”的面向类的表示法,即java和其他。显然,在移植到GWT/javascript等时,我可以看到原语在提高效率方面的好处。Thanx指出了我缺少的两个数字,并为我节省了大量时间!人们总是认为原因比实际情况更复杂:-)