java - 无法让 Canvas/CanvasLayer 在 Playn 中工作

标签 java canvas playn

就像标题所说,我无法让 Canvas/CanvasLayer 在 PlayN 中工作。我的示例代码再简单不过了。 ImageLayer 和默认背景加载良好(该代码已在此处注释掉),但 Canvas 实际上始终不可见。

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);
}

我正在使用 PlayN 1.0.3 和 Maven。请注意,这是针对纯 java 编译的。

蒂亚·丹尼尔

最佳答案

您的颜色代码错误,您还必须指定 alpha

0x000000 实际上意味着 00 alpha、00 red、00 gren

试试这个:

testCanvas.setStrokeColor(Color.rgb(0, 0, 0));

或者如果您想要 50% 的透明度:

testCanvas.setStrokeColor(Color.argb(0x80, 0, 0, 0));

您可能还想在添加 CanvasLayer 之前添加背景:

    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);

关于java - 无法让 Canvas/CanvasLayer 在 Playn 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8637973/

相关文章:

javascript - 是否有任何 HTML5/Canvas 窗口系统库(ala Qt、WxWidgets 等)?

javascript - Canvas 在 HTML 文件中工作,但在 javascript 文件中不工作

playn - Google 支持多少 PlayN?

java - WSDL 文件在浏览器中加载,但不在代码中加载

java - 菜单系统可以工作但无法关闭

java - Logback - 打印出调用日志方法的方法名

android - Google Play 与 Android 游戏引擎

java - PlayN JBox2D Y 速度增加但发生碰撞

java - 将分钟转换为 24 小时格式 Android 应用程序

java - org.hibernate.HibernateException : No Session found for current thread 5