import sun.plugin2.util.ColorUtil;import javax.swing.*;
import java.awt.*;
import java.awt.event.*;//挡板接小球游戏
//小球垂直运动
/*1、小球设置了四个关卡
2、通过每一关卡程序提示:“恭喜您已经进入下一关卡”
3、进入下一关卡小球改变一次颜色
4、进入下一关卡挡板缩短一段长度
5、进入下一关卡小球速度提高一个档位
6、程序结束:小球停止运行、并显示游戏结
束、显示所得分数*/public class Games {public static void main(String[] args) {new MyJFrame.GameStart1().launchFrame();}
}class MyJFrame extends JFrame {public MyJFrame() {//标题设置this.setTitle("接小球游戏");//设置窗体的大小this.setSize(1000, 600);//设置窗体居中this.setLocationRelativeTo(null);//设置关闭当前进程this.setDefaultCloseOperation(3);//设置面板对象MyJpanel Jpanel = new MyJpanel();this.add(Jpanel);//窗体可视化this.setVisible(true);}class MyJpanel extends JPanel implements Runnable, MouseMotionListener, MouseListener {//小球属性int d = 30;//小球直径Color color = Color.WHITE;//小球的颜色int x = (int) (Math.random() * 1000);//小球初始坐标int y = 50;//小球初始纵坐标int ydir = 1;int xdir = 1;//小球x轴的偏移量int spend = 2;int xL = 100;//挡板横坐int yL = 550;//挡板纵坐标int length = 400;//挡板长度boolean flag = false;//标识int score = 0;//得分Thread thread = null;Color c;public MyJpanel() {setBackground(Color.WHITE); //设置面板的背景颜色thread = new Thread(this);thread.start();addMouseMotionListener((MouseMotionListener) this);}public void paint(Graphics g) {super.paint(g);g.setColor(c);//g.setColor(color);g.fillOval(x, y, d, d);Font font = new Font("微软雅黑", Font.BOLD, 35);g.setFont(font);g.drawString("得分:" + score, 800, 100);Graphics2D graphics2D = (Graphics2D) g;graphics2D.setStroke(new BasicStroke(20));graphics2D.drawLine(xL, yL, xL + length, yL);//挡板//显示关卡数
//        if(score==30){
//            g.drawString("您已进入第二关",400,200);
//        }switch (score) {case 30:g.drawString("恭喜您,已进入第二关", 350, 200);break;case 70:g.drawString("恭喜您,已进入第三关", 350, 200);break;case 130:g.drawString("恭喜您,已进入第四关", 350, 200);case 200:g.drawString("魔鬼关卡", 350, 200);}//        g.setColor(c);if (flag) {g.setColor(Color.darkGray);font = new Font("微软雅黑", Font.BOLD, 80);g.setFont(font);g.drawString("游戏结束", 250, 200);g.drawString("您的得分是:" + String.valueOf(score) + "分", 250, 300);}}public void run() {while (true) {y += ydir * spend;//小球下落x += xdir * 3;//小球的x偏移
//            if(y>=600-d || y<=0){
//                ydir*=-1;
//            }if (x >= 1000 - d || x <= 0) {xdir *= -1;}if (y <= 550) {if (y < 0) {ydir *= -1;}if (y >= 550 - d && x > xL - d / 2 && x < xL + length + d / 2) {
//                    c=new Color((int)(Math.random()*256), (int)(Math.random()*256), (int)(Math.random()*256));ydir *= -1;score += 5;if (score >= 200) {c = new Color(0, 0, 255);spend = 10;length = 200;} else if (score >= 130) {c = new Color(0, 255, 0);spend = 8;length = 250;} else if (score >= 70) {c = new Color(255, 0, 0);spend = 6;length = 300;} else if (score >= 30) {c = new Color(255, 204, 00);spend = 4;length = 350;}}} else {
//                System.out.println("游戏结束");flag = true;//标识repaint();thread.stop();//结束游戏}repaint();//重新绘制画布try {Thread.sleep(10);} catch (InterruptedException e) {e.printStackTrace();}}}@Override//鼠标拖拽时public void mouseDragged(MouseEvent e) {}@Override//鼠标移动时public void mouseMoved(MouseEvent e) {int xm = 0;//获取鼠标的横坐标int ym = 0;if ((e.getX() >= xL - 10 && e.getX() <= xL + length + 10) && (e.getY() > 500 && e.getY() < 600)) {
//            System.out.println("鼠标进入挡板区域");setCursor(new Cursor(Cursor.HAND_CURSOR));//设置鼠标样式为小手xL = e.getX() - length / 2;} else {setCursor(new Cursor(Cursor.DEFAULT_CURSOR));//设置鼠标样式为默认值}}@Overridepublic void mouseClicked(MouseEvent e) {}@Overridepublic void mousePressed(MouseEvent e) {}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic void mouseExited(MouseEvent e) {}}static class GameStart1 extends JFrame {private Container LoginMainPanel;public void launchFrame() {GameStart1 gameStart1 = new GameStart1();Font font1 = new Font("黑体", Font.BOLD, 55);JButton button = new JButton("开始游戏");button.setFont(font1);gameStart1.setSize(1000, 600);gameStart1.setTitle("开始游戏");gameStart1.getContentPane().add(button);gameStart1.setDefaultCloseOperation(3);gameStart1.setLocationRelativeTo(null);gameStart1.setResizable(false);button.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {gameStart1.dispose();new MyJFrame();}});gameStart1.setVisible(true);}}
}

挡板接小球视频展示,代码在我博客

java实现挡板接小球游戏相关推荐

  1. Java挡板接小球游戏

    虽然在学校Java学了很久了,但是什么也没学到,最近实习,老师在课堂授课时用这个小游戏来讲解Java中的基础知识,在这里拿出来作为学习过程的记录,希望以后能够每天进步. 建立一个Java项目,创建一个 ...

  2. java挡板怎么写_Java挡板接小球游戏

    版权声明:© 2018 chashu All Rights Reserved.https://blog.csdn.net/tongshuyang/article/details/83054905 虽然 ...

  3. Java 碰壁小球游戏实例教程

    本教程会举例用Java实现简单的小球碰壁反弹游戏,效果如图所示: JFrame: 窗体部分 首先创建一个窗体界面,下面举一个简单的例子(Jframe是自己定义的类名,注意和JFrame的区别) imp ...

  4. 复习Java小球游戏代码分享Java面试题MySQL中常用的锁生活【记录一个咸鱼大学生三个月的奋进生活】021

    记录一个咸鱼大学生三个月的奋进生活021 复习Java小球游戏 游戏界面的代码 小球运动线程的代码 运行游戏的代码 运行结果 代码分享 学习Java面试题(MySQL中常用的锁) 照片分享 复习Jav ...

  5. 挡板java_java小程序挡板接小球

    package ball; import javax.swing.JFrame; public class BallFrame { public static void main(String[] a ...

  6. java怎么做简易的游戏,Java小项目之《简易桌面小游戏》

    注意小球的运动范围,规定向右为正,如果不限定范围小球可能会跑出银河系-所以限定小球碰到左面左右回弹 画完窗口后运行若还是一片空白可以先最大化然后最小化解决 代码目录 实现代码 import java. ...

  7. java实现简单窗体小游戏----球球大作战

    java实现简单窗体小游戏----球球大作战 需求分析 1.分析小球的属性: ​ 坐标.大小.颜色.方向.速度 2.抽象类:Ball ​ 设计类:BallMain-创建窗体 ​ BallJPanel- ...

  8. linux查看文件夹个球,[原创]linux下面的打小球游戏

    [原创]linux下面的打小球游戏 (2012-04-10 04:51:44) 标签: linux 游戏 杂谈 [原创]linux下面的打小球游戏linux下面的C编程,我还是新手,请大家别笑话. # ...

  9. Python实现小球游戏

    用python实现小球的游戏,小球不断运动,用挡板接住小球使小球一直运动即可得分,参照着输上的介绍写的,很简易的游戏,只需要导入sys 和 pygame模块. 效果图如下所示: # -*- codin ...

最新文章

  1. hdu4169_Wealthy Family_树形DP(2011美国区域赛)
  2. 360下载的mysql_MySQL数据库5.7
  3. python学习笔记(八)——继承
  4. docker 配置加速器
  5. Web APP开发技巧总结(转)
  6. Element Swapping
  7. lintcode: 把排序数组转换为高度最小的二叉搜索树
  8. Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) D. Little Artem and Dance 模拟
  9. python之迭代器,生成器
  10. 开工了,为自己做的软件。先做些控件。
  11. 浙江法院智能语音识别系统全面上线
  12. Linux开发:error: ‘clockid_t’ has not been declared
  13. 计算机无法识别语音输入,我的电脑每次启动语音识别总是显示“由于语言配置不受支持,无法启动语音识别”;...
  14. 软件测试的概括及流程
  15. css3 360度旋转
  16. 【最大公约数】欧几里得算法
  17. CCF推荐|中科院2区生物信息与计算机类SCI征稿~
  18. P8195 [传智杯 #4 决赛] 小智的疑惑
  19. 学习网络攻防,有什么渠道?
  20. 测试下1K个宏和程序运行空间大小的关系

热门文章

  1. Navigator.clipboard剪切板 API 可用于实现剪切、复制、粘贴的功能。
  2. 远程办公效率低的一定要看这篇,让你办公效率提升80%
  3. 敏捷开发入门教程-----摘抄
  4. 在 4G 内存的机器上,申请 8G 内存会怎么样?
  5. Linux如何隐藏分区,如何从ubuntu隐藏(n)(NTFS)分区
  6. MySQL-用Navicat进行用户管理-学习笔记02
  7. SalGaze:使用视觉显著性的个性化注视估计
  8. 学会写企业网络营销方案
  9. python- cx_Freeze安装、打包exe文件
  10. 又一年1024 - 我们在路上!