これはほぼ基本的なものです。私は画像ファイルを使いたくない。むしろ、私はプログラム的に円を描き、それを表面にblitしたい(彼らはパイゲームで言うように)。私のゲームクラスからPlayNで画面に円を描くにはどうしたらいいですか?
https://developers.google.com/playn/devguide/rendering
:
は、私はここで、 "CanvasLayersの使用" を例に従うことをしようとした// Surface
SurfaceLayer surface;
// Background
int width = 640;
int height = 480;
//ImageLayer bgLayer;
CanvasImage bgImage;
Canvas canvas;
// Circle
CanvasImage circleImage;
//ImageLayer circleLayer;
int circleRadius = 20;
int circleX = 0;
int circleY = 0;
@Override
public void init() {
// create a surface
surface = graphics().createSurfaceLayer(width, height);
graphics().rootLayer().add(surface);
// create a solid background
// http://code.google.com/p/playn101/source/browse/core/src/main/java/playn101/core/J.java#81
bgImage = graphics().createImage(width, height);
canvas = bgImage.canvas();
canvas.setFillColor(0xff87ceeb);
canvas.fillRect(0, 0, width, height);
//bgLayer = graphics().createImageLayer(bgImage);
//graphics().rootLayer().add(bgLayer);
// create a circle
circleImage = graphics().createImage(circleRadius, circleRadius);
canvas = circleImage.canvas();
canvas.setFillColor(0xff0000eb);
canvas.fillCircle(circleX, circleY, circleRadius);
//circleLayer = graphics().createImageLayer(circleImage);
//graphics().rootLayer().add(circleLayer);
}
@Override
public void paint(float alpha) {
// the background automatically paints itself, so no need to do anything
// here!
surface.clear(0);
surface.drawImage(bgImage, 0, 0);
surface.drawImage(circleImage, 100, 100);
}
しかし、私は、JavaとEclipseで空白のウィンドウが文句を取得:
drawImageメソッド(CanvasImage、int、int)は、タイプ0123の場合は未定義ですSurfaceLayer
ただし、これはリンクの例で使用されている方法です。
詳細な対応をありがとうございます。このテストファイルはImmedateLayerの使用例です:[code.google.com](http://code.google.com/p/playn/source/browse/tests/core/src/playn/tests/core/ImmediateTest .java)?私はまだPlayNのコーディングパターンのハンドルを取得しようとしています。 – klenwell
これは良い例です。私はそれを書きました。 :) – samskivert