其实我正在制作游戏。但是我被困在绘制图像中,例如我想绘制一个应该在屏幕上不断上下移动的蜘蛛。我正在使用方形和椭圆类的图形类。但是当谈到在正方形或椭圆形上绘制蜘蛛而不是fillRect或fillOval时,我不会通过。
这是我一次又一次地做的事情
public void draw(Graphics surface) {
// Draw the object
surface.setColor(color);
try{
File f = new File( "C:\\Users\\kk\\Desktop\\7.gif");
BufferedImage img = ImageIO.read(f);
// surface.drawImage(img,0,0,1360,740,null);
surface.drawImage(img, 7, 1,null );
}
catch( Exception e )
{}
//surface.fillRect(x - size/2, y - size/2, size, size);
答案 0 :(得分:0)
首先,每当需要在屏幕上渲染时,您不需要读取文件,因此请创建一个字段:
private BufferedImage img;
public <constructor>(){
img = ImageIO.read(new File("C:\\Users\\kk\\Desktop\\7.gif"));
}
并迭代位置:
private int x, y;
public void draw(Graphics surface) {
surface.drawImage(img, x, y, null);
/* if you have 2 methods: rendering and updating,
better move it to this updating one */
x += speed * time;
}
编辑这只是一种伪代码,它不起作用,但是包含了解决问题的想法