Graphics2D awt порт метода copyArea для воспроизведения

Я портирую старую игру awt java на платформу playn, у меня есть несколько вызовов graphics.copyArea .. есть ли способ сопоставить этот вызов с некоторыми вызовами play.core.Canvas?

Спасибо


person user628203    schedule 26.02.2012    source источник


Ответы (1)


Вы должны иметь возможность использовать тот же холст, что и источник и назначение вызова Canvas.drawImage:

CanvasImage image = graphics().createImage(100, 100);
// draw stuff in your canvas image

// define the source of the copyArea: 15x15+5+5
float sx = 5, sy = 5, swidth = 15, sheight = 15;
// note that we use swidth/sheight for dwidth/dheight because we don't want to scale,
// we just want to copy data from one place in the image to another
image.canvas().drawImage(image, 25, 25, swidth, sheight, sx, sy, swidth, sheight);

Однако, если вы действительно визуализируете все на Canvas в каждом кадре, вы, вероятно, обнаружите, что это очень медленно. Вам будет лучше реструктурировать вещи, чтобы использовать ImageLayer и другие конструкции, которые могут быть аппаратно ускорены.

person samskivert    schedule 27.02.2012