Canvas PlayN中的像素级图形

Canvas PlayN中的像素级图形,canvas,playn,Canvas,Playn,我想在一款以HTML5为主要目标的PlayN游戏上制作像素级的图形。但是,PlayN的对象不提供对类的访问,也不提供对putImageData和getImageData函数的访问。我担心每个像素的使用速度会非常慢;有更好的方法吗?目前PlayN没有像素操作API 如果您只想以HTML5为目标,那么可以使用GWT方法创建和操作ImageData对象,然后通过我最近添加的用于转换图像的机制将这些对象注入到PlayN中 // use this canvas and context to create

我想在一款以HTML5为主要目标的PlayN游戏上制作像素级的图形。但是,PlayN的对象不提供对类的访问,也不提供对
putImageData
getImageData
函数的访问。我担心每个像素的使用速度会非常慢;有更好的方法吗?

目前PlayN没有像素操作API

如果您只想以HTML5为目标,那么可以使用GWT方法创建和操作ImageData对象,然后通过我最近添加的用于转换图像的机制将这些对象注入到PlayN中

// use this canvas and context to create as many image data objects as you want
CanvasElement canvas = Document.get().createElement("canvas").<CanvasElement>cast();
Context2d ctx = canvas.getContext2d();
final ImageData data = ctx.createImageData(width, height);
// push those pixels

// use this PlayN image as a factory for creating PlayN images from your ImageData objects
CanvasImage image = PlayN.graphics().createImage(1, 1); // dummy image
Image pixelImage = image.transform(new HtmlBitmapTransformer() {
  public ImageElement transform(ImageElement elem) {
    // we ignore the element passed in and just create a new CanvasElement
    // and draw our bitmap data on it
    CanvasElement canvas = Document.get().createElement("canvas").<CanvasElement>cast();
    canvas.setWidth(width);
    canvas.setHeight(height);
    canvas.getContext2d().putImageData(data, 0, 0);
    return canvas;
  }
});
//使用此画布和上下文创建所需数量的图像数据对象
CanvasElement画布=Document.get().createElement(“画布”).cast();
Context2d ctx=canvas.getContext2d();
最终图像数据=ctx.createImageData(宽度、高度);
//推这些像素
//将此播放图像用作从ImageData对象创建播放图像的工厂
CanvasImage image=PlayN.graphics().createImage(1,1);//虚拟图像
Image pixelImage=Image.transform(新的HtmlBitmapTransformer(){
公共ImageElement转换(ImageElement元素){
//我们忽略传入的元素,只创建一个新的CanvasElement
//并在上面绘制位图数据
CanvasElement画布=Document.get().createElement(“画布”).cast();
canvas.setWidth(宽度);
canvas.setHeight(高度);
canvas.getContext2d().putImageData(数据,0,0);
返回画布;
}
});

这有点像黑客。在某个时候,我将添加一种机制,用于获取和处理图像的像素数据,该机制的速度与后端支持的速度一样快。

是的,我从vanilla GWT切换到PlayN,因为我需要Java目标进行快速开发,无论如何,谢谢。