📄 keycapture.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
package com.golden.gamedev.funbox;
import com.golden.gamedev.engine.BaseInput;
import java.awt.event.KeyEvent;
import java.io.PrintStream;
public abstract class KeyCapture
{
public BaseInput input;
public boolean DEBUG;
private int c[];
private String d;
private int e[];
private int f;
private int g;
private long h;
private boolean i;
public KeyCapture(BaseInput baseinput, int ai[], int j)
{
DEBUG = false;
i = true;
input = baseinput;
g = j;
c = ai;
StringBuffer stringbuffer = new StringBuffer();
for(int k = 0; k < ai.length; k++)
stringbuffer.append(KeyEvent.getKeyText(ai[k]));
d = stringbuffer.toString();
}
public KeyCapture(BaseInput baseinput, String s, int j)
{
DEBUG = false;
i = true;
input = baseinput;
g = j;
c = g(s);
StringBuffer stringbuffer = new StringBuffer();
for(int k = 0; k < c.length; k++)
stringbuffer.append(KeyEvent.getKeyText(c[k]));
d = stringbuffer.toString();
}
public int[] getKeySequence()
{
return c;
}
public String getKeyString()
{
return d;
}
public void setKeySequence(int ai[])
{
c = ai;
StringBuffer stringbuffer = new StringBuffer();
for(int j = 0; j < ai.length; j++)
stringbuffer.append(KeyEvent.getKeyText(ai[j]));
d = stringbuffer.toString();
}
public void setKeySequence(String s)
{
setKeySequence(g(s));
}
private int[] g(String s)
{
int ai[] = new int[s.length()];
s = s.toUpperCase();
for(int j = 0; j < s.length(); j++)
switch(s.charAt(j))
{
case 65: // 'A'
ai[j] = 65;
break;
case 66: // 'B'
ai[j] = 66;
break;
case 67: // 'C'
ai[j] = 67;
break;
case 68: // 'D'
ai[j] = 68;
break;
case 69: // 'E'
ai[j] = 69;
break;
case 70: // 'F'
ai[j] = 70;
break;
case 71: // 'G'
ai[j] = 71;
break;
case 72: // 'H'
ai[j] = 72;
break;
case 73: // 'I'
ai[j] = 73;
break;
case 74: // 'J'
ai[j] = 74;
break;
case 75: // 'K'
ai[j] = 75;
break;
case 76: // 'L'
ai[j] = 76;
break;
case 77: // 'M'
ai[j] = 77;
break;
case 78: // 'N'
ai[j] = 78;
break;
case 79: // 'O'
ai[j] = 79;
break;
case 80: // 'P'
ai[j] = 80;
break;
case 81: // 'Q'
ai[j] = 81;
break;
case 82: // 'R'
ai[j] = 82;
break;
case 83: // 'S'
ai[j] = 83;
break;
case 84: // 'T'
ai[j] = 84;
break;
case 85: // 'U'
ai[j] = 85;
break;
case 86: // 'V'
ai[j] = 86;
break;
case 87: // 'W'
ai[j] = 87;
break;
case 88: // 'X'
ai[j] = 88;
break;
case 89: // 'Y'
ai[j] = 89;
break;
case 90: // 'Z'
ai[j] = 90;
break;
case 32: // ' '
ai[j] = 32;
break;
case 48: // '0'
ai[j] = 96;
break;
case 49: // '1'
ai[j] = 97;
break;
case 50: // '2'
ai[j] = 98;
break;
case 51: // '3'
ai[j] = 99;
break;
case 52: // '4'
ai[j] = 100;
break;
case 53: // '5'
ai[j] = 101;
break;
case 54: // '6'
ai[j] = 102;
break;
case 55: // '7'
ai[j] = 103;
break;
case 56: // '8'
ai[j] = 104;
break;
case 57: // '9'
ai[j] = 105;
break;
case 33: // '!'
case 34: // '"'
case 35: // '#'
case 36: // '$'
case 37: // '%'
case 38: // '&'
case 39: // '\''
case 40: // '('
case 41: // ')'
case 42: // '*'
case 43: // '+'
case 44: // ','
case 45: // '-'
case 46: // '.'
case 47: // '/'
case 58: // ':'
case 59: // ';'
case 60: // '<'
case 61: // '='
case 62: // '>'
case 63: // '?'
case 64: // '@'
default:
throw new RuntimeException("Can't parse String st at " + j + " -> " + s.charAt(j) + "\nUse setKeySequence(int[]) instead");
}
return ai;
}
public int[] getModifiers()
{
return e;
}
public void setModifiers(int ai[])
{
e = ai;
}
public void setModifiers(int j)
{
setModifiers(new int[] {
j
});
}
public abstract void keyCaptured();
public void refresh()
{
f = 0;
h = 0L;
}
public void update(long l)
{
if(i)
{
h += l;
if(h > (long)g && f > 0)
{
r("FAILED: Run out of time, delay time=" + g + "ms");
refresh();
}
if(e != null)
{
for(int j = 0; j < e.length; j++)
if(!input.isKeyDown(e[j]))
{
if(f > 0)
{
r("FAILED: Modifiers key <" + KeyEvent.getKeyText(e[j]) + "> not pressed");
refresh();
}
return;
}
}
if(input.getKeyPressed() != 0x80000000)
if(input.isKeyPressed(c[f]))
{
h = 0L;
if(++f > c.length - 1)
{
q("SUCCESS: Key Captured");
keyCaptured();
refresh();
return;
}
} else
if(f > 0)
{
r("FAILED: Wrong key sequence=" + KeyEvent.getKeyText(input.getKeyPressed()));
refresh();
if(input.isKeyPressed(c[f]) && ++f > c.length - 1)
{
q("SUCCESS: Key Captured");
keyCaptured();
refresh();
}
}
}
}
public boolean isActive()
{
return i;
}
public void setActive(boolean flag)
{
i = flag;
refresh();
}
public int getDelayTime()
{
return g;
}
public void setDelayTime(int j)
{
g = j;
}
private void q(String s)
{
if(DEBUG && f > 0)
{
System.out.println(this);
System.out.println(s);
}
}
private void r(String s)
{
if(DEBUG && f > 0)
{
System.out.println(this);
System.out.print(s + ", ");
StringBuffer stringbuffer;
(stringbuffer = new StringBuffer()).append("Current sequence=");
for(int j = 0; j < f; j++)
stringbuffer.append(KeyEvent.getKeyText(c[j]));
System.out.println(stringbuffer.toString());
}
}
public String toString()
{
StringBuffer stringbuffer = null;
if(e != null)
{
stringbuffer = new StringBuffer();
for(int j = 0; j < e.length; j++)
stringbuffer.append(e[j]);
}
return super.toString() + " " + "[keysequence=" + d + ", modifiers=" + stringbuffer + ", delay=" + g + "]";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -