package com.hh.utils; import java.awt.*; import java.lang.reflect.Field; public class GameUtils { //蛇头 public static Image upImg=Toolkit.getDefaultToolkit().getImage("img/up.png"); public static Image downImg=Toolkit.getDefaultToolkit().getImage("img/down.png"); public static Image leftImg=Toolkit.getDefaultToolkit().getImage("img/left.png"); public static Image rightImg=Toolkit.getDefaultToolkit().getImage("img/right.png"); //蛇身 public static Image bodyImg=Toolkit.getDefaultToolkit().getImage("img/body.png"); //食物 public static Image foodImg=Toolkit.getDefaultToolkit().getImage("img/food.png"); //关卡 public static int level= 1; //绘制文字 public static void drawWord(Graphics g,String str,Color color,int size,int x,int y){ g.setColor(color); g.setFont(new Font("宋体",Font.BOLD,size)); g.drawString(str, x, y); } }将这段代码用反射机制来调用图片
时间: 2024-03-01 19:54:54 浏览: 109
可以使用反射机制来获取这些图片对象。可以通过以下代码来获取这些图片对象:
```java
import java.awt.Image;
import java.awt.Toolkit;
import java.lang.reflect.Field;
public class GameUtils {
// 蛇头
public static Image upImg = getImage("up.png");
public static Image downImg = getImage("down.png");
public static Image leftImg = getImage("left.png");
public static Image rightImg = getImage("right.png");
// 蛇身
public static Image bodyImg = getImage("body.png");
// 食物
public static Image foodImg = getImage("food.png");
// 关卡
public static int level = 1;
// 绘制文字
public static void drawWord(Graphics g, String str, Color color, int size, int x, int y) {
g.setColor(color);
g.setFont(new Font("宋体", Font.BOLD, size));
g.drawString(str, x, y);
}
// 获取图片对象
private static Image getImage(String imageName) {
Image image = null;
try {
Field field = GameUtils.class.getDeclaredField(imageName);
image = Toolkit.getDefaultToolkit().getImage("img/" + imageName);
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
return image;
}
}
```
通过使用 `GameUtils.class.getDeclaredField()` 方法来获取对应的 `Field` 对象,然后再使用 `Toolkit.getDefaultToolkit().getImage()` 方法来获取 `Image` 对象。
阅读全文