Java源码示例:com.badlogic.gdx.ai.msg.Telegram

示例1
@Override
public boolean handleMessage(Telegram telegram) {
	switch (telegram.message) {
		case Constants.MSG_GUI_SET_DOG_BUTTON_TO_WHISTLE:
			setDogButton(whistleButton, (HumanCharacter) telegram.extraInfo);
			return true;
		case Constants.MSG_GUI_SET_DOG_BUTTON_TO_THROW:
			setDogButton(throwButton, (HumanCharacter) telegram.extraInfo);
			return true;
		case Constants.MSG_GUI_CLEAR_DOG_BUTTON:
			clearDogButton((HumanCharacter) telegram.extraInfo);
			return true;
		case Constants.MSG_GUI_UPDATE_DOG_BUTTON:
			updateDogButton((HumanCharacter) telegram.extraInfo);
			return true;
	}
	return false;
}
 
示例2
@Override
public boolean handleMessage (Telegram telegram) {
	switch (telegram.message) {
	case PF_RESPONSE: // PathFinderQueue will call us directly, no need to register for this message
		MyPathFinderRequest pfr = (MyPathFinderRequest)telegram.extraInfo;
		if (PathFinderRequestControl.DEBUG) {
			@SuppressWarnings("unchecked")
			PathFinderQueue<FlatTiledNode> pfQueue = (PathFinderQueue<FlatTiledNode>)telegram.sender;
			System.out.println("pfQueue.size = " + pfQueue.size() + " executionFrames = " + pfr.executionFrames);
		}

		// Swap double buffer
		workPath = activePath;
		activePath = (TiledSmoothableGraphPath<FlatTiledNode>)pfr.resultPath;

		isActivePathSmoothed = pfr.smoothEnabled;

		// Release the request
		requestPool.free(pfr);
		break;
	}
	return true;
}
 
示例3
/** Handles received telegrams. The telegram is first routed to the current state. If the current state does not deal with the
 * message, it's routed to the global state's message handler.
 * 
 * @param telegram the received telegram
 * @return true if telegram has been successfully handled; false otherwise. */
@Override
public boolean handleMessage (Telegram telegram) {

	// First see if the current state is valid and that it can handle the message
	if (currentState != null && currentState.onMessage(owner, telegram)) {
		return true;
	}

	// If not, and if a global state has been implemented, send
	// the message to the global state
	if (globalState != null && globalState.onMessage(owner, telegram)) {
		return true;
	}

	return false;
}
 
示例4
@Override
public boolean handleMessage(Telegram telegram) {
	switch (telegram.message) {
		case Constants.MSG_DOG_LETS_PLAY:
			humanWantToPlay = true;
			stickThrown = false;
			break;
		case Constants.MSG_DOG_LETS_STOP_PLAYING:
			humanWantToPlay = false;
			break;
		case Constants.MSG_DOG_HUMAN_IS_DEAD:
			humanIsDead = true;
			humanWantToPlay = false;
			alreadyCriedForHumanDeath = false;
			break;
		case Constants.MSG_DOG_HUMAN_IS_RESURRECTED:
			humanIsDead = false;
			alreadyCriedForHumanDeath = false;
			break;
		case Constants.MSG_DOG_STICK_THROWN:
			stickThrown = true;
			break;
	}
	// Update GUI buttons if the dog's owner is selected
	if (this.human != null && this.human.selected) {
		MessageManager.getInstance().dispatchMessage(Constants.MSG_GUI_UPDATE_DOG_BUTTON, this.human);
	}
	return true;
}
 
示例5
@Override
public boolean handleMessage(final Telegram msg) {
	Entity character = (Entity) msg.extraInfo;
	character.getBody().setTransform(RESPAWN_POSITION, character.getBody().getAngle());
	character.changeState(NinjaRabbitState.IDLE);
	character.setDirection(Direction.RIGHT);
	return true;
}
 
示例6
@Override
public boolean handleMessage(final Telegram msg) {
	getStatus().setLevel((byte) (getStatus().getLevel() + 1));
	getStatus().setTime(PlayerStatus.DEFAULT_TIME);
	MessageManager.getInstance().dispatchMessage(this, MessageType.BEGIN_LEVEL.code());
	return true;
}
 
示例7
@Override
public boolean handleMessage(final Telegram msg) {
	if (msg.message == MessageType.COLLECTED.code()) {
		getStatus().setCollectibles((short) (getStatus().getCollectibles() + 1));
		getStatus().setScore(getStatus().getScore() + COLLECTIBLE_POINTS);
	} else if (msg.message == MessageType.DEAD.code()) {
		if (getStatus().getLives() > 0) {
			getStatus().setLives((short) (getStatus().getLives() - 1));
		}
		System.out.println("Dead received!");
	}
	return true;
}
 
示例8
@Override
public boolean handleMessage(final Telegram msg) {
	if (msg.message == MessageType.RESET.code()) {
		reset();
	} else if (msg.message == MessageType.DEAD.code()) {
		restartCurrentLevel();
	} else if (msg.message == MessageType.BEGIN_LEVEL.code()) {
		beginNextLevel();
	}
	return false;
}
 
示例9
@Override
public boolean handleMessage(final Telegram msg) {
	if (msg.message == MessageType.GAME_OVER.code()) {
		theme.stop();
		gameOverMusic.play();
	} else if (msg.message == MessageType.EXIT.code()) {
		theme.stop();
		exitMusic.play();
	}
	return true;
}
 
