⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keycapture.java

📁 一个java的免费游戏引擎,里面有文档,和例子
💻 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 + -