public?class?mainpanel?extends?JPanel?implements?ActionListener{
public?mainpanel()?{
//?TODO?Auto-generated?constructor?stub
??for?(int?i?=?0;?i?<?10;?i++)?{
???????? for?(int?j?=?0;?j?<?10;?j++)?{
JButton?btn=new?JButton();
btn.setPreferredSize(new?Dimension(60,60));
btn.addActionListener(this);
add(btn);
mainFrame.btns[i][j]=btn;
}
}
}
public?void?actionPerformed(ActionEvent?e)?{
//?TODO?Auto-generated?method?stub
JButton?selectButton=(JButton)?e.getSource();
boolean?flag=false;
for?(Ship?ship?:?BattleShip.list)?{
if?(!flag)?{
?for?(Position?position?:?ship.getShip())?{
???? ???int?x=position.getX();
???? ???int?y=position.getY();
???? ???if?(selectButton==mainFrame.btns[x][y])?{
???? flag=true;
???? JOptionPane.showMessageDialog(BattleShip.MyFrame.getContentPane(),
???? "恭喜您打中了!",?"系統(tǒng)信息",?JOptionPane.WARNING_MESSAGE);
???? return;
???? ???}
}
}else?{
return;
}
}
if?(!flag)?{
JOptionPane.showMessageDialog(BattleShip.MyFrame.getContentPane(),
"哎呦!打偏了",?"系統(tǒng)信息",?JOptionPane.WARNING_MESSAGE);
selectButton.setText("X");
}
}寫B(tài)attleShip游戲 ?MainPanel類?游戲大致意思就是10*10的格子里面有五條不同類型的船不同類型的船占有不同長度的格子玩家點擊格子如果有船就炸點擊格子沒有這個格子里面沒有船那么這個格子將被標記下面圖中打X的格子就是沒有船被標記的格子然餓空的格子就是內(nèi)部有船的格子但是效果并不好?界面優(yōu)化的部分不太會做,想求教以下:當這條船局部被炸 格子里顯示爆炸(或者空格子被點擊后更改顏色為藍色)如果整條船都被炸,那么就在窗口中顯現(xiàn)出一個這類船的圖形求求大神T T萬分感謝?不 跪謝?。?!
[菜鳥求大神解答]Java小游戲編程界面設計的一點不成熟的問題
慕設計2491986
2016-11-29 22:24:37