OSDN Git Service

added GamepadTest, fixed a few more tiny bits
authorMario Zechner <contact@badlogicgames.com>
Wed, 9 Jan 2013 20:02:06 +0000 (21:02 +0100)
committerMario Zechner <contact@badlogicgames.com>
Wed, 9 Jan 2013 20:02:06 +0000 (21:02 +0100)
extensions/gdx-controllers/gdx-controllers-android/src/com/badlogic/gdx/controllers/android/AndroidControllers.java
extensions/gdx-controllers/gdx-controllers-desktop/libs/gdx-controllers-desktop-natives.jar
extensions/gdx-controllers/gdx-controllers/src/com/badlogic/gdx/controllers/mappings/Ouya.java
tests/gdx-tests-lwjgl/.classpath
tests/gdx-tests-lwjgl/src/com/badlogic/gdx/tests/lwjgl/LwjglDebugStarter.java
tests/gdx-tests/.classpath
tests/gdx-tests/src/com/badlogic/gdx/tests/GamepadTest.java [new file with mode: 0755]
tests/gdx-tests/src/com/badlogic/gdx/tests/utils/GdxTests.java

index 31c1f30..664cd53 100755 (executable)
@@ -125,7 +125,6 @@ public class AndroidControllers implements PauseResumeListener, ControllerManage
             for (int axisId: controller.axesIds) {\r
                float axisValue = motionEvent.getAxisValue(axisId);\r
                if(controller.getAxis(axisIndex) == axisValue) {\r
-                       Gdx.app.log(TAG, "skipped axis " + axisIndex + ", " + axisValue);\r
                        axisIndex++;\r
                        continue;\r
                }\r
index bb82993..a4ed4aa 100755 (executable)
Binary files a/extensions/gdx-controllers/gdx-controllers-desktop/libs/gdx-controllers-desktop-natives.jar and b/extensions/gdx-controllers/gdx-controllers-desktop/libs/gdx-controllers-desktop-natives.jar differ
index 2eb84c3..f4cd20b 100755 (executable)
@@ -1,6 +1,7 @@
 package com.badlogic.gdx.controllers.mappings;\r
 \r
 public class Ouya {\r
+       public static final String ID = "OUYA Game Controller";\r
        public static final int BUTTON_O = 96;\r
        public static final int BUTTON_U = 97;\r
        public static final int BUTTON_Y = 98;\r
index bad7867..2364d30 100644 (file)
@@ -14,5 +14,7 @@
        <classpathentry kind="lib" path="/gdx-freetype/libs/gdx-freetype-natives.jar"/>\r
        <classpathentry kind="lib" path="/gdx-image/libs/gdx-image-natives.jar"/>\r
        <classpathentry combineaccessrules="false" kind="src" path="/gdx-freetype"/>\r
+       <classpathentry combineaccessrules="false" kind="src" path="/gdx-controllers"/>\r
+       <classpathentry combineaccessrules="false" kind="src" path="/gdx-controllers-desktop"/>\r
        <classpathentry kind="output" path="bin"/>\r
 </classpath>\r
index e9e25c0..38b0353 100644 (file)
@@ -18,6 +18,7 @@ package com.badlogic.gdx.tests.lwjgl;
 \r
 import com.badlogic.gdx.backends.lwjgl.LwjglApplication;\r
 import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;\r
+import com.badlogic.gdx.tests.GamepadTest;\r
 import com.badlogic.gdx.tests.YDownTest;\r
 import com.badlogic.gdx.tests.utils.GdxTest;\r
 import com.badlogic.gdx.utils.SharedLibraryLoader;\r
@@ -28,9 +29,10 @@ public class LwjglDebugStarter {
                new SharedLibraryLoader("../../extensions/gdx-audio/libs/gdx-audio-natives.jar").load("gdx-audio");\r
                new SharedLibraryLoader("../../extensions/gdx-image/libs/gdx-image-natives.jar").load("gdx-image");\r
                new SharedLibraryLoader("../../extensions/gdx-freetype/libs/gdx-freetype-natives.jar").load("gdx-freetype");\r
+               new SharedLibraryLoader("../../extensions/gdx-controllers/gdx-controllers-desktop/libs/gdx-controllers-desktop-natives.jar").load("gdx-controllers-desktop");\r
                new SharedLibraryLoader("../../gdx/libs/gdx-natives.jar").load("gdx");\r
 \r
-               GdxTest test = new YDownTest();\r
+               GdxTest test = new GamepadTest();\r
                LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();\r
                config.useGL20 = test.needsGL20();\r
                new LwjglApplication(test, config);\r
index 8ac829e..f84152d 100644 (file)
@@ -1,12 +1,13 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-       <classpathentry excluding="**/.svn/*" kind="src" path="src"/>
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-       <classpathentry combineaccessrules="false" kind="src" path="/gdx"/>
-       <classpathentry combineaccessrules="false" exported="true" kind="src" path="/gdx-audio"/>
-       <classpathentry combineaccessrules="false" exported="true" kind="src" path="/gdx-freetype"/>
-       <classpathentry combineaccessrules="false" exported="true" kind="src" path="/gdx-image"/>
-       <classpathentry combineaccessrules="false" exported="true" kind="src" path="/gdx-bullet"/>
-       <classpathentry combineaccessrules="false" kind="src" path="/gdx-gleed"/>
-       <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<classpath>\r
+       <classpathentry excluding="**/.svn/*" kind="src" path="src"/>\r
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>\r
+       <classpathentry combineaccessrules="false" kind="src" path="/gdx"/>\r
+       <classpathentry combineaccessrules="false" exported="true" kind="src" path="/gdx-audio"/>\r
+       <classpathentry combineaccessrules="false" exported="true" kind="src" path="/gdx-freetype"/>\r
+       <classpathentry combineaccessrules="false" exported="true" kind="src" path="/gdx-image"/>\r
+       <classpathentry combineaccessrules="false" exported="true" kind="src" path="/gdx-bullet"/>\r
+       <classpathentry combineaccessrules="false" exported="true" kind="src" path="/gdx-gleed"/>\r
+       <classpathentry combineaccessrules="false" kind="src" path="/gdx-controllers"/>\r
+       <classpathentry kind="output" path="bin"/>\r
+</classpath>\r
diff --git a/tests/gdx-tests/src/com/badlogic/gdx/tests/GamepadTest.java b/tests/gdx-tests/src/com/badlogic/gdx/tests/GamepadTest.java
new file mode 100755 (executable)
index 0000000..196c29d
--- /dev/null
@@ -0,0 +1,158 @@
+package com.badlogic.gdx.tests;\r
+\r
+import com.badlogic.gdx.Gdx;\r
+import com.badlogic.gdx.controllers.Controller;\r
+import com.badlogic.gdx.controllers.ControllerListener;\r
+import com.badlogic.gdx.controllers.Controllers;\r
+import com.badlogic.gdx.controllers.PovDirection;\r
+import com.badlogic.gdx.graphics.GL10;\r
+import com.badlogic.gdx.math.Vector3;\r
+import com.badlogic.gdx.scenes.scene2d.InputEvent;\r
+import com.badlogic.gdx.scenes.scene2d.Stage;\r
+import com.badlogic.gdx.scenes.scene2d.ui.List;\r
+import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane;\r
+import com.badlogic.gdx.scenes.scene2d.ui.Skin;\r
+import com.badlogic.gdx.scenes.scene2d.ui.Table;\r
+import com.badlogic.gdx.scenes.scene2d.ui.TextButton;\r
+import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;\r
+import com.badlogic.gdx.tests.utils.GdxTest;\r
+\r
+public class GamepadTest extends GdxTest {\r
+       String descriptor;\r
+       Skin skin;\r
+       Table ui;\r
+       Stage stage;\r
+       ScrollPane scrollPane;\r
+       List console;\r
+       \r
+       @Override\r
+       public void create () {\r
+               setupUi();\r
+               \r
+               // print the currently connected controllers to the console\r
+               print("Controllers: " + Controllers.getControllers().size);\r
+               int i = 0;\r
+               for(Controller controller: Controllers.getControllers()) {\r
+                       print("#" + i++ + ": " + controller.getName());\r
+               }\r
+               if(Controllers.getControllers().size == 0) print("No controllers attached");\r
+               \r
+               // setup the listener that prints events to the console\r
+               Controllers.addListener(new ControllerListener() {\r
+                       public int indexOf(Controller controller) {\r
+                               return Controllers.getControllers().indexOf(controller, true);\r
+                       }\r
+                       \r
+                       @Override\r
+                       public void connected (Controller controller) {\r
+                               print("connected " + controller.getName());\r
+                               int i = 0;\r
+                               for(Controller c: Controllers.getControllers()) {\r
+                                       print("#" + i++ + ": " + c.getName());\r
+                               }\r
+                       }\r
+\r
+                       @Override\r
+                       public void disconnected (Controller controller) {\r
+                               print("disconnected " + controller.getName());\r
+                               int i = 0;\r
+                               for(Controller c: Controllers.getControllers()) {\r
+                                       print("#" + i++ + ": " + c.getName());\r
+                               }\r
+                               if(Controllers.getControllers().size == 0) print("No controllers attached");\r
+                       }\r
+\r
+                       @Override\r
+                       public boolean buttonDown (Controller controller, int buttonIndex) {\r
+                               print("#" + indexOf(controller) + ", button " + buttonIndex + " down");\r
+                               return false;\r
+                       }\r
+\r
+                       @Override\r
+                       public boolean buttonUp (Controller controller, int buttonIndex) {\r
+                               print("#" + indexOf(controller) + ", button " + buttonIndex + " up");\r
+                               return false;\r
+                       }\r
+\r
+                       @Override\r
+                       public boolean axisMoved (Controller controller, int axisIndex, float value) {\r
+                               print("#" + indexOf(controller) + ", axis " + axisIndex + ": " + value);\r
+                               return false;\r
+                       }\r
+\r
+                       @Override\r
+                       public boolean povMoved (Controller controller, int povIndex, PovDirection value) {\r
+                               print("#" + indexOf(controller) + ", pov " + povIndex + ": " + value);\r
+                               return false;\r
+                       }\r
+\r
+                       @Override\r
+                       public boolean xSliderMoved (Controller controller, int sliderIndex, boolean value) {\r
+                               print("#" + indexOf(controller) + ", x slider " + sliderIndex + ": " + value);\r
+                               return false;\r
+                       }\r
+\r
+                       @Override\r
+                       public boolean ySliderMoved (Controller controller, int sliderIndex, boolean value) {\r
+                               print("#" + indexOf(controller) + ", y slider " + sliderIndex + ": " + value);\r
+                               return false;\r
+                       }\r
+\r
+                       @Override\r
+                       public boolean accelerometerMoved (Controller controller, int accelerometerIndex, Vector3 value) {\r
+                               // not printing this as we get to many values\r
+                               return false;\r
+                       }\r
+               });\r
+       }\r
+       \r
+       private void print(String message) {\r
+               String[] lines = console.getItems();\r
+               String[] newLines = new String[lines.length + 1];\r
+               System.arraycopy(lines, 0, newLines, 0, lines.length);\r
+               newLines[newLines.length-1] = message;\r
+               console.setItems(newLines);\r
+               scrollPane.setScrollPercentY(1.0f);\r
+       }\r
+       \r
+       private void clear() {\r
+               console.setItems(new Object[0]);\r
+       }\r
+\r
+       private void setupUi() {\r
+               // setup a tiny ui with a console and a clear button.\r
+               skin = new Skin(Gdx.files.internal("data/uiskin.json"));\r
+               stage = new Stage(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), true);\r
+               ui = new Table();\r
+               ui.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());\r
+               console = new List(new String[0], skin);\r
+               scrollPane = new ScrollPane(console);\r
+               scrollPane.setScrollbarsOnTop(true);\r
+               TextButton clear = new TextButton("Clear", skin);\r
+               ui.add(scrollPane).expand(true, true).fill();\r
+               ui.row();\r
+               ui.add(clear).expand(true, false).fill();\r
+               stage.addActor(ui);\r
+               clear.addListener(new ClickListener() {\r
+                       @Override\r
+                       public void clicked (InputEvent event, float x, float y) {\r
+                               clear();\r
+                       }\r
+               });\r
+               Gdx.input.setInputProcessor(stage);\r
+       }\r
+       \r
+       @Override\r
+       public void resize (int width, int height) {\r
+               ui.setSize(width, height);\r
+               ui.invalidate();\r
+               stage.setViewport(width, height, false);\r
+       }\r
+\r
+       @Override\r
+       public void render () {\r
+               Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);\r
+               stage.act(Gdx.graphics.getDeltaTime());\r
+               stage.draw();\r
+       }\r
+}\r
index 6f7d5e1..2f3ff94 100644 (file)
@@ -74,7 +74,7 @@ public class GdxTests {
                // InternationalFontsTest.class, VorbisTest.class\r
                TextButtonTest.class, TextButtonTestGL2.class, TextureBindTest.class, SortedSpriteTest.class,\r
                ExternalMusicTest.class, SoftKeyboardTest.class, DirtyRenderingTest.class, YDownTest.class,\r
-               ScreenCaptureTest.class, BitmapFontTest.class, LabelScaleTest.class, GLEEDTest.class));\r
+               ScreenCaptureTest.class, BitmapFontTest.class, LabelScaleTest.class, GLEEDTest.class, GamepadTest.class));\r
        \r
        public static List<String> getNames () {\r
                List<String> names = new ArrayList<String>(tests.size());\r