示例#1
0
        public Gamepad(IntPtr pmJoystick)
        {
            pName=	"Unknown Gamepad";
            pJoystick=	pmJoystick;
            if(Sdl.SDL_JoystickIsHaptic(pJoystick)== 1)
                pHaptic=	Sdl.SDL_HapticOpenFromJoystick(pJoystick);
            else
                pHaptic=	IntPtr.Zero;
            bRumble=	(Sdl.SDL_HapticRumbleSupported(pHaptic)== Sdl.SDL_TRUE);
            if(bRumble)
                bRumble=	(Sdl.SDL_HapticRumbleInit(pHaptic)== 0);
            if(bRumble)
                Console.WriteLine("HAPTIC_RUMBLE SUPPORTED");
            buttons=	new FList<GamepadButton>();
            dpads=	new FList<GamepadDpad>();
            sticks=	new FList<GamepadStick>();
            buttonsHeld=	GBL.NONE;

            for(int i= 0; i< Sdl.SDL_JoystickNumButtons(pJoystick); i++)
                buttons.add(new GamepadButton(pJoystick, i));
            for(int i= 0; i< Sdl.SDL_JoystickNumHats(pJoystick); i++)
                dpads.add(new GamepadDpad(pJoystick, i));
            for(int i= 0; i< (int)(Sdl.SDL_JoystickNumAxes(joystick)/2f); i++)
            {
                if(mapStick(Sdl.SDL_JoystickGetAxis(joystick, i*2))== -1)
                {
                    triggers.add(new GamepadTrigger(joystick, i*2));
                    triggers.add(new GamepadTrigger(joystick, (i*2)+1));
                }
                else
                    sticks.add(new GamepadStick(pJoystick, i*2, (i*2)+1));
            }
        }
示例#2
0
 public GamepadTrigger(IntPtr pmJoystick, int pmIndex)
 {
     joystick=	pmJoystick;
     index=	pmIndex;
     pValue=	0f;
     pDeadZone=	0.24f;
     pKeyRep=	GBL.NONE;
 }
示例#3
0
 public GamepadButton(IntPtr pmJoystick, int buttonId)
 {
     pJoystick=	pmJoystick;
     buttonID=	buttonId;
     pName=	"Button "+buttonId;
     pKeyRep=	GBL.NONE;
     pHeld=	false;
 }
示例#4
0
        // Gets if the given button is held down
        public bool isButtonDown(GBL button)
        {
            if(gamepad== null)
                return false;

            if(button== GBL.ANY)
                return ((button&buttons)!= 0);

            return ((button&buttons)== button);
        }
示例#5
0
 public GamepadStick(IntPtr pmJoystick, int pmAxisIdX, int pmAxisIdY)
 {
     joystick=	pmJoystick;
     axisIdX=	pmAxisIdX;
     axisIdY=	pmAxisIdY;
     pDeadZone=	0.24f;
     pX=	0f;
     pY=	0f;
     pUpKeyRep=	GBL.NONE;
     pRightKeyRep=	GBL.NONE;
     pDownKeyRep=	GBL.NONE;
     pLeftKeyRep=	GBL.NONE;
 }
示例#6
0
 public GamepadDpad(IntPtr pmJoystick, int pmIndex)
 {
     joystick=	pmJoystick;
     index=	pmIndex;
     pUp=	false;
     pRight=	false;
     pDown=	false;
     pLeft=	false;
     pUpKeyRep=	GBL.NONE;
     pRightKeyRep=	GBL.NONE;
     pDownKeyRep=	GBL.NONE;
     pLeftKeyRep=	GBL.NONE;
 }
示例#7
0
 // Gets if the given button is not pressed
 public bool isKeyUp(GBL button)
 {
     return gamepad.isButtonUp(button);
 }
示例#8
0
 // Gets if the given button of the given player's gamepad is pressed
 public bool isKeyDown(GBL button)
 {
     return gamepad.isButtonDown(button);
 }
示例#9
0
        // Gets if the given button is not held down
        public bool isButtonUp(GBL button)
        {
            if(gamepad== null)
                return false;

            return ((button&buttons)== 0);
        }
示例#10
0
 // Updates the gamepad
 public void update()
 {
     if(gamepad!= null)
     {
         gamepad.update();
         buttons=	gamepad.getHeldButtons();
     }
 }
示例#11
0
 public GBI(GamepadTrigger gtrigger)
 {
     type=	4;
     flag=	gtrigger.getKey();
     upFlag=	GBL.NONE;
     rightFlag=	GBL.NONE;
     downFlag=	GBL.NONE;
     leftFlag=	GBL.NONE;
     name=	gtrigger.ToString();
 }
示例#12
0
 public GBI(GamepadDpad gdpad)
 {
     type=	3;
     flag=	GBL.NONE;
     upFlag=	gdpad.getUpKey();
     rightFlag=	gdpad.getRightKey();
     downFlag=	gdpad.getDownKey();
     leftFlag=	gdpad.getLeftKey();
     name=	gdpad.ToString();
 }
示例#13
0
 public GBI(GamepadStick gstick)
 {
     type=	2;
     flag=	GBL.NONE;
     upFlag=	gstick.getUpKey();
     rightFlag=	gstick.getRightKey();
     downFlag=	gstick.getDownKey();
     leftFlag=	gstick.getLeftKey();
     name=	gstick.ToString();
 }
示例#14
0
 public GBI(GamepadButton gbutton)
 {
     type=	1;
     flag=	gbutton.getKey();
     upFlag=	GBL.NONE;
     rightFlag=	GBL.NONE;
     downFlag=	GBL.NONE;
     leftFlag=	GBL.NONE;
     name=	gbutton.ToString();
 }
示例#15
0
 public GBI(string pmName)
 {
     type=	0;
     flag=	GBL.NONE;
     upFlag=	GBL.NONE;
     rightFlag=	GBL.NONE;
     downFlag=	GBL.NONE;
     leftFlag=	GBL.NONE;
     name=	pmName;
 }
示例#16
0
 public void AddDivision(GBL.Repository.Resources.DivisionType division)
 {
     AddChild(new DivisionViewModel{DivisionType = division, Parent = this});
 }