示例#1
0
        public override bool OnGenericMotionEvent(MotionEvent motionEvent)
        {
            int playerNum = OuyaController.getPlayerNumByDeviceId(motionEvent.DeviceId);

            if (playerNum >= 0 && playerNum < 4 &&
                null != m_game &&
                null != m_game.Controllers &&
                playerNum < m_game.Controllers.Count)
            {
                m_game.Controllers[playerNum].Axis[OuyaController.AXIS_LS_X] =
                    motionEvent.GetAxisValue((Axis)OuyaController.AXIS_LS_X);
                m_game.Controllers[playerNum].Axis[OuyaController.AXIS_LS_Y] =
                    motionEvent.GetAxisValue((Axis)OuyaController.AXIS_LS_Y);
                m_game.Controllers[playerNum].Axis[OuyaController.AXIS_RS_X] =
                    motionEvent.GetAxisValue((Axis)OuyaController.AXIS_RS_X);
                m_game.Controllers[playerNum].Axis[OuyaController.AXIS_RS_Y] =
                    motionEvent.GetAxisValue((Axis)OuyaController.AXIS_RS_Y);
                m_game.Controllers[playerNum].Axis[OuyaController.AXIS_L2] =
                    motionEvent.GetAxisValue((Axis)OuyaController.AXIS_L2);
                m_game.Controllers[playerNum].Axis[OuyaController.AXIS_R2] =
                    motionEvent.GetAxisValue((Axis)OuyaController.AXIS_R2);
                base.OnGenericMotionEvent(motionEvent);
            }
            return(true);
        }
示例#2
0
        private void SetDrawable(out Texture2D button, int keyCode)
        {
            OuyaController.ButtonData buttonData;
            buttonData = OuyaController.getButtonData(keyCode);
            if (null == buttonData)
            {
                button = null;
                return;
            }

            BitmapDrawable drawable = (BitmapDrawable)buttonData.buttonDrawable;

            if (null == drawable)
            {
                button = null;
                return;
            }
            Bitmap bitmap = drawable.Bitmap;

            using (MemoryStream ms = new MemoryStream())
            {
                bitmap.Compress(Bitmap.CompressFormat.Png, 100, ms);
                ms.Position = 0;
                button      = Texture2D.FromStream(GraphicsDevice, ms);
            }
        }
示例#3
0
        public override bool OnKeyUp(Keycode keyCode, KeyEvent keyEvent)
        {
            //Log.Info(TAG, "OnKeyUp=" + (int)keyCode);
            int playerNum = OuyaController.getPlayerNumByDeviceId(keyEvent.DeviceId);

            if (playerNum >= 0 && playerNum < 4)
            {
                if ((int)keyCode == OuyaController.BUTTON_DPAD_DOWN)
                {
                    _game.GetFocusManager().FocusDown();
                }
                if ((int)keyCode == OuyaController.BUTTON_DPAD_LEFT)
                {
                    _game.GetFocusManager().FocusLeft();
                }
                if ((int)keyCode == OuyaController.BUTTON_DPAD_RIGHT)
                {
                    _game.GetFocusManager().FocusRight();
                }
                if ((int)keyCode == OuyaController.BUTTON_DPAD_UP)
                {
                    _game.GetFocusManager().FocusUp();
                }
                if ((int)keyCode == OuyaController.BUTTON_O)
                {
                    _game.GetFocusManager().InvokeClick();
                }
                if ((int)keyCode == OuyaController.BUTTON_A)
                {
                    _game.Exit();
                }
            }
            return(true);
        }
示例#4
0
    private static string getDeviceName(int deviceId)
    {
        OuyaController ouyaController = OuyaController.getControllerByPlayer(deviceId);

        if (null != ouyaController)
        {
            return(ouyaController.getDeviceName());
        }
        return(null);
    }
示例#5
0
            private void UpdateJoystickInfo()
            {
                OuyaController ouyaController = OuyaController.getControllerByPlayer(_playerId);

                if (ouyaController == null)
                {
                    return;
                }
                _deviceName = ouyaController.getDeviceName();
            }
