赞
踩
声明:该文章只是做技术分享,若侵权请联系我删除。!!
感谢大佬的视频:https://www.bilibili.com/video/BV1Ke411p7BW/
源码:https://space.bilibili.com/565112134
使用技术:Java(JavaSE期末课程设计)
主要内容:用java实现桌面版打地鼠2.0
(1)当点击运行程序后将弹出游戏界面并开始游戏,初始出现次数为0、打中次数为0、等级为1
(2)如果出现次数到达10次未能打中9次将会提示通关失败并询问是否重新开始。如果满足条件就会提示通关点击否后继续游戏。打到五关即可通关。通关后点击确定即可退出程序
(3)如果玩家在中途想退出程序点击X关闭窗口也可以退出程序。
打地鼠游戏是一款实现地鼠能随机闪现并能捕捉到鼠标是否敲击中地鼠的游戏。
2)地鼠是以图片形式存在的,地鼠的闪现是通过控制图片的出现和消失来实现的,通过控制线程的休眠时间来控制地鼠图片的出现和保持的时间,在休眠时间结束后地鼠图片将消失,即地鼠存在的时间是在规定的时间内,无论是否被敲击,地鼠存在的时间都是固定的。同时,需要对每个地洞上出现的地鼠都添加监听器,即捕捉鼠标是否敲击到地鼠,若敲击到地鼠标签都会通过改变标签中的图片提示玩家,若没有敲击到则地鼠在规定的时间内自动消失。
3)游戏设置了五关,难度逐渐上升,通过减少地鼠停留时间来实现的。
4)玩家在打地鼠游戏中敲击地鼠使用的工具是锤子,锤子也是通过图片的形式存在。敲击地鼠是通过鼠标来点击,锤子需要跟着鼠标的移动而移动,因此需要将锤子图片设置为鼠标的图标来实现锤子的随机移动。通过抽象类工具的使用,调用鼠标设置图标的方法,将锤子的图片设置为鼠标的图标。
public HitMouse() { setTitle("打地鼠");//窗口标题 setDefaultCloseOperation(EXIT_ON_CLOSE);//使用 System exit 方法退出应用程序。仅在应用程序中使用。 关闭窗口并退出程序 setLocation(200, 200);//设置窗口位置 setSize(438, 375);//设置窗口长宽 setResizable(false);//窗口大小不可变 //demo(); setBak();//设置背景 设置地鼠代码: jlbMouse = new JLabel( new ImageIcon(DIR+"dishu.png")); jlbMouse.setLocation(100, 100); jlbMouse.setSize(80, 80); getContentPane().add(jlbMouse);//获得窗口面板并添加控件 jlbMouse.setVisible(false);//关闭窗口的方法,将窗口隐藏,但窗口的相关资源仍然存在 jlbMouse.addMouseListener(this); //this是指当前类的实例,addMouseListener是指给当前的实例指定一个能处理鼠标事件的实例,这里用this,是指由当前实例处理。 //定时器 timer = new Timer(delay,this); timer.start(); 设置出现次数、打中次数、当前等级代码: JPanel panel = new JPanel();//创建一个面板,是容器类,里面可以布局,放按钮那些空间,然后可以面板上嵌面板,都放在JFrame上的 panel.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));//设置边框凹下去效果 panel.setPreferredSize(new Dimension(438,375)); getContentPane().add(panel); //加了panel之后,前面就不需要屏蔽框架内容窗格的BorderLayout了。因为现在,内容窗格都被panel盖住了 panel.setOpaque(false);//设置控件透明 //出现次数 timesShowLabel = new JLabel("0", new ImageIcon(DIR+"chuxiancishu.png"), SwingConstants.CENTER);//居中 timesShowLabel.setFont(new Font("幼圆", Font.BOLD, 20));//设置字体 timesShowLabel.setSize(146, 40);//设置面板长宽 panel.add(timesShowLabel);//设置好之后添加到画板内 //打中次数 timesHitLabel = new JLabel("0", new ImageIcon(DIR+"dazhongcishu.png"), SwingConstants.CENTER); timesHitLabel.setFont(new Font("幼圆", Font.BOLD, 20)); timesHitLabel.setSize(146, 40); panel.add(timesHitLabel); //等级 gradeLabel = new JLabel("1", new ImageIcon(DIR+"dangqiandengji.png"), SwingConstants.CENTER); gradeLabel.setFont(new Font("幼圆", Font.BOLD, 20)); gradeLabel.setSize(146, 40); panel.add(gradeLabel); setVisible(true);//关闭窗口的方法,将窗口隐藏,但窗口的相关资源
想要看具体效果的同学,可以访问这个链接:
https://www.bilibili.com/video/BV1Ke411p7BW/
具体的代码也在该链接下。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。