基于java+swing的潜艇大战项目游戏(java+swing)

功能简介:
Java swing实现的一款小游戏潜艇大战的项目源码

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

                     boolean isScv = (tile.getType()==gridMapRender.getCurrentType())&&(tile instanceof Scv);if(isScv){tile.focus();gridMapRender.addFocusSprite((Sprite)tile);}}}else if(keyCode==KeyEvent.VK_2){gridMapRender.blur();for(Tile tile:gridmap.getTiles()){boolean isMarine = tile.getType()==gridMapRender.getCurrentType()&&tile instanceof Marine;if(isMarine){tile.focus();gridMapRender.addFocusSprite((Sprite)tile);}}}
     }public void addPlayer(int index,String name){System.out.println("addplayer:"+index+","+name);players.get(index).addElement(name);players.get(index).setSelectedItem(name);}public void selectPlayer(int index,String name){players.get(index).setSelectedItem(name);}public void delPlayer(int index,String oldName){players.get(index).removeElement(oldName);
//          for(int i=0;i<players.get(index).getSize();++i){
  * 右边Panel*/class RightPanel extends JPanel {private int x, y;Elastic elastic = new Elastic(800, -180);Image image = ResourceManager.loadImage("right.png");JButton startbtn = new JButton("Start");JButton returnbtn = new JButton("Return");public RightPanel(JPanel parent) {setLayout(null);setSize(180, 180);x = (parent.getWidth() - getWidth());y = 460;setLocation(x, y);
         mode2.addListDataListener(new ListDataListener(){public void contentsChanged(ListDataEvent e) {String value = mode2.getSelectedItem().toString();if(value.equals("Computer") || value.equals("Open") || value.equals("Closed")){gameGUI.netWorkManager.select(value,2);}}public void intervalAdded(ListDataEvent e) {}public void intervalRemoved(ListDataEvent e) {}});final DefaultComboBoxModel mode3 = new DefaultComboBoxModel(labels);mode3.addListDataListener(new ListDataListener(){public void contentsChanged(ListDataEvent e) {
      ActionListener returnListen = new ActionListener() {public void actionPerformed(ActionEvent e) {leftPanel.players.get(0).removeAllElements();gameGUI.netWorkManager.close();GameGUI gamePanel = (GameGUI) NewGamePanel.this.getParent();leftPanel.elastic.slide(50, -300);rightPanel.elastic.slide(600, 200);try {Thread.sleep(200);} catch (InterruptedException e1) {e1.printStackTrace();}gamePanel.switchMainMenu();}
     }); control.addMoveListener(new MoveListener(){public void move(int x, int y) {int offsetX = gridMapRender.offsetX;int screenX = getWidth()-GridMapRender.TILE_WIDTH;//濡傛灉榧犳爣浣嶄簬灞忓箷瀹藉害鍓嶄竴涓猅ILE瀹藉害if(x>screenX&&offsetX<GridMapRender.tileXToPx(107)){//鍚戝彸绉诲姩涓�釜tile瀹藉害gridMapRender.offsetX=offsetX+GridMapRender.TILE_WIDTH;robot.mouseMove(screenX, y);++controlPanel.map_panel.x;}//濡傛灉榧犳爣鍦ㄤ竴涓猅ILE瀹藉害if(x<GridMapRender.TILE_WIDTH&&offsetX>0){gridMapRender.offsetX=offsetX-GridMapRender.TILE_WIDTH;robot.mouseMove(GridMapRender.TILE_WIDTH, y);--controlPanel.map_panel.x;
         setLocation(x, y);}}class LeftPanel extends JPanel {private int x, y = 20;Elastic elastic = new Elastic(-50, 50);Image image = ResourceManager.loadImage("left.png");String labels[] = { "Open", "Closed","Computer"};
             if(x<GridMapRender.TILE_WIDTH&&offsetX>0){gridMapRender.offsetX=offsetX-GridMapRender.TILE_WIDTH;robot.mouseMove(GridMapRender.TILE_WIDTH, y);--controlPanel.map_panel.x;}//绾靛潗鏍囧拰姘村钩鍧愭爣閫昏緫鐩稿悓int offsetY = gridMapRender.offsetY;int screenY = getHeight()-GridMapRender.TILE_HEIGHT;if(y>screenY&&offsetY<GridMapRender.tileXToPx(110)){//鍚戝彸绉诲姩涓�釜tile瀹藉害gridMapRender.offsetY=offsetY+GridMapRender.TILE_HEIGHT;robot.mouseMove(x, screenY);++controlPanel.map_panel.y;}if(y<GridMapRender.TILE_HEIGHT&&offsetY>0){gridMapRender.offsetY=offsetY-GridMapRender.TILE_WIDTH;robot.mouseMove(x, GridMapRender.TILE_HEIGHT);--controlPanel.map_panel.y;}gridMapRender.moveX = x;
//                   return;
//              }
//          }
//          players.get(index).addElement(newName);}private  class GameItemListener implements ItemListener{int index;public GameItemListener(int index) {this.index = index;}public void itemStateChanged(ItemEvent e) {String value = e.getItem().toString();if(value.equals("Closed")||e.getItem().toString().equals("Open")){jcbs[index][1].setVisible(false);}else{jcbs[index][1].setVisible(true);}}
         }}public void addPlayer(int index,String name){System.out.println("addplayer:"+index+","+name);players.get(index).addElement(name);players.get(index).setSelectedItem(name);}public void selectPlayer(int index,String name){players.get(index).setSelectedItem(name);}public void delPlayer(int index,String oldName){players.get(index).removeElement(oldName);
//          for(int i=0;i<players.get(index).getSize();++i){//              Object item = players.get(index).getElementAt(i);
     public void selectPlayer(int index,String name){players.get(index).setSelectedItem(name);}public void delPlayer(int index,String oldName){players.get(index).removeElement(oldName);
//          for(int i=0;i<players.get(index).getSize();++i){//              Object item = players.get(index).getElementAt(i);
//              if(item.equals(newName)){//                  players.get(index).setSelectedItem(newName);
//                  return;
//              }
//          }
//          players.get(index).addElement(newName);
                 --controlPanel.map_panel.y;}gridMapRender.moveX = x;gridMapRender.moveY = y;}});
     public LeftPanel(JPanel parenPanel) {setLayout(null);setSize(400, 270);setLocation(x, y);int location=120;final DefaultComboBoxModel mode1 = new DefaultComboBoxModel(labels);mode1.addListDataListener(new ListDataListener(){public void contentsChanged(ListDataEvent e) {DefaultComboBoxModel model = (DefaultComboBoxModel) e.getSource();Object item = model.getSelectedItem();//System.out.println(item+ ".contentsChanged()  1");if(item.equals("Computer") || item.equals("Open") || item.equals("Closed")){gameGUI.netWorkManager.select(item.toString(), 1);//System.out.println(item);}}public void intervalAdded(ListDataEvent e) {}public void intervalRemoved(ListDataEvent e) {}});
 class RightPanel extends JPanel {private int x, y;Elastic elastic = new Elastic(800, -180);Image image = ResourceManager.loadImage("right.png");JButton startbtn = new JButton("Start");JButton returnbtn = new JButton("Return");public RightPanel(JPanel parent) {setLayout(null);setSize(180, 180);x = (parent.getWidth() - getWidth());
             gamePanel.switchMainMenu();}};}
}
游戏界面:
@SuppressWarnings({ "unused", "serial" })
public class GameGUI extends JPanel {//卡片布局器private CardLayout cardLayout = new CardLayout();//进度条面板 private ProgressPanel progressPanel; //菜单面板private MainMenuPanel menuPanel;//游戏面板private GamePanel gamePanel;//需要updateprivate Abstractpanel currentPanel;
       }}
}
游戏界面:
/*** 游戏界面*/
public class GamePanel extends Abstractpanel{GridMap gridmap;GridMapRender gridMapRender;Control control;ConsolePanel controlPanel;Robot robot; public void init(){initControl();gridmap = ResourceManager.resourceManager.getGridMap();
     };}
}
游戏界面:
@SuppressWarnings({ "unused", "serial" })
public class GameGUI extends JPanel {//卡片布局器private CardLayout cardLayout = new CardLayout();//进度条面板 private ProgressPanel progressPanel; //菜单面板private MainMenuPanel menuPanel;//游戏面板private GamePanel gamePanel;//需要updateprivate Abstractpanel currentPanel;//单人游戏面板private SingleGamePanel singleGamePanel;//多人能游戏面板private MutilPlayerPanel mutilPlayerPanel;NewGamePanel newGamePanel;
         }});control.addRightPressListener(new RightPressListener(){public void press(int x, int y) {gridMapRender.move(x, y);}});   control.addMoveListener(new MoveListener(){public void move(int x, int y) {int offsetX = gridMapRender.offsetX;int screenX = getWidth()-GridMapRender.TILE_WIDTH;//濡傛灉榧犳爣浣嶄簬灞忓箷瀹藉害鍓嶄竴涓猅ILE瀹藉害if(x>screenX&&offsetX<GridMapRender.tileXToPx(107)){
                 rightPanel.elastic.slide(600, 200);try {Thread.sleep(200);} catch (InterruptedException e1) {e1.printStackTrace();}gameGUI.switchProgress(playerList.getType(),playerList.getPlayers());}}};ActionListener returnListen = new ActionListener() {public void actionPerformed(ActionEvent e) {leftPanel.players.get(0).removeAllElements();gameGUI.netWorkManager.close();
         int location=120;final DefaultComboBoxModel mode1 = new DefaultComboBoxModel(labels);mode1.addListDataListener(new ListDataListener(){public void contentsChanged(ListDataEvent e) {DefaultComboBoxModel model = (DefaultComboBoxModel) e.getSource();Object item = model.getSelectedItem();//System.out.println(item+ ".contentsChanged()  1");if(item.equals("Computer") || item.equals("Open") || item.equals("Closed")){gameGUI.netWorkManager.select(item.toString(), 1);//System.out.println(item);}}public void intervalAdded(ListDataEvent e) {}public void intervalRemoved(ListDataEvent e) {}});final DefaultComboBoxModel mode2 = new DefaultComboBoxModel(labels);mode2.addListDataListener(new ListDataListener(){public void contentsChanged(ListDataEvent e) {String value = mode2.getSelectedItem().toString();if(value.equals("Computer") || value.equals("Open") || value.equals("Closed")){gameGUI.netWorkManager.select(value,2);
             public void intervalRemoved(ListDataEvent e) {}});//如果是SingleGame
//          if(gameGUI.netWorkManager instanceof MockNetWorkManager){//              players.add(new DefaultComboBoxModel(new String[]{"Player"}));
//          }else{//              players.add(new DefaultComboBoxModel());
//          }//System.out.println("gameGUI.netWorkManager:"+gameGUI.netWorkManager);players.add(new DefaultComboBoxModel());players.add(mode1);players.add(mode2);players.add(mode3);for(int y=0;y<jcbs.length;++y){
 //卡片布局器private CardLayout cardLayout = new CardLayout();//进度条面板 private ProgressPanel progressPanel; //菜单面板private MainMenuPanel menuPanel;//游戏面板private GamePanel gamePanel;//需要updateprivate Abstractpanel currentPanel;//单人游戏面板
 //进度条面板 private ProgressPanel progressPanel; //菜单面板private MainMenuPanel menuPanel;//游戏面板private GamePanel gamePanel;//需要updateprivate Abstractpanel currentPanel;//单人游戏面板private SingleGamePanel singleGamePanel;//多人能游戏面板private MutilPlayerPanel mutilPlayerPanel;NewGamePanel newGamePanel;NetWorkManager netWorkManager;GridMapRender mapRender;JFrame frame;
                 jcbs[index][1].setVisible(false);}else{jcbs[index][1].setVisible(true);}}}private void initJComboBox(JComboBox jcb){jcb.setSize(120, 20);jcb.setOpaque(false);jcb.setFocusable(false);jcb.setRenderer(new StarComboBoxRender());jcb.setUI((ComboBoxUI) StarComboBoxUI.createUI(jcb));jcb.setBorder(new RoundBorder(Color.red));add(jcb);}public void paintComponent(Graphics g) {g.drawImage(image, 0, 0, null);g.setColor(fillColor);g.fillRect(20, 45, getWidth() - 25, getHeight() - 50);
         });control.addDragListener(new DragListener(){public void drag(int x, int y, int dx, int dy) {gridMapRender.focus(x, y, dx, dy);}});control.addLeftPressListener(new LeftPressListener(){public void press(int x, int y) {//gridMapRender.focus(x, y);gridMapRender.operate(x, y);
                 if(value.equals("Computer") || value.equals("Open") || value.equals("Closed")){gameGUI.netWorkManager.select(value,3);}}public void intervalAdded(ListDataEvent e) {}public void intervalRemoved(ListDataEvent e) {}});//如果是SingleGame
