源代码:
private int getDpadStates(float x, float y)
{if (dpad4Way) return DPAD_4WAY[get4WayDirection(x, y)];
final float cx = 0.5f;
final float cy = 0.5f;
int states = 0;
if (x < cx - dpadDeadZone)
states |= Keycodes.GAMEPAD_LEFT;
else if (x > cx + dpadDeadZone) states |= Keycodes.GAMEPAD_RIGHT;
if (y < cy - dpadDeadZone)
states |= Keycodes.GAMEPAD_UP;
else if (y > cy + dpadDeadZone) states |= Keycodes.GAMEPAD_DOWN;
return states;
}
反编译后:
private int getDpadStates(float paramFloat1, float paramFloat2){
int j;
if (this.dpad4Way)
{
j = DPAD_4WAY[get4WayDirection(paramFloat1, paramFloat2)];
return j;
}
int i = 0;
if (paramFloat1 < 0.5F - this.dpadDeadZone)
{
i = 0x0 | 0x20;
label41: if (paramFloat2 >= 0.5F - this.dpadDeadZone)
break label84;
i |= 64;
}
while (true)
{
j = i;
break;
if (paramFloat1 <= 0.5F + this.dpadDeadZone)
break label41;
i = 0x0 | 0x10;
break label41;
label84: if (paramFloat2 > 0.5F + this.dpadDeadZone)
i |= 128;
}
}