示例#6
0
 private void SetLabel(out string label, int keyCode)
 {
     OuyaController.ButtonData buttonData;
     buttonData = OuyaController.getButtonData(keyCode);
     if (null == buttonData)
     {
         label = null;
         return;
     }
     label = buttonData.buttonName;
 }
示例#7
0
        public override bool OnKeyUp(Keycode keyCode, KeyEvent keyEvent)
        {
            //Log.Info(TAG, "OnKeyUp=" + (int)keyCode);
            int playerNum = OuyaController.getPlayerNumByDeviceId(keyEvent.DeviceId);

            if (playerNum >= 0 && playerNum < 4 &&
                null != m_game &&
                null != m_game.Controllers &&
                playerNum < m_game.Controllers.Count)
            {
                m_game.Controllers[playerNum].Button[(int)keyCode] = false;
            }
            return(true);
        }
示例#8
0
    private void SetDrawable(out Texture2D button, int keyCode)
    {
        OuyaController.ButtonData buttonData;
        buttonData = OuyaController.getButtonData(keyCode);
        if (null == buttonData)
        {
            button = null;
            return;
        }

        if (null == buttonData.buttonDrawable)
        {
            button = null;
            return;
        }

        BitmapDrawable drawable = (BitmapDrawable)buttonData.buttonDrawable;

        if (null == drawable)
        {
            button = null;
            return;
        }

        Bitmap bitmap = drawable.getBitmap();

        if (null == bitmap)
        {
            button = null;
            return;
        }

        ByteArrayOutputStream stream = new ByteArrayOutputStream();

        bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
        if (stream.size() == 0)
        {
            button = null;
        }
        else
        {
            button = new Texture2D(0, 0);
            button.LoadImage(stream.toByteArray());
        }
        stream.close();
    }
示例#9
0
        public override bool OnKeyDown(Keycode keyCode, KeyEvent keyEvent)
        {
            //Log.Info(TAG, "OnKeyDown=" + (int)keyCode);
            int playerNum = OuyaController.getPlayerNumByDeviceId(keyEvent.DeviceId);

            if (playerNum >= 0 && playerNum < 4 &&
                null != m_game &&
                null != m_game.Controllers &&
                playerNum < m_game.Controllers.Count)
            {
                m_game.Controllers[playerNum].Button[(int)keyCode] = true;

                if ((int)keyCode == OuyaController.BUTTON_MENU)
                {
                    Log.Info(TAG, "Menu Detected=" + (int)keyCode);
                    m_game.Controllers[playerNum].TimerMenuDetected = DateTime.Now + TimeSpan.FromSeconds(1);
                }
            }
            return(true);
        }
示例#10
0
        public void BeforeAttach()
        {
#if UNITY_ANDROID && INCONTROL_OUYA && !UNITY_EDITOR
            Name = OuyaController.getControllerByPlayer(DeviceIndex).getDeviceName();
#endif
        }
