龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

Java基于Swing实现的打猎射击游戏代码(3)

时间:2014-11-14 11:09来源:网络整理 作者:网络 点击:
分享到:
/** * 从容器移除本组件的方法 */ public void destory() { if (parent == null) return; parent.remove(this);// 从父容器中移除本逐渐 parent.repaint(); parent = null; // 通过该语句终

        /**
         * 从容器移除本组件的方法
         */
        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);
        }

精彩图集

赞助商链接