java实现潜艇大战游戏源码

代码如下

package com.util;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.GridLayout;

import java.awt.Image;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Observable;

import javax.swing.JLabel;

import javax.swing.JPanel;

/*

* 进图游戏的主界面面板

*/

public class MainPanel extends JPanel

{

private static final long serialVersionUID = 1L;

private MyButton startButton;

private MyButton exitButton;

private JLabel helpLabel;

private JLabel helpLabel1;

private JLabel helpLabel2;

private JLabel helpLabel3;

private Image image;

private JLabel centerlabel;

private boolean isStart;

private boolean isExit;

private Observable obs;

public MainPanel(Observable ob)

{

obs = ob;

startButton = new MyButton("进入游戏");

exitButton = new MyButton("退出游戏");

helpLabel = new JLabel();

helpLabel1 = new JLabel();

helpLabel2 = new JLabel();

helpLabel3 = new JLabel();

centerlabel = new JLabel();

this.setLayout(new BorderLayout());

this.helpLabel.setPreferredSize(new Dimension(645,291));

this.helpLabel1.setPreferredSize(new Dimension(180,80));

this.helpLabel2.setPreferredSize(new Dimension(215,80));

this.helpLabel3.setPreferredSize(new Dimension(645,80));

this.centerlabel.setPreferredSize(new Dimension(460,80));

centerlabel.setLayout(new GridLayout(2,1));

centerlabel.add(this.startButton);

centerlabel.add(this.exitButton);

this.centerlabel.setBackground(new Color(255,255,0));

this.add(helpLabel,BorderLayout.NORTH);

this.add(helpLabel1,BorderLayout.EAST);

this.add(helpLabel2,BorderLayout.WEST);

this.add(helpLabel3,BorderLayout.SOUTH);

this.add(centerlabel,BorderLayout.CENTER);

image = Toolkit.getDefaultToolkit().getImage("imgs/主界面112.png");

// image = new ImageIcon(image).getImage();

this.startButton.addActionListener(

new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

boolean flag = true;

MainPanel.this.setIsStart(flag);

MainPanel.this.obs.notifyObservers(MainPanel.this);

}

}

);

this.exitButton.addActionListener(

new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

MainPanel.this.setExit(true);

}

}

);

}

public void paint(Graphics g)

{

super.paint(g);

Graphics2D g2 = (Graphics2D) g;

g2.drawImage(image,0,0, this.getWidth(), this.getHeight(),this);

super.paintComponents(g);

}

public boolean getIsStart()

{

return this.isStart;

}

public void setIsStart(boolean isStart)

{

this.isStart = isStart;

}

public boolean isExit() {

return isExit;

}

public void setExit(boolean isExit) {

this.isExit = isExit;

}

}

效果图

以上就是java实现潜艇大战游戏源码的详细内容,更多关于java潜艇大战游戏的资料请关注我们其它相关文章!

(0)

