import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.util.HashMap;
import java.util.Map;
public class PaintTank {
private Tank tank;
int centreX;
int centreY;
public PaintTank(Tank tank) {
this.tank = tank;
}
//工具包: 可以干一些适合操作系统干的事 create创造
private static Toolkit tk = Toolkit.getDefaultToolkit(); //拿到默认的工具包
//这个静态好用
//把资源文件放到clsspath下,eclipse的src目录下, 使用url加载, 等真正要用了才加载进内存, 异步IO, 第一次可能画不出来
private static Image[] images = null;
private static Map<String, Image> imagesTank = new HashMap<String, Image>();//不写这个用图片的时候images[0]这么都是什么鬼
<span style="white-space:pre"> </span>//静态代码块的好处
static {
images = new Image[] {
tk.getImage(PaintTank.class.getClassLoader().getResource("images/tankL.gif")),
tk.getImage(PaintTank.class.getClassLoader().getResource("images/tankU.gif")),
tk.getImage(PaintTank.class.getClassLoader().getResource("images/tankR.gif")),
tk.getImage(PaintTank.class.getClassLoader().getResource("images/tankD.gif"))
};
imagesTank.put("L", images[0]);
imagesTank.put("U", images[1]);
imagesTank.put("R", images[2]);
imagesTank.put("D", images[3]);
};
public void paintTank(Graphics g) {
tank.getMoveTank().move();
switch(tank.getDirection()){
case L:
g.drawImage(imagesTank.get("L"), tank.getxAxis(), tank.getyAxis(), null);
break;
case U:
g.drawImage(imagesTank.get("U"), tank.getxAxis(), tank.getyAxis(), null);
break;
case R:
g.drawImage(imagesTank.get("R"), tank.getxAxis(), tank.getyAxis(), null);
break;
case D:
g.drawImage(imagesTank.get("D"), tank.getxAxis(), tank.getyAxis(), null);
break;
}
}
}
Images的标准用法
最新推荐文章于 2023-08-10 08:51:11 发布