猿问

[菜鸟求大神解答]Java小游戏编程界面设计的一点不成熟的问题

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(),
				    					"恭喜您打中了!", "系统信息", JOptionPane.WARNING_MESSAGE);
				    			return;
				    	   }
						}
				}else {
					return;
				}
			}
		if (!flag) {
			JOptionPane.showMessageDialog(BattleShip.MyFrame.getContentPane(),
					"哎呦!打偏了", "系统信息", JOptionPane.WARNING_MESSAGE);
			selectButton.setText("X");
			
		}
	
	}

写BattleShip游戏  MainPanel类 

游戏大致意思就是10*10的格子里面有五条不同类型的船

不同类型的船占有不同长度的格子

玩家点击格子如果有船就炸

点击格子没有这个格子里面没有船

那么这个格子将被标记

下面图中打X的格子就是没有船被标记的格子

然饿空的格子就是内部有船的格子但是效果并不好 


界面优化的部分不太会做,想求教以下:

  1. 当这条船局部被炸 格子里显示爆炸(或者空格子被点击后更改颜色为蓝色)

  2. 如果整条船都被炸,那么就在窗口中显现出一个这类船的图形

    求求大神T T

    万分感谢

     不 跪谢!!!


慕设计2491986
浏览 1881回答 0
0回答
随时随地看视频慕课网APP

相关分类

Java
我要回答