Show ActionQuadTest.java syntax highlighted
/*
* Copyright (C) 2001-2005 Pleasant nightmare studio
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package skunkworks;
import com.jme.input.InputHandler;
import com.jme.input.KeyBindingManager;
import static com.jme.input.KeyInput.KEY_D;
import static com.jme.input.KeyInput.KEY_H;
import com.jme.input.action.InputActionEvent;
import com.jme.input.action.KeyInputAction;
import com.jme.math.Vector3f;
import com.jme.renderer.ColorRGBA;
import com.jme.scene.Node;
import com.jme.scene.Spatial;
import com.jme.scene.shape.Sphere;
import com.jme.scene.state.MaterialState;
import org.pleasantnightmare.riotinecity.ConsoleGame;
import org.pleasantnightmare.riotinecity.spatials.ActionQuad;
/**
* @author deus
* @version 1.0
* @since Mar 27, 2007 10:34:29 PM
*/
public class ActionQuadTest extends ConsoleGame {
private ActionQuad actionQuad;
private Node objectOfInterest;
private static final String ACTION_HIGHLIGHT = "highlight";
private static final String ACTION_SETDEFAULT = "default";
private boolean isDefault = false;
private boolean isHighlighted = false;
protected void simpleInitGame() {
sceneRoot.attachChild(testBall());
actionQuad = new ActionQuad("action-quad");
actionQuad.setLocalTranslation(centerOfScreen());
hudRoot.attachChild(actionQuad);
inputController();
}
private Spatial testBall() {
Sphere sferica = new Sphere("sphery", 10, 10, 3.0f);
MaterialState ms = display.getRenderer().createMaterialState();
ms.setAmbient(new ColorRGBA(0.3f, 0.0f, 0.0f, 1.0f));
ms.setDiffuse(new ColorRGBA(1.0f, 0.0f, 0.0f, 1.0f));
ms.setEnabled(true);
sferica.setRenderState(ms);
sferica.updateRenderState();
objectOfInterest = new Node("objectOfInterest");
objectOfInterest.attachChild(sferica);
return sferica;
}
private void inputController() {
KeyBindingManager.getKeyBindingManager().add(ACTION_SETDEFAULT, new int[]{KEY_D});
KeyBindingManager.getKeyBindingManager().add(ACTION_HIGHLIGHT, new int[]{KEY_H});
InputHandler input = new InputHandler();
addHandler(input);
input.addAction(new KeyInputAction() {
public void performAction(InputActionEvent evt) {
isDefault = !isDefault;
if (isHighlighted)
return;
if (isDefault)
actionQuad.highlightDefault();
else
actionQuad.unhighlight();
}
}, ACTION_SETDEFAULT, false);
input.addAction(new KeyInputAction() {
public void performAction(InputActionEvent evt) {
isHighlighted = !isHighlighted;
if (isHighlighted)
actionQuad.highlight();
else if (isDefault)
actionQuad.highlightDefault();
else
actionQuad.unhighlight();
}
}, ACTION_HIGHLIGHT, false);
}
private Vector3f centerOfScreen() {
return new Vector3f(display.getWidth() / 2, display.getHeight() / 2, 0);
}
public static void main(String[] args) {
ActionQuadTest g = new ActionQuadTest();
g.start();
}
}
See more files for this project here