首先是加载图片文件为 Image:比如你有个类叫 ResourceLoader 那么就添加下面的类成员:
public static final URL url = ResourceLoader.class.getResource("/xxx/.../文件名.png")
public static final Image img = Toolkit.getDefaultToolkit().createImage(url)
然后就加载好了。下一步是继承一个 JPanel(例如),添加鼠标/键盘事件,并重写 paint 方法(或 paintComponent 方法)。例如——
public class ChessPanel extends JPanel {
private Point[] chessPoints = new Point[共多少个棋子]
private boolean[] shown = new boolean[共多少个棋子]
@Override public void paintComponent (Graphics g) {
super.paintComponent(g)
for (int i=0i<共多少个棋子i++) {
if (shown[i]) {
g.drawImage(ResourceLoader.img, chessPoints[i].x, chessPoints[i].y, 棋子宽度, 棋子高度)
}
}
}
class MouseControler extends MouseAdapter {
@Override public void mousePressed (MouseEvent me) {
//自己写吧
repaint()
}
}
}
最后说明一下,图片资源文件可以打包到 jar 里。我把关键的部分都已经告诉你了。具体逻辑实现你自己写吧。当然数据结构你也可以自己写,我的例子只是告诉你相应的在 paint 或者 paintComponent 方法里全部画出来就行了。
希望能采纳。
你可以把兵,马,车看做是在一个矩阵下移动的。。。兵,马,车等都有不同的走发与吃法,且都是棋子。棋子是父类,应该有一个boolean moveTo(x,y)方法,比如车和马的吃法不同。。。
boolean kill(x,y)方法等宫同的行为,比如跑和车得吃法不同。
子类实现相应的方法...
移动规则去你就可以把它看成在一个坐标系上移动就可以了...
实在不知道,取下一个游戏。先玩玩熟悉一下走法...
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)