示例#11
0
    void OnGUI()
    {
        GUI.skin = m_guiSkin;

        GUILayout.Space(80);

        GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));

        GUILayout.FlexibleSpace();

        int deviceId = PlayerNum;

        GUILayout.BeginVertical();
        GUILayout.Label("OUYA Axises:");
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.AXIS_LS_X", OuyaSDK.OuyaInput.GetAxis(deviceId, OuyaController.AXIS_LS_X)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.AXIS_LS_Y", OuyaSDK.OuyaInput.GetAxis(deviceId, OuyaController.AXIS_LS_Y)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.AXIS_RS_X", OuyaSDK.OuyaInput.GetAxis(deviceId, OuyaController.AXIS_RS_X)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.AXIS_RS_Y", OuyaSDK.OuyaInput.GetAxis(deviceId, OuyaController.AXIS_RS_Y)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.AXIS_L2", OuyaSDK.OuyaInput.GetAxis(deviceId, OuyaController.AXIS_L2)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.AXIS_R2", OuyaSDK.OuyaInput.GetAxis(deviceId, OuyaController.AXIS_R2)));
        GUILayout.EndVertical();

        GUILayout.FlexibleSpace();

        GUILayout.BeginVertical();
        GUILayout.Label("OUYA Buttons:");
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_O", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_O)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_U", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_U)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_Y", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_Y)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_A", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_A)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_L1", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_L1)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_R1", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_R1)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_L3", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_L3)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_R3", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_R3)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_DPAD_UP", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_DPAD_UP)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_DPAD_DOWN", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_DPAD_DOWN)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_DPAD_RIGHT", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_DPAD_RIGHT)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_DPAD_LEFT", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_DPAD_LEFT)));

        if (OuyaSDK.OuyaInput.GetButtonDown(deviceId, OuyaController.BUTTON_MENU))
        {
            m_menuDetected = DateTime.Now + TimeSpan.FromSeconds(1);
        }

        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_MENU", DateTime.Now < m_menuDetected));
        GUILayout.EndVertical();

        GUILayout.FlexibleSpace();

        GUI.skin = null;
        GUILayout.BeginVertical();
        for (int index = 0; index < OuyaController.MAX_CONTROLLERS; ++index)
        {
            if (GUILayout.Button(string.Format(PlayerNum == index ? "[JOY{0}]{1}" : "JOY{0}{1}", index, OuyaSDK.OuyaInput.IsControllerConnected(index) ? " |=" : " |X"), GUILayout.Height(60)))
            {
                PlayerNum = index;
                UpdatePlayerButtons();
            }
        }
        GUILayout.EndVertical();

        GUILayout.FlexibleSpace();

        if (GUILayout.Button("Hide Cursor"))
        {
            OuyaController.showCursor(false);
        }

        GUILayout.FlexibleSpace();

        GUILayout.EndHorizontal();

        GUILayout.FlexibleSpace();

        GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));

        GUILayout.FlexibleSpace();

        GUI.skin = m_guiSkin;
        GUILayout.BeginHorizontal(GUILayout.Width(300));
        GUILayout.Label("Controllers:");
        GUILayout.BeginVertical();
        GUILayout.Label(string.Format("{0}={1}", 1, m_controller1));
        GUILayout.Label(string.Format("{0}={1}", 2, m_controller2));
        GUILayout.Label(string.Format("{0}={1}", 3, m_controller3));
        GUILayout.Label(string.Format("{0}={1}", 4, m_controller4));
        GUILayout.Label(string.Format("{0}={1}", 5, m_controller5));
        GUILayout.Label(string.Format("{0}={1}", 6, m_controller6));
        GUILayout.Label(string.Format("{0}={1}", 7, m_controller7));
        GUILayout.Label(string.Format("{0}={1}", 8, m_controller8));
        GUILayout.EndVertical();
        GUILayout.EndHorizontal();

        GUILayout.FlexibleSpace();

        GUILayout.EndHorizontal();

        GUILayout.FlexibleSpace();

        GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));

        GUILayout.FlexibleSpace();

        GUILayout.BeginHorizontal();

        GUILayout.Label(m_label);

        GUILayout.FlexibleSpace();

        GUILayout.EndHorizontal();

        GUILayout.FlexibleSpace();

        GUILayout.EndHorizontal();

        int buttonId = 0;

        GUILayout.FlexibleSpace();
        GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));
        GUILayout.FlexibleSpace();
        for (; buttonId < 7 && buttonId < m_controllerButtons.Count; ++buttonId)
        {
            Texture2D texture = m_controllerButtons[buttonId];
            if (null != texture)
            {
                GUILayout.Button(texture);
            }
        }
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();
        GUILayout.FlexibleSpace();

        GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));
        GUILayout.FlexibleSpace();
        for (; buttonId < m_controllerButtons.Count; ++buttonId)
        {
            Texture2D texture = m_controllerButtons[buttonId];
            if (null != texture)
            {
                GUILayout.Button(texture);
            }
        }
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();
        GUILayout.FlexibleSpace();

        GUI.skin = null;
    }
示例#12
0
 public static void OuyaControllerInit(Context context)
 {
     OuyaController.init(context);
 }