//          if(gameGUI.netWorkManager instanceof MockNetWorkManager){//              players.add(new DefaultComboBoxModel(new String[]{"Player"}));
//          }else{//              players.add(new DefaultComboBoxModel());
//          }//System.out.println("gameGUI.netWorkManager:"+gameGUI.netWorkManager);players.add(new DefaultComboBoxModel());players.add(mode1);players.add(mode2);players.add(mode3);

基于java+swing的潜艇大战项目游戏(java+swing)相关推荐

  1. 基于JavaSwing开发潜艇大战小游戏 课程设计 大作业源码

    基于JavaSwing开发潜艇大战小游戏:  (大作业) 开发环境: Windows操作系统 开发工具: Eclipse+Jdk 运行效果图: 基于JavaSwing开发潜艇大战小游戏:  (大作业) ...

  2. Java项目:潜艇大战项目(java+swing)

    源码获取:博客首页 "资源" 里下载! 功能简介: Java swing实现的一款小游戏潜艇大战的项目源码 游戏界面: @SuppressWarnings({ "unus ...

  3. java游戏代码潜艇大战_java游戏之潜艇大战

    java游戏之潜艇大战 java 2020-6-15 下载地址 https://www.codedown123.com/25881.html java游戏之潜艇大战 资源下载此资源下载价格为2D币,请 ...

  4. JAVA 实现《坦克大战》游戏|CSDN创作打卡

    前言 小时候大家都玩过坦克大战吧,熟悉的旋律和丰富的关卡陪伴了我们一整个寒暑假,还记得传说中的经典坦克大战 吗?那些怀旧的记忆,伴随着我们一起走过来的经典坦克大战,刚开始那战战兢兢,屡屡被敌人坦克击毁 ...

  5. 【Java代码实现飞机大战小游戏】简单理解

    飞机大战 飞机大战小游戏历经10天完成,主要用到的就是我们面向对象部分的知识:类,封装,继承,多态,静态代码块等等内容+swing部分内容.所以即使你是java小白,也不用担心欧! 游戏说明:游戏有3 ...

  6. 教你用JAVA设计一个飞机大战的游戏

    本次Java课程设计是做一个飞机大战的游戏,应用Swing编程,完成一个界面简洁流畅.游戏方式简单,玩起来易于上手的桌面游戏.该飞机大战项目运用的主要技术即是Swing编程中的一些窗口类库.事件监听以 ...

  7. 使用《红孩儿工具箱》开发基于Cocos2d-x的《坦克大战》游戏

    大家好,我是红孩儿.上一节我们学习了使用<红孩儿工具箱>开发<打地鼠>游戏.这一节我们继续学习使用<红孩儿工具箱>来开发<坦克大战>游戏. <坦克 ...

  8. java编写家庭收支记录,Java家庭收支记账小项目(java基础)

    Java家庭收支记账小项目(java基础) Java家庭收支记账小项目(java基础) 需求说明: 模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支 ...

  9. 潜艇大战java代码_java潜艇大战游戏源码项目

    代码如下 package com.util; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimensio ...

最新文章

  1. 死磕Java并发:J.U.C之Java并发容器:ConcurrentLinkedQueue
  2. 设备和驱动在第一次加载,会遍历总线
  3. python和excel的区别-Python与Excel 不得不说的事情
  4. python requests session刷新_Python Requests Session set-cookie不生效的坑
  5. C#运算符重载(操作符重载)
  6. 解决Linux新安装的虚拟机没有网
  7. 静态构造函数和静态成员变量初始化的调用时间
  8. 微软取消被指下流的Windows 10更新方法
  9. iOS警报– UIAlertController
  10. java工程师容易秃头吗_程序员更容易秃头?原因是什么?
  11. linux恢复群晖数据,数据丢失的后悔药,群晖NAS备份方案详解
  12. 在 GitHub 上玩转开源项目的 Code Review
  13. 使用aria2批量下载微博相册
  14. jenkins下载插件失败
  15. 使用PS批量处理图片大小
  16. jQuery选择器代码详解(一)——Sizzle方法
  17. 逻辑电路复杂?我们用Logisim一键解决
  18. iOS 中将数据导出成Excel文件 ---- libxlsxwriter框架
  19. 神探夏洛克第一季/全集Sherlock1迅雷下载
  20. T检验、F检验、卡方检验、互信息法及机器学习应用

热门文章

  1. PLC电气控制基本原理1--点动连续运动两地控制
  2. 高性能库DPDK精简理解
  3. Linux后台开发系列之「08.15 个 gdb 调试基础命令」
  4. 实例三:MATLAB APP design-多项式函数拟合
  5. 美发店管理软件有什么用?
  6. 【机器视觉】深度解析移动机器人的几种视觉算法
  7. 【数据库系统】—— 经典范例University数据库各表速查(大学系统)
  8. 音视频通话的方案记录
  9. 360驱动大师还原驱动的操作方法详细教程
  10. 诈骗新招:***修改医师考试分数