⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gamelistener.java

📁 a java game code for java
💻 JAVA
字号:
package eatbean.event;import eatbean.Debug;//import java.util.EventListener;import java.util.Vector;/** * Title:        吃豆子 * Description:  小游戏 * Copyright:    Copyright (c) 2002 * Company:      Raindrop * @author       一无所有 * @version 1.0 *//** 消息发送后立即返回,然后再由processMsg处理 */public abstract class GameListener extends Thread implements EventListener {	private Vector msgQueue = new Vector();	private boolean keepRunning = true;	public GameListener() {	    this.start();	}	public final void run() {		GameEvent msg;		while(keepRunning) {		    msg = getMsg();			processMsg(msg);		}		while(!msgQueue.isEmpty()) {			//处理剩余消息			msg = (GameEvent)removeFirst(msgQueue);			processMsg(msg);		}	}	private final void processMsg(GameEvent msg) {		if(msg == null) return;		switch(msg.getMsgId()) {			case GameEvent.MSG_OBJECT_EAT :				objectEat(msg);				break;			case GameEvent.MSG_ACTOR_EAT :				actorEat(msg);				break;			case GameEvent.MSG_STATION_DONE :				stationDone(msg);				break;			default :				if(Debug.ON) Debug.println("GameListener.processMsg() : 无法识别的消息类型");		}	}	private synchronized GameEvent getMsg() {		GameEvent result = null;		if(msgQueue.isEmpty())			try {				wait(); //释放对象锁,等待notify			} catch(Exception ex) {}		else {			result = (GameEvent)removeFirst(msgQueue);		}		return result;	}	public synchronized void postMsg(GameEvent msg) {		if(!keepRunning) return;		msgQueue.addElement(msg);		notifyAll();    //唤醒getMsg();	}	public synchronized void free() {		//有待改进		keepRunning = false;		notifyAll();	}	private Object removeFirst(Vector v) {		Object result;		result = v.elementAt(0);		v.removeElementAt(0);		return result;	}	/** 豆子或其他特殊对象被Fairy吃 */	abstract protected void objectEat(GameEvent e);	/** Fairy或Sprite对象被吃 */	abstract protected void actorEat(GameEvent e);	/** 所有的豆豆被吃完 */	abstract protected void stationDone(GameEvent e);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -