2 * Copyright (c) 2003-2009 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.math.Vector3f;
39 import com.jme.renderer.ColorRGBA;
40 import com.jme.scene.Text;
41 import com.jme.scene.state.BlendState;
42 import com.jme.scene.state.TextureState;
43 import com.jme.util.TextureManager;
46 * <code>TestAbsoluteMouse</code>
51 public class TestAbsoluteMouse extends SimpleGame {
54 private AbsoluteMouse mouse;
56 public static void main(String[] args) {
57 TestAbsoluteMouse app = new TestAbsoluteMouse();
58 app.setConfigShowMode(ConfigShowMode.AlwaysShow);
62 protected void simpleUpdate() {
63 text.print("Position: " + mouse.getLocalTranslation().x + " , "
64 + mouse.getLocalTranslation().y);
67 protected void simpleInitGame() {
68 lightState.setEnabled(false);
69 display.getRenderer().setBackgroundColor(ColorRGBA.blue.clone());
70 mouse = new AbsoluteMouse("Mouse Input", display.getWidth(), display
72 TextureState cursor = display.getRenderer().createTextureState();
73 cursor.setEnabled(true);
74 cursor.setTexture(TextureManager.loadTexture(TestAbsoluteMouse.class
75 .getClassLoader().getResource("jmetest/data/cursor/testcursor.png"),
76 Texture.MinificationFilter.BilinearNearestMipMap,
77 Texture.MagnificationFilter.Bilinear));
78 mouse.setRenderState(cursor);
79 mouse.registerWithInputHandler(input);
81 text = Text.createDefaultTextLabel("Text Label", "Testing Mouse");
82 text.setLocalTranslation(new Vector3f(1, 60, 0));
83 BlendState as1 = display.getRenderer().createBlendState();
84 as1.setBlendEnabled(true);
85 as1.setSourceFunction(BlendState.SourceFunction.One);
86 as1.setDestinationFunction(BlendState.DestinationFunction.OneMinusSourceColor);
87 as1.setTestEnabled(true);
88 as1.setTestFunction(BlendState.TestFunction.GreaterThan);
89 mouse.setRenderState(as1);
90 rootNode.attachChild(text);
91 rootNode.attachChild(mouse);