《打地鼠》(Whac-A-Mole)是一个趣味性的游戏副本,模仿大家熟悉的打地鼠小游戏。游戏由2-4个玩家合作使用技能消灭地洞里的地鼠,相应颜色的玩家杀死相应颜色的地鼠,最后结算得到的总分。
简单说明在新游戏页面点击后,即可直接进入游戏。此刻,地鼠会从一个个地洞中不经意的探出一个脑袋,或者一双眼睛,企图躲过游戏者的视线。不用心软,直接敲你的手丫子,拍掌下去,力求一次一个准,来一个砸一个,来二个砸一双。游戏模式1、过关方式先选择合适自己的过关百分比,从第一关(难度1)打起,每关都有固定数量的棕鼠和少量的白鼠,打中一只棕鼠加10分,过关会有一定的分数奖励,打中棕鼠数除以棕鼠出现总数达到事先设定的百分比就可以进行下一关,但如果打中一只白鼠,打中数就会减1。2、自定义难度方式先选择合适自己的难度,一开始有十条命,打中一只棕鼠加10分,打到一定分数就会奖励一条命,漏掉一只棕鼠或错打一只白鼠都会减掉一条命,直到生命为0时GAME OVER。
package com.lzwimport java.awt.EventQueue
import java.awt.event.MouseAdapter
import java.awt.event.MouseEvent
import javax.swing.ImageIcon
import javax.swing.JFrame
import javax.swing.JLabel
public class Shrewmouse extends JFrame implements Runnable {
private JLabel[] mouses //存放显示底数的标签数组
private ImageIcon imgMouse //地鼠图片对象
public static void main(String args[]){
EventQueue.invokeLater(new Runnable(){
public void run(){
try{
Shrewmouse frame=new Shrewmouse() //创建窗体
frame.setVisible(true)//显示窗体
new Thread(frame).start() //启动线程
}catch(Exception e){
e.printStackTrace()
}
}
})
}
public Shrewmouse(){
super()
this.setResizable(false) //禁止调整窗体大小
this.getContentPane().setLayout(null)//窗体不使用布局管理器
this.setTitle("简易的打地鼠游戏") //设置窗体标题
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
ImageIcon img=new ImageIcon(getClass().getResource("background.jpg"))
//初始化背景图片
imgMouse=new ImageIcon(getClass().getResource("mouse1.jpg"))
//初始化地鼠图片对象
mouses=new JLabel[6] //创建显示地鼠的标签数组
for(int i=0i<6i++){ //遍历数组
mouses[i]=new JLabel() //初始化每一个数组元素
mouses[i].setSize(imgMouse.getIconWidth(),imgMouse.getIconHeight())
//设置标签与地鼠图片相同大小
mouses[i].addMouseListener(new MouseAdapter(){//为标签添加鼠标事件监听适配器
/**
* 处理鼠标单击事件的方法
*/
@Override
public void mouseClicked(MouseEvent e){
Object source=e.getSource() //获取事件源,即地鼠标签
if(source instanceof JLabel){ //如果事件是标签组件
JLabel mouse=(JLabel)source //强制转换为JLabel标签
mouse.setIcon(null) //取消标签图标
}
}
})
this.getContentPane().add(mouses[i]) //添加显示地鼠的标签到窗体
}
mouses[0].setLocation(253, 300) //设置每个标签的位置
mouses[1].setLocation(333, 250)
mouses[2].setLocation(388, 296)
mouses[3].setLocation(362, 364)
mouses[4].setLocation(189, 353)
mouses[5].setLocation(240, 409)
final JLabel backLabel=new JLabel() //创建显示背景的标签
backLabel.setBounds(0, 0, img.getIconWidth(), img.getIconHeight())
this.setBounds(100,100,img.getIconWidth(),img.getIconHeight())
backLabel.setIcon(img)//添加背景到标签
this.getContentPane().add(backLabel) //添加背景标签到窗体
}
/**
* 线程的核心方法
*/
public void run(){
while(true){//使用无限循环
try{
Thread.sleep(3000)//使线程休眠3秒
int index=(int)(Math.random()*6) //生成随机的地鼠索引
if(mouses[index].getIcon()==null){ //如果地鼠标签没有设置图片
mouses[index].setIcon(imgMouse) //为该标签添加地鼠图片
}
}catch(InterruptedException e){
e.printStackTrace()
}
}
}
}