本文整理汇总了Java中com.badlogic.gdx.ai.msg.MessageManager类的典型用法代码示例。如果您正苦于以下问题:Java MessageManager类的具体用法?Java MessageManager怎么用?Java MessageManager使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
MessageManager类属于com.badlogic.gdx.ai.msg包,在下文中一共展示了MessageManager类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: update
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
public void update(float deltaTime) {
// Update AI time
GdxAI.getTimepiece().update(deltaTime);
// Dispatch delayed messages
MessageManager.getInstance().update();
// Update Bullet simulation
// On default fixedTimeStep = 1/60, small objects (the stick) will fall through
// the ground (the ground has relatively big triangles).
dynamicsWorld.stepSimulation(deltaTime, 10, 1f / 240f);
for (GameObject object : objectsById.values()) {
if (object != null) {
object.update(deltaTime);
}
}
}
示例2: update
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
@Override
public void update(HumanCharacter entity) {
if (entity.isMoving()) {
// Keep on updating movement animation
updateAnimation(entity);
} else {
GameScreen.screen.sounds.whistle.play();
// If the entity owns a dog send it a delayed message to emulate reaction time
if (entity.dog != null) {
MessageManager.getInstance().dispatchMessage(MathUtils.randomTriangular(.8f, 2f, 1.2f), null, entity.dog,
Constants.MSG_DOG_LETS_PLAY);
}
// Transition to the appropriate idle state depending on the previous state
HumanState previousState = entity.stateMachine.getPreviousState();
HumanState nextState = HumanState.IDLE_STAND;
if (previousState != null) {
if (previousState.isMovementState()) {
nextState = previousState.idleState;
} else if (previousState.isIdleState()) {
nextState = previousState;
}
}
entity.stateMachine.changeState(nextState);
}
}
示例3: enter
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
@Override
public void enter(HumanCharacter entity) {
// Turn off animation
entity.animations.setAnimation("armature|idle_stand", -1);
entity.animations.paused = true;
// Stop steering and let friction and gravity arrest the entity
entity.stopSteering(false);
// Set ragdoll control
entity.setRagdollControl(true);
// Dog owners inform the dog of the death and clear dog button
if (entity.dog != null) {
MessageManager.getInstance().dispatchMessage(MathUtils.randomTriangular(.8f, 2f, 1.2f), null, entity.dog, Constants.MSG_DOG_HUMAN_IS_DEAD);
MessageManager.getInstance().dispatchMessage(Constants.MSG_GUI_CLEAR_DOG_BUTTON, entity);
}
}
示例4: prepareToMove
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
protected void prepareToMove(HumanCharacter entity, float steeringMultiplier) {
entity.moveState = this;
// Apply the multiplier to steering limits
entity.setMaxLinearSpeed(HumanSteerSettings.maxLinearSpeed * steeringMultiplier);
entity.setMaxLinearAcceleration(HumanSteerSettings.maxLinearAcceleration * steeringMultiplier);
entity.setMaxAngularSpeed(HumanSteerSettings.maxAngularSpeed * steeringMultiplier);
entity.setMaxAngularAcceleration(HumanSteerSettings.maxAngularAcceleration * steeringMultiplier);
entity.followPathSteerer.followPathSB.setDecelerationRadius(HumanSteerSettings.decelerationRadius * steeringMultiplier);
// If the entity owns a dog tell him you don't want to play and re-enable whistle
if (entity.dog != null) {
MessageManager.getInstance().dispatchMessage(MathUtils.randomTriangular(.8f, 2f, 1.2f), null, entity.dog, Constants.MSG_DOG_LETS_STOP_PLAYING);
MessageManager.getInstance().dispatchMessage(Constants.MSG_GUI_SET_DOG_BUTTON_TO_WHISTLE, entity);
}
}
示例5: CharacterController
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
public CharacterController(TextureAtlas buttonAtlas) {
whistleButton = new CharacterButton(HumanState.WHISTLE, buttonAtlas, "whistle-up", "whistle-down", "whistle-down");
throwButton = new CharacterButton(HumanState.THROW, buttonAtlas, "throw-up", "throw-down", "throw-down");
radioGroup = new ButtonGroup<CharacterButton>(
new CharacterButton(HumanState.MOVE_RUN, buttonAtlas, "run-up", "run-down", "run-down"),
new CharacterButton(HumanState.MOVE_WALK, buttonAtlas, "walk-up", "walk-down", "walk-down"),
new CharacterButton(HumanState.MOVE_CROUCH, buttonAtlas, "crouch-up", "crouch-down", "crouch-down"),
//new CharacterButton(CharacterState.MOVE_CRAWL, buttonAtlas, "crawl-up", "crawl-down", "crawl-down"),
new CharacterButton(HumanState.DEAD, buttonAtlas, "kill-up", "kill-down", "kill-down")
);
// Add whistle button and save the reference to the 1st cell
this.dogCell = add(whistleButton);
// Add radio buttons
for (CharacterButton btn : radioGroup.getButtons()) {
add(btn);
}
// Register this controller's interests
MessageManager.getInstance().addListeners(this,
Constants.MSG_GUI_CLEAR_DOG_BUTTON,
Constants.MSG_GUI_SET_DOG_BUTTON_TO_WHISTLE,
Constants.MSG_GUI_SET_DOG_BUTTON_TO_THROW);
}
示例6: clearTarget
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
public static void clearTarget (Entity target) {
ImmutableArray<Entity> entities = engine.getEntitiesFor(Family.all(TargetComponent.class).get());
for (Entity entity : entities) {
TargetComponent targetComp = Components.TARGET.get(entity);
if (targetComp.getTarget() == target) {
targetComp.setTarget(null);
//Dispatch a message to the entites FSM that there target was removed from the engine
if (Components.FSM.has(entity)) {
FSMComponent fsm = Components.FSM.get(entity);
MessageManager.getInstance().dispatchMessage(null, fsm, TelegramMessage.TARGET_REMOVED.ordinal(), target);
}
}
}
}
示例7: clearTarget
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
public void clearTarget (Entity target) {
ImmutableArray<Entity> entities = engine.getEntitiesFor(Family.all(TargetComponent.class, SquadComponent.class).get());
for (Entity squad : entities) {
SquadComponent squadComp = Components.SQUAD.get(squad);
squadComp.untrack(squad, target); //The squad no longer will track the target
TargetComponent targetComp = Components.TARGET.get(squad);
//If we were targeting that squad we remove it from our target
if (targetComp.getTarget() == target) {
targetComp.setTarget(null);
//Dispatch a message to the entites FSM that there target was removed from the engine
if (Components.FSM.has(squad)) {
FSMComponent fsm = Components.FSM.get(squad);
MessageManager.getInstance().dispatchMessage(null, fsm, TelegramMessage.TARGET_REMOVED.ordinal(), target);
}
}
}
}
示例8: track
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
public void track (Entity self, Entity target) {
if ((target.flags & EntityCategory.RESOURCE) == EntityCategory.RESOURCE) {
resourcesTracked.add(target);
resourceAgents.add(Components.STEERABLE.get(target));
sortTrackedResources();
MessageManager.getInstance().dispatchMessage(null, Components.FSM.get(self),
TelegramMessage.DISCOVERED_RESOURCE.ordinal());
} else if ((target.flags & EntityCategory.SQUAD) == EntityCategory.SQUAD) {
if (EntityUtils.isSameFaction(self, target)) {
friendliesTracked.add(target);
friendlyAgents.add(Components.STEERABLE.get(target));
} else {
enemiesTracked.add(target);
MessageManager.getInstance().dispatchMessage(null, Components.FSM.get(self), TelegramMessage.DISCOVERED_ENEMY.ordinal());
}
}
}
示例9: render
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
@Override
public void render(final float delta) {
accumulator += Math.min(delta, 0.25f);
while (accumulator >= TIME_STEP) {
world.step(TIME_STEP, VELOCITY_ITERATIONS, POSITION_ITERATIONS);
accumulator -= TIME_STEP;
}
ninjaRabbit.update(viewport.getCamera());
viewport.getCamera().update();
game.getBatch().setProjectionMatrix(viewport.getCamera().combined);
environment.update(viewport.getCamera());
game.getBatch().begin();
ninjaRabbit.step(game.getBatch());
environment.step(game.getBatch());
game.getBatch().end();
MessageManager.getInstance().update(delta);
hud.render();
}
示例10: keyDown
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
@Override
public boolean keyDown(final int keycode) {
switch (keycode) {
case JUMP_KEY:
character.changeState(NinjaRabbitState.JUMP);
break;
case LEFT_KEY:
character.changeState(NinjaRabbitState.LEFT);
break;
case RIGHT_KEY:
character.changeState(NinjaRabbitState.RIGHT);
break;
case DUCK_KEY:
// character.execute(NinjaRabbit.DUCK);
break;
case RESET_KEY:
MessageManager.getInstance().dispatchMessage(null, MessageType.DEAD.code(), character);
break;
default:
break;
}
return super.keyDown(keycode);
}
示例11: render
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
@Override
public void render () {
float delta = Gdx.graphics.getDeltaTime();
elapsedTime += delta;
// Update time
GdxAI.getTimepiece().update(delta);
if (elapsedTime > 0.8f) {
// Update Bob and his wife
bob.update(elapsedTime);
elsa.update(elapsedTime);
// Dispatch any delayed messages
MessageManager.getInstance().update();
elapsedTime = 0;
}
}
示例12: messageTest
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
@Test
public void messageTest() {
engine.addEntity(player);
MessageManager.getInstance().dispatchMessage(messageActuator, MessageHandler.getMessageKey(message));
engine.update(1);
assertTrue(sensor.positive);
assertEquals(LogicBrick.BrickMode.BM_ON, sensor.pulseState);
engine.update(1);
assertTrue(sensor.pulseState == LogicBrick.BrickMode.BM_OFF);
assertTrue(sensor.positive);
sensor.managedMessage = true;
engine.update(1);
assertTrue(sensor.pulseState == LogicBrick.BrickMode.BM_ON);
assertFalse(sensor.positive);
}
示例13: update
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
@Override
public void update(NhgEntry nhgEntry) {
float delta = Gdx.graphics.getDeltaTime();
MessageManager.getInstance().update();
nhgEntry.nhg.assets.update();
nhgEntry.nhg.entities.update(delta);
nhgEntry.onUpdate(delta);
}
示例14: update
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
@Override
public void update(Assets assets) {
if (assets.assetManager.update()) {
assets.fsm.changeState(AssetsStates.IDLE);
MessageManager.getInstance().dispatchMessage(AssetsStates.ASSETS_GC);
assets.assetLoadingFinished();
publishLoadedAssets(assets);
}
}
示例15: AssetStateIdle
import com.badlogic.gdx.ai.msg.MessageManager; //导入依赖的package包/类
public AssetStateIdle() {
MessageManager.getInstance().addListener(new Telegraph() {
@Override
public boolean handleMessage(Telegram msg) {
startGcTask();
return true;
}
}, AssetsStates.ASSETS_GC);
}