Java基于Swing实现的打猎射击游戏代码(3)
/**
* 从容器移除本组件的方法
*/
public void destory() {
if (parent == null)
return;
parent.remove(this);// 从父容器中移除本逐渐
parent.repaint();
parent = null; // 通过该语句终止线程循环
}
/**
* 加分的方法
*/
private void appScore() {
System.out.println("小鸟被击中");
MainFrame.appScore(15);
}
}
package Game;
import java.awt.Container;
import java.awt.event.*;
import javax.swing.*;
public class PigLabel extends JLabel implements Runnable {
private static final long serialVersionUID = 1L;
// 随机生成休眠时间,即野猪移动速度
private int sleepTime = (int) (Math.random() * 300) + 30;
private int y = 260;// 控件的垂直坐标
private int score = 10;// 该角色对应的分数
private Thread thread;// 内置线程对象
private Container parent;// 控件的父容器对象
/**
* 构造方法
*/
public PigLabel() {
super();
ImageIcon icon = new ImageIcon(getClass().getResource("pig.gif"));// 加载野猪图片
setIcon(icon);// 设置本组件的图标
// 添加鼠标事件适配器
addMouseListener(new MouseAdapter() {
// 按下鼠标按键的处理方法
public void mousePressed(final MouseEvent e) {
if (!MainFrame.readyAmmo())
return;
MainFrame.useAmmo();// 消耗子弹
appScore();// 给游戏加分
destory();// 销毁本组件
}
});
// 添加组件事件适配器
addComponentListener(new ComponentAdapter() {
// 调整组件大小时
public void componentResized(final ComponentEvent e) {
thread.start();// 启动线程
}
});
// 初始化线程对象
thread = new Thread(this);
}
- 上一篇:java基于swing实现的连连看代码
- 下一篇:MyEclipse到期破解代码分享