示例10
@Override
public boolean handleMessage (Telegram msg) {
	// build a new house
	if (houses.size <= 10) {
		houses.add(new House(this));
	}
	return false;
}
 
示例11
@Override
public boolean handleMessage (Telegram msg) {
	if (citizens.size < 3) {
		// new child
		Gdx.app.log(toString(), "We're having a baby!");
		citizens.add(new Citizen(this));
	}
	return false;
}
 
示例12
@Override
public boolean handleMessage (Telegram msg) {
	Citizen citizen = (Citizen)msg.extraInfo;
	// greet only if not in the same house
	if (this.house.id != citizen.house.id) {
		Gdx.app.log(toString(), "Hi " + citizen + ", I'm your new neighbour");
	}
	return false;
}
 
示例13
@Override
public boolean handleMessage (Telegram msg) {
	this.msgCounter = (Integer)msg.extraInfo;
	this.msgTimestamp = msg.getTimestamp();
	if (timerEnabledButton.isChecked()) {
		float lag = GdxAI.getTimepiece().getTime() - msg.getTimestamp();
		lag -= (int)lag; // take the decimal part only (in case the lag is > 1)
		float delay = 1f - lag;
		sendMessage(delay, msgCounter + 1);
	}
	return true;
}
 
示例14
@Override
public boolean handleMessage (Telegram telegram) {
	switch (telegram.message) {
	case PF_RESPONSE: // PathFinderQueue will call us directly, no need to register for this message
		if (PathFinderRequestControl.DEBUG) {
			@SuppressWarnings("unchecked")
			PathFinderQueue<HierarchicalTiledNode> pfQueue = (PathFinderQueue<HierarchicalTiledNode>)telegram.sender;
			System.out.println("pfQueue.size = " + pfQueue.size());
		}
		MyPathFinderRequest pfr = (MyPathFinderRequest)telegram.extraInfo;
		TiledSmoothableGraphPath<HierarchicalTiledNode> path = paths[pfr.pathIndex];
		int n = path.getCount();
		if (n > 0 && pfr.pathFound && pfr.endNode != path.get(n - 1)) {
			pfr.startNode = path.get(n - 1);
			if(pfr.pathIndex + 1 < paths.length) {
				pfr.pathIndex++;
			}
			pfr.resultPath = paths[pfr.pathIndex];
			pfr.changeStatus(PathFinderRequest.SEARCH_NEW);
			numPaths = pfr.pathIndex;
		} else {
			requestPool.free(pfr);
			numPaths = pfr.pathIndex + 1;
		}
		break;
	}
	return true;
}
 
示例15
@Override
public boolean handleMessage (Telegram telegram) {
	@SuppressWarnings("unchecked")
	PathFinderRequest<N> pfr = (PathFinderRequest<N>)telegram.extraInfo;
	pfr.client = telegram.sender; // set the client to be notified once the request has completed
	pfr.status = PathFinderRequest.SEARCH_NEW; // Reset status
	pfr.statusChanged = true; // Status has just changed
	pfr.executionFrames = 0; // Reset execution frames counter
	requestQueue.store(pfr);
	return true;
}
 
示例16
@Override
public boolean handleMessage(Telegram msg) {
    return stateMachine.handleMessage(msg);
}
 
示例17
@Override
public boolean handleMessage(Telegram msg) {
    return stateMachine.handleMessage(msg);
}
 
示例18
@Override
public boolean onMessage(Integer entity, Telegram telegram) {
  return false;
}
 
示例19
@Override public boolean onMessage(Integer entityId, Telegram telegram) {
  return false;
}
 
示例20
@Override public boolean onMessage(Integer entityId, Telegram telegram) {
  return false;
}
 
示例21
@Override
public boolean onMessage(HumanCharacter entity, Telegram telegram) {
	return false;
}
 
示例22
@Override
public boolean handleMessage(final Telegram msg) {
	Collectible collectible = (Collectible) msg.extraInfo;
	removed.add(collectible);
	return true;
}
 
示例23
@Override
public boolean handleMessage(final Telegram msg) {
	renderGameOver = msg.message == MessageType.GAME_OVER.code();
	return true;
}
 
示例24
@Override
public boolean handleMessage(final Telegram msg) {
	Gdx.input.setInputProcessor(null);
	return true;
}
 
示例25
@Override
public boolean handleMessage(final Telegram msg) {
	assets.get(Assets.LIFE_LOST_FX).play();
	return true;
}
 
示例26
@Override
public boolean handleMessage (Telegram msg) {
	return stateMachine.handleMessage(msg);
}
 
示例27
@Override
public boolean handleMessage (Telegram msg) {
	return stateMachine.handleMessage(msg);
}
 
示例28
/** Handles received telegrams.
 * <p>
 * Implementation classes should first route the telegram to the current state. If the current state does not deal with the
 * message, it should be routed to the global state.
 * </p>
 * @param telegram the received telegram
 * @return true if telegram has been successfully handled; false otherwise. */
public boolean handleMessage (Telegram telegram);
 
示例29
/** This method executes if the {@code entity} receives a {@code telegram} from the message dispatcher while it is in this
 * state.
 * 
 * @param entity the entity that received the message
 * @param telegram the message sent to the entity
 * @return true if the message has been successfully handled; false otherwise. */
public boolean onMessage (E entity, Telegram telegram);