相关推荐

  • java类与对象案例之打字游戏

    类与对象案例-童年回忆之打字游戏 一.玩家类 二.等级类 三.游戏类 四.等级地图 五.测试类 这次要做的案例是一个打字游戏的案例,相信大家小时候都玩过金山打字通的警察抓小偷和飞机大战,这次的案例是类似的简易版. 首先对于这个案例,我们要解决的是如何生成随机的字符串,如何判断生成的字符串和输入的字符串是否相等. 一.玩家类 package com.yc.oop6.hc0705; public class Player { private int score; //积分 private long

  • java实现简易五子棋游戏

    本文实例为大家分享了java实现简易五子棋游戏的具体代码,供大家参考,具体内容如下 编写一个简易五子棋,棋盘在控制台中绘制,棋盘每- - 个点都有对应的坐标,下棋者输 入对应坐标落棋子,运行效果如图所示.两位数字表示的坐标中,第-一个数字表示横坐标, 第二个数字表示纵坐标,运行结果如图所示. 代码: package Test; import java.util.Scanner; public class Test4 { public static void main(String[] args)

  • Java实现简单推箱子游戏

    本文实例为大家分享了Java实现简单推箱子游戏的具体代码,供大家参考,具体内容如下 *编写一个简易的推箱子游戏,使用10*8的二维字符数据表示游戏画面,H表示墙壁; &表示玩家角色: o表示箱子,表示目的地.玩家可以通过输入a.d.w. s字符控制角色 移动,当箱子推到目的地时显示游戏结束,运行结果如图所示. package test; import java.util.Random; import java.util.Scanner; public class test3 { public s

  • java实现双色球彩票游戏

    综合案例开发:模拟双色球彩票游戏 玩法说明: 双色球投注区分为红球号码区和蓝球号码区,红球号码范围为01-33,蓝球号码范围为01-16.双色球每期从33 个红球中开出6个号码(不能重复),从16个蓝球中开出1个号码作为中奖号码,双色球玩法即是竞猜开奖号码的6 个红球号码和1个蓝球号码,顺序不限. 用户输入红球和蓝球号码,程序输出该用户中几等奖. 代码实现: import java.util.Random; import java.util.Scanner; public class Simul

  • java实现快速打字游戏

    本文实例为大家分享了java实现打字游戏的具体代码,供大家参考,具体内容如下 import java.util.Random; import java.util.Scanner; public class Game { public Game(Player player) { } public Game() { } public String printStr(Player player) { StringBuffer a=new StringBuffer(); for(int i=0;i<Le

  • java实现2048游戏源代码

    本文实例为大家分享了java实现2048游戏源代码,供大家参考,具体内容如下 一.主要功能: 1.游戏初始化:新建游戏4×4的16宫格画布,随机格子上生成2或者4两个数字 2.格子的移动:先判断能否移动,移动后判断能否合并,合并后改变格子颜色和数字 3.新格子的生成:移动一次,就在剩余的空格子中随机生成一个2或者4 4.判赢:16宫格中合并出了"2048"则为游戏胜利 5.判输:16宫格中没有剩余空格子且不能再向任何方向移动则为游戏失败 二.项目的主要结构: 在项目2018游戏中,有4

  • java实现潜艇大战游戏源码

    代码如下 package com.util; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.Image; import java.awt.Toolkit; import java.awt.e

  • Java版坦克大战游戏源码示例

    整理文档,搜刮出一个Java版坦克大战游戏的代码,稍微整理精简一下做下分享. package tankwar; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.File; import java.io.FileInputStream; imp

  • Java实现贪吃蛇游戏源码

    本文实例为大家分享了Java实现贪吃蛇游戏源码的具体代码,供大家参考,具体内容如下 1.StartGame package com.qiang.snake; import javax.swing.*; //游戏的主启动类 public class StartGame { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setResizable(false); //窗口大小不可变 frame.s

  • Java实现Flappy Bird游戏源码

    本文实例为大家分享了Java实现Flappy Bird游戏的具体代码,供大家参考,具体内容如下 1.首先在mainActivity.xml中放置一个View,ID为viewDraw 2.开始编程,程序中自定义一个View类的子类,与viewDraw关联,程序除了放置如一个view控件,没有其他控件,程序上面的所有图片都是通过控制canvas画图实现 3.游戏是依据flappybird的游戏过程重新写的算法,功能与原版游戏相似,可能有些地方不足,完全是学习练习编程而已,做的不好见谅 4.原图片大小

  • Java实现俄罗斯方块小游戏源码

    本文实例为大家分享了Java实现俄罗斯方块小游戏的具体代码,供大家参考,具体内容如下 一.最终效果 二.功能需求 1. 在二维平面里面用各种随机产生的方块堆积木,每满一行消去一行,当达到顶部时,游戏结束.2. 通过方向键来控制方块转动,左移,右移和直落.3. 方块下落统一设置蓝色,接触底部变粉色.4. 计算分数,分数是由方块的类型决定的,每堆积一个方块就把分数累加到总分中.5. 游戏有开始.重新开始.降低提高级数(速度).暂停.退出 三.程序实现 这个是最基础的方块素材 package 俄罗斯方

  • java实战之飞机大战小游戏(源码加注释)

    一.工程文件 二.Main.java 主函数,实现类 package ui; //主函数实现 public class Main { public static void main(String[] args) { //创建窗体 GameFrame frame = new GameFrame(); //创建面板 GamePanel panel = new GamePanel(frame); //调用开始游戏的方法启动游戏 panel.action(); //将面板加入到窗体中 frame.add

  • Java实现飞机大战游戏 附完整源码

    目录 飞机大战详细文档 实现效果: 结构设计 详细分析 Main界面类使用边框布局,给面板分三个区,如图所示 绘制背景地图 飞行道具类UML图 绘制线程: 如何让我们的游戏动起来 背景的绘制 我的飞机的绘制 移动线程 如何控制我的飞机移动? 敌方飞机线程 : 如何生成敌方飞机呢? 敌方子弹线程 : 使每一个敌方飞机开火 检测碰撞线程 : 在子弹与敌机碰撞时,移除敌机 其他功能:显示玩家hp,掉落道具,得分,升级,更换地图 飞机大战详细文档 文末有源代码,以及本游戏使用的所有素材,将plane2文

  • Java编程经典小游戏设计-打砖块小游戏源码

    [程序中使用的数据结构和符号说明] HitBrick类 GreenBallThread控制小球路线 xUp,yUp,bouncing定义变量存储16位数值形式 x,y小球坐标 xDx,yDy坐标增量 MAX_X,MAX_Y坐标最大值 renew初始化 label标签 Rx,Ry横板坐标 Brick[]砖块 ball小球 HitBrick()定义小球横板及砖块位置坐标 keyPressd(keyEent)定义小球启动键(按空格键启动) keyReleased(keyEvent)接收键盘事件侦听器接

  • java实现坦克大战游戏

    本文实例为大家分享了java实现坦克大战游戏的具体代码,供大家参考,具体内容如下 一.实现的功能 1.游戏玩法介绍 2.自定义游戏(选择游戏难度.关卡等) 3.自定义玩家姓名 4.数据的动态显示 二.程序基本结构 三.主要的界面 1)游戏首页 2)自定义游戏页面 3)游戏介绍 4)开始游戏,自定义玩家姓名 5)游戏主页面 四.主要代码 1)数据的初始化类 public class Data { public static boolean isRestart=false; public stati

  • Java并发系列之CyclicBarrier源码分析

    现实生活中我们经常会遇到这样的情景,在进行某个活动前需要等待人全部都齐了才开始.例如吃饭时要等全家人都上座了才动筷子,旅游时要等全部人都到齐了才出发,比赛时要等运动员都上场后才开始.在JUC包中为我们提供了一个同步工具类能够很好的模拟这类场景,它就是CyclicBarrier类.利用CyclicBarrier类可以实现一组线程相互等待,当所有线程都到达某个屏障点后再进行后续的操作.下图演示了这一过程. 在CyclicBarrier类的内部有一个计数器,每个线程在到达屏障点的时候都会调用await

随机推荐