你好,请问你有具体的将棋子图片放到棋盘上的Java代码吗?或者是你自己编写的Java国际象棋程序?很急!!!

你好,请问你有具体的将棋子图片放到棋盘上的Java代码吗?或者是你自己编写的Java国际象棋程序?很急!!!,第1张

有,但是我不能直接给你。我可以告诉你步骤。

首先是加载图片文件为 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)方法等宫同的行为,比如跑和车得吃法不同。

子类实现相应的方法...

移动规则去你就可以把它看成在一个坐标系上移动就可以了...

实在不知道,取下一个游戏。先玩玩熟悉一下走法...


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/bake/11538058.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存