2012-02-14 34 views
1

我想用canvas.drawText()方法帧后得出一些文本框架。当我用Java运行我的游戏时,一切都很好。但是当我用html运行时,行为是不同的。我隔离了代码(见下文),并得到了相同的结果。PlayN canvas.drawText()在HTML怪异的行为(Java是OK)

package textbug.core; 

import static playn.core.PlayN.*; 

import playn.core.Canvas; 
import playn.core.CanvasImage; 
import playn.core.Game; 
import playn.core.Image; 
import playn.core.ImageLayer; 

public class TextBugIsolated implements Game { 

    Canvas canvas; 
    int x = 20; 

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

    CanvasImage canvasImage = graphics().createImage(graphics().width(), graphics().height()); 

    ImageLayer imageLayer = graphics().createImageLayer(); 
    imageLayer.setImage(canvasImage); 
    graphics().rootLayer().add(imageLayer); 

    canvas = canvasImage.canvas();  
    } 

    @Override 
    public void paint(float alpha) { 
    canvas.clear(); 
    canvas.drawText("PlayN is cool!", x++, 20); 
    canvas.drawText("Hello World", 20, 100); 
    } 

    @Override 
    public void update(float delta) { 
    } 

    @Override 
    public int updateRate() { 
    return 25; 
    } 
} 

我希望文本“PlayN很酷!”像Java一样水平移动,但事实并非如此。我试图进行调试,但是我无法使用本机代码。

任何人都有线索?我在尝试禁止某些东西吗?

+0

我忘了说我在Chrome测试。我也用Safari进行了测试,但是这次没有任何文字。 – 2012-02-15 15:09:42

+0

我有同样的问题与canvas.drawImage ...屏幕上无图像:| – 2012-02-15 21:11:43

回答

1

后,因此它设置文本更新这是一个已知的问题,如记录here。它只影响HTML后端。这似乎正是你所看到的。

0

您的代码看起来好像没什么问题。

你等待图像加载,因为在Safari浏览器的情况下是可能的的drawText并对其油漆后,它加载..并在Java中可能装载足够快,所以它加载的罚款。

照顾()完成回调...加载图像

+0

即使我删除图像,文本也不会移动。它看起来像是Canvas类的问题。 – 2012-02-16 15:01:14

+0

我也有一些奇怪的canvas.clear()的问题..可以请您在您的代码 – Darwly 2012-02-16 15:11:29

+0

更清晰地将其删除...不清除任何只画了吧...和写回..生病的样子,并添加你的画布到绘画层......所以画被称为.. – Darwly 2012-02-16 15:14:35