JAVA小游戏容易出现的问题_制作我第一个java小游戏遇到的问题, 以备后用

1. Image im这是全局变量。 当你在panel中已经声明为全局, 那么gameRender即离屏绘制的时候就不要再声明一个image im了, 否则在gamePaint即屏幕显示的是同一个im。

2. Graphics有drawImage方法:

public abstract booleandrawImage(Imageimg,

int x,

int y,

img - 要绘制的指定图像。如果

img 为 null,则此方法不执行任何操作。

x -

x 坐标。

y -

y 坐标。

observer - 转换了更多图像时要通知的对象。

在前屏显示时将离屏绘制的image对象显示就可用次语句 g.draw(im, 0, 0, null)

Graphics另一个drawImage方法

public abstract boolean drawImage(Image img,

int dx1,

int dy1,

int dx2,

int dy2,

int sx1,

int sy1,

int sx2,

int sy2,

ImageObserver observer)

img - 要绘制的指定图像。如果

img 为 null,则此方法不执行任何操作。

dx1 - 目标矩形第一个角的

x 坐标。

dy1 - 目标矩形第一个角的

y 坐标。

dx2 - 目标矩形第二个角的

x 坐标。

dy2 - 目标矩形第二个角的

y 坐标。

sx1 - 源矩形第一个角的

x 坐标。

sy1 - 源矩形第一个角的

y 坐标。

sx2 - 源矩形第二个角的

x 坐标。

sy2 - 源矩形第二个角的

y 坐标。

observer - 当缩放并转换了更多图像时要通知的对象。

一般清空下dy1, dy2, sy1, sy2的值无需改变, 可根据窗口尺寸设置为固定值。于是我们可以写另一个drawRibbon()来封装该drawImage方法

private void drawRibbon(Graphics g, BufferedImage im,int dx1, int dx2, int sx1, int sx2)

/* The y-coords of the image always starts at 0 and ends at

pHeight (the height of the panel), so are hardwired.

*/

{

g.drawImage(im, dx1, 0, dx2, pHeight,sx1, 0, sx2, pHeight, null);

}

产生做这个游戏是我从网上看了有人做了一个c++写的游戏, 所以我实训的时候就用java做了一个, 游戏界面与之前类似, 但实现原理截然不同

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

你可能感兴趣的:(JAVA小游戏容易出现的问题)