2012-02-14 32 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