PlayN中的像素级图形 [英] Pixel level graphics in PlayN

查看:92
本文介绍了PlayN中的像素级图形的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在PlayN游戏中做像素级图形,其主要目标是HTML5.但是,PlayN的 Canvas 对象不提供对 CanvasPixelArray 类,或putImageDatagetImageData函数.我担心使用每个像素的drawPoint 会非常慢;有更好的方法吗?

I want to do pixel level graphics on a PlayN game whose main target is HTML5. However, PlayN's Canvas object does not provide access to the CanvasPixelArray class, or the putImageData and getImageData functions. I'm worried that using drawPoint for each pixel will be pretty slow; is there a better way of doing it?

推荐答案

目前PlayN没有像素处理API.

There's no pixel manipulation API for PlayN at the moment.

如果只想定位HTML5,则可以使用GWT方法创建和操作ImageData对象,然后通过最近添加的用于转换图像的机制将它们注入PlayN.

If you only want to target HTML5, you can use the GWT methods to create and manipulate ImageData objects and then inject those into PlayN via a mechanism I recently added for transforming images.

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

有点骇人听闻.在某个时候,我将添加一种机制来获取和处理图像的像素数据,该机制的速度与支持它的后端所希望的速度一样快.

It's a bit of a hack. At some point, I'll add a mechanism for obtaining and manipulating pixel data for an image that is as fast as could be hoped for the backends that can support it.

这篇关于PlayN中的像素级图形的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