2 * Copyright (c) 2003-2005 jMonkeyEngine
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
16 * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
17 * may be used to endorse or promote products derived from this software
18 * without specific prior written permission.
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 package jmetest.input;
35 import com.jme.app.SimpleGame;
36 import com.jme.image.Texture;
37 import com.jme.input.AbsoluteMouse;
38 import com.jme.input.InputSystem;
39 import com.jme.input.MouseInput;
40 import com.jme.math.Vector3f;
41 import com.jme.renderer.ColorRGBA;
42 import com.jme.scene.Text;
43 import com.jme.scene.state.AlphaState;
44 import com.jme.scene.state.TextureState;
45 import com.jme.util.TextureManager;
48 * <code>TestAbsoluteMouse</code>
52 public class TestAbsoluteMouse extends SimpleGame {
55 private AbsoluteMouse mouse;
57 public static void main(String[] args) {
58 TestAbsoluteMouse app = new TestAbsoluteMouse();
59 app.setDialogBehaviour(ALWAYS_SHOW_PROPS_DIALOG);
63 protected void simpleUpdate() {
64 text.print("Position: " + mouse.getLocalTranslation().x + " , " +
65 mouse.getLocalTranslation().y);
68 protected void simpleInitGame() {
69 lightState.setEnabled(false);
70 display.getRenderer().setBackgroundColor(ColorRGBA.blue);
71 mouse = new AbsoluteMouse("Mouse Input", display.getWidth(), display.getHeight());
72 TextureState cursor = display.getRenderer().createTextureState();
73 cursor.setEnabled(true);
75 TextureManager.loadTexture(
76 TestAbsoluteMouse.class.getClassLoader().getResource("jmetest/data/cursor/test.PNG"),
77 Texture.MM_LINEAR, Texture.FM_LINEAR)
79 mouse.setRenderState(cursor);
80 mouse.setMouseInput( MouseInput.get());
81 input.setMouse(mouse);
83 text = new Text("Text Label","Testing Mouse");
84 text.setLocalTranslation(new Vector3f(1, 60, 0));
85 TextureState ts = display.getRenderer().createTextureState();
88 TextureManager.loadTexture(
89 TestAbsoluteMouse.class.getClassLoader().getResource("jmetest/data/font/font.png"),
92 text.setRenderState(ts);
93 AlphaState as1 = display.getRenderer().createAlphaState();
94 as1.setBlendEnabled(true);
95 as1.setSrcFunction(AlphaState.SB_ONE);
96 as1.setDstFunction(AlphaState.DB_ONE_MINUS_SRC_COLOR);
97 as1.setTestEnabled(true);
98 as1.setTestFunction(AlphaState.TF_GREATER);
99 text.setRenderState(as1);
100 mouse.setRenderState(as1);
101 rootNode.attachChild(text);
102 rootNode.attachChild(mouse);