這是關於它的基礎。我不想使用圖像文件。相反,我想以編程方式繪製一個圓圈並將其貼到表面(就像他們在pygame中所說的那樣)。如何使用PlayN在屏幕上繪製一個圓圈?
我試圖按照這裏的 「使用CanvasLayers」 例如:
https://developers.google.com/playn/devguide/rendering
從我的遊戲類:
// 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)未定義類型 SurfaceLayer
然而,這是它在鏈接示例中的使用方式。
感謝您的詳細回覆。該測試文件是ImmedateLayer使用的一個很好的示例:[code.google.com](http://code.google.com/p/playn/source/browse/tests/core/src/playn/tests/core/ImmediateTest的.java)?我仍然試圖處理PlayN編碼模式。 – klenwell 2012-02-29 03:42:05
這是一個很好的例子。我寫的。 :) – samskivert 2012-02-29 22:59:55