久しぶりの将棋関連の記事をあげます。
今回はずっと悩んでいた、画像を使ってコマの表示に成功したので
それを投稿しようかと思います。
実行結果
こちらが画像を使わないバージョンですね。
こちらが画像を使ったバージョンです。
やっぱり画像を使ってやったほうがいいですね。
あとは相手のコマを反転して表示できればいい感じになりそうです。
一部ソースコード
もしよかった参考にしてください。
drawImage(画像名、x座標、y座標、縦の大きさ、横の大きさ、this)を使いました。
最後のthisはよくわからないのですが、thisを書いてください。
こんな感じでやれば画像の表示はできるかなと思います。
Image iFu, iKyo, iKei, iGin, iKin, iOu, iGyoku, iHisha, iKaku, iTokin, iRyuma, iRyuou;
iFu = getToolkit().getImage("fu.png");
iKyo = getToolkit().getImage("kyosha.png");
iKei = getToolkit().getImage("keima.png");
iGin = getToolkit().getImage("gin.png");
iKin = getToolkit().getImage("kin.png");
iOu = getToolkit().getImage("ou.png");
iGyoku = getToolkit().getImage("gyoku.png");
iHisha = getToolkit().getImage("hisha.png");
iKaku = getToolkit().getImage("kaku.png");
iTokin = getToolkit().getImage("tokin.png");
iRyuma = getToolkit().getImage("ryuma.png");
iRyuou = getToolkit().getImage("ryuou.png");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
if (obverse == fu)
g.drawImage(iFu, p.x, p.y - 40, 50, 50, this);
else if (obverse == kyo)
g.drawImage(iKyo, p.x, p.y - 40, 50, 50, this);
else if (obverse == kei)
g.drawImage(iKei, p.x, p.y - 40, 50, 50, this);
else if (obverse == silver)
g.drawImage(iGin, p.x, p.y - 40, 50, 50, this);
else if (obverse == gold)
g.drawImage(iKin, p.x, p.y - 40, 50, 50, this);
else if (obverse == hi)
g.drawImage(iHisha, p.x, p.y - 40, 50, 50, this);
else if (obverse == kaku)
g.drawImage(iKaku, p.x, p.y - 40, 50, 50, this);
else if (obverse == king)
g.drawImage(iOu, p.x, p.y - 40, 50, 50, this);
else if (obverse == gyoku)
g.drawImage(iGyoku, p.x, p.y - 40, 50, 50, this);
else if (obverse == fu + evolution)
g.drawImage(iTokin, p.x, p.y - 40, 50, 50, this);
else if (obverse == ryuou)
g.drawImage(iRyuou, p.x, p.y - 40, 50, 50, this);
else if (obverse == ryuma)
g.drawImage(iRyuma, p.x, p.y - 40, 50, 50, this);
else if (obverse == narikyo || obverse == narikei || obverse == narigin)
g.drawImage(iTokin, p.x, p.y - 40, 50, 50, this);
コメント