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

📄 btltank.jad

📁 java 编写的小游戏--坦克大战
💻 JAD
📖 第 1 页 / 共 2 页
字号:
        getGraphics().setColor(Color.black);
        getGraphics().fillRect(0, 0, size().width, size().height);
        getGraphics().setFont(fFont1);
        drawTextCentered(0, size().height / 2, size().width, "Loading " + s, getGraphics());
        Image image = getImage(getCodeBase(), s);
        mediatracker.addImage(image, 0);
        try
        {
            mediatracker.waitForAll();
        }
        catch(InterruptedException interruptedexception)
        {
            System.out.println(interruptedexception);
        }
        return image;
    }

    public void update(Graphics g)
    {
        if(fReadyToBlit)
        {
            fBlitting = true;
            if(DEBUG)
            {
                fOffScrGraphics.setFont(fFont1);
                fOffScrGraphics.setColor(Color.white);
                FontMetrics fontmetrics = getFontMetrics(getFont());
                Integer integer = new Integer(fView.fX);
                String s = "X: " + integer.toString();
                fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight());
                Integer integer1 = new Integer(fView.fY);
                s = "Y: " + integer1.toString();
                fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 2);
                Integer integer2 = new Integer(fView.fZ);
                s = "Z: " + integer2.toString();
                fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 3);
                Integer integer3 = new Integer(fView.fYAngle);
                s = "YRot: " + integer3.toString();
                fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 4);
                Integer integer4 = new Integer(fWorld.fPolygonList.fPolygons[0].fZMin);
                s = "ZMin: " + integer4.toString();
                fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 5);
                Integer integer5 = new Integer(fWorld.fPolygonList.fPolygons[0].fZMax);
                s = "ZMax: " + integer5.toString();
                fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 6);
                Integer integer6 = new Integer(fWorld.fPolygonList.fNumPolygons);
                s = "#Polygons: " + integer6.toString();
                fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 7);
                Integer integer7 = new Integer(fWorld.fNumObjects);
                s = "#Objects: " + integer7.toString();
                fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 8);
                Integer integer8 = new Integer(fView.fNumActiveBullets);
                s = "#Bullets: " + integer8.toString();
                fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 9);
                Integer integer9 = new Integer(fStatus);
                s = "#Status: " + integer9.toString();
                fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 10);
                Integer integer10 = new Integer(fView.fEnergy);
                s = "#Energy: " + integer10.toString();
                fOffScrGraphics.drawString(s, 5, fontmetrics.getHeight() * 11);
            }
            g.drawImage(fOffScrImage, 0, 0, this);
            fBlitting = false;
        }
    }

    public void predrawBackground()
    {
        Graphics g = fBgrImage.getGraphics();
        int i = 60;
        for(int j = 0; j < fScreenHeight / 2 + 5; j += 5)
        {
            Color color = new Color(i, 0, 0);
            g.setColor(color);
            g.fillRect(0, j, fScreenWidth - 1, 5);
            i += 5;
        }

    }

    public boolean keyUp(Event event, int i)
    {
        switch(i)
        {
        case 74: // 'J'
        case 106: // 'j'
        case 1006: 
            fRotateLeft = false;
            fRotationSpeed = 5;
            break;

        case 76: // 'L'
        case 108: // 'l'
        case 1007: 
            fRotateRight = false;
            fRotationSpeed = 5;
            break;

        case 73: // 'I'
        case 105: // 'i'
        case 1004: 
            fMoveForward = false;
            fMovementSpeed = 1;
            break;

        case 75: // 'K'
        case 107: // 'k'
        case 1005: 
            fMoveBackward = false;
            fMovementSpeed = 1;
            break;

        case 32: // ' '
            fShooting = false;
            break;
        }
        return true;
    }

    public void createPoly()
    {
        ZVertex azvertex[] = new ZVertex[50];
        int i = 0;
        do
            azvertex[i] = new ZVertex();
        while(++i < 50);
        azvertex[0].SetLocal(25, -5, -20);
        azvertex[1].SetLocal(-25, -5, -20);
        azvertex[2].SetLocal(-25, -5, 20);
        azvertex[3].SetLocal(25, -5, 20);
        azvertex[4].SetLocal(15, 10, -10);
        azvertex[5].SetLocal(-15, 10, -10);
        azvertex[6].SetLocal(-15, 10, 10);
        azvertex[7].SetLocal(15, 10, 10);
        azvertex[10].SetLocal(5, -15, -10);
        azvertex[11].SetLocal(-5, -15, -10);
        azvertex[12].SetLocal(-5, -15, 10);
        azvertex[13].SetLocal(5, -15, 10);
        azvertex[14].SetLocal(10, -5, -10);
        azvertex[15].SetLocal(-10, -5, -10);
        azvertex[16].SetLocal(-10, -5, 10);
        azvertex[17].SetLocal(10, -5, 10);
        azvertex[20].SetLocal(2, -12, 10);
        azvertex[21].SetLocal(-2, -12, 10);
        azvertex[22].SetLocal(-2, -12, 55);
        azvertex[23].SetLocal(2, -12, 55);
        azvertex[24].SetLocal(2, -10, 10);
        azvertex[25].SetLocal(-2, -10, 10);
        azvertex[26].SetLocal(-2, -10, 55);
        azvertex[27].SetLocal(2, -10, 55);
        int ai[] = {
            1, 18, 4, 0, 1, 5, 4, 10, 200, 10, 
            4, 5, 6, 7, 4, 10, 200, 10, 4, 6, 
            2, 3, 7, 10, 200, 10, 4, 2, 1, 0, 
            3, 10, 200, 10, 4, 2, 6, 5, 1, 10, 
            200, 10, 4, 4, 7, 3, 0, 10, 200, 10, 
            4, 10, 11, 15, 14, 10, 200, 10, 4, 15, 
            16, 17, 14, 10, 200, 10, 4, 16, 12, 13, 
            17, 10, 200, 10, 4, 12, 11, 10, 13, 10, 
            200, 10, 4, 12, 16, 15, 11, 10, 200, 10, 
            4, 14, 17, 13, 10, 10, 200, 10, 4, 20, 
            21, 25, 24, 10, 200, 10, 4, 25, 26, 27, 
            24, 10, 200, 10, 4, 26, 22, 23, 27, 10, 
            200, 10, 4, 22, 21, 20, 23, 10, 200, 10, 
            4, 22, 26, 25, 21, 10, 200, 10, 4, 24, 
            27, 23, 20, 10, 200, 10
        };
        int j = 6 + fLevel * 2;
        if(j > 12)
            j = 12;
        int ai1[] = new int[11];
        ai1[0] = 5;
        int k = 1;
        int l = 0;
        do
        {
            ZEnemyObject zenemyobject = new ZEnemyObject();
            zenemyobject.SetVertices(azvertex, 40);
            zenemyobject.SetFacets(ai);
            ai1[k] = 700;
            ai1[k + 1] = -350 + 150 * l;
            zenemyobject.SetInitialTranslation(ai1[k], 0, ai1[k + 1]);
            zenemyobject.SetInitialAngle(0, 480, 0);
            zenemyobject.SetSpeed(j);
            zenemyobject.SetRadius(30);
            zenemyobject.SetType(1);
            fWorld.Add(zenemyobject);
            k += 2;
        } while(++l < 5);
        fWorld.SetEnemyDeployPoints(ai1);
        int i1 = -1000;
        do
        {
            int j1 = -1000;
            do
                if(i1 != 0 || j1 != 0)
                {
                    ZBarrierObject zbarrierobject = new ZBarrierObject();
                    zbarrierobject.Put(i1, 0, j1, 0, 0, 0, 1);
                }
            while((j1 += 500) <= 1000);
        } while((i1 += 500) <= 1000);
        fView.SetPos(100, -20, 100, 0, 240, 0);
        fWorld.SetEdges(-2000, -2000, 2000, 2000);
    }

    public void start()
    {
        if(fThread == null)
        {
            fThread = new Thread(this);
            fThread.start();
        }
        fStatus = 4;
    }

    private void drawStats(Graphics g)
    {
        int i = 10 + fStatsLeftMargin;
        int j = fFont1Height;
        g.setFont(fFont1);
        g.setColor(Color.green);
        g.drawString("ENERGY", 10, j);
        j -= 3;
        for(int k = 0; k < fView.fEnergy; k++)
        {
            g.fillRect(i, j, 5, 3);
            i += 7;
        }

        g.setColor(Color.pink);
        j += fFont1Height;
        i = 10 + fStatsLeftMargin;
        g.drawString("ENEMY", 10, j);
        j -= 3;
        for(int l = 0; l < fView.fRemainingEnemies; l++)
        {
            g.fillRect(i, j, 5, 3);
            i += 7;
        }

        g.setColor(Color.white);
        j += fFont1Height;
        i = 10 + fStatsLeftMargin;
        g.drawString("SCORE ", 10, j);
        g.drawString("" + fView.fScore, i, j);
    }

    public boolean mouseDown(Event event, int i, int j)
    {
        if(fStatus == 1)
        {
            newGame();
            newLevel();
        }
        return true;
    }

    public void run()
    {
        createGame();
        enterIntro();
        fBgrSnd.loop();
        do
        {
            if(!fBlitting)
            {
                fReadyToBlit = false;
                drawOffScreen();
                fReadyToBlit = true;
                repaint();
            }
            try
            {
                Thread.sleep(5L);
            }
            catch(InterruptedException _ex) { }
        } while(true);
    }

    public void init()
    {
    }

    private void startAfterDying()
    {
        fMovementSpeed = 1;
        fRotationSpeed = 5;
    }

    private void enterIntro()
    {
        fStatus = 1;
        fWorld.RemoveAllObjects();
        createIntroObject();
    }

    public BtlTank()
    {
        BGR = true;
        fMatrix = new ZMatrix();
        lightX = 160;
        lightY = 100;
        lightZ = 100;
        lightIntensity = 50;
        fDrawMap = true;
    }

    public void createIntroObject()
    {
        ZVertex azvertex[] = new ZVertex[50];
        int i = 0;
        do
            azvertex[i] = new ZVertex();
        while(++i < 50);
        azvertex[0].SetLocal(25, -5, -20);
        azvertex[1].SetLocal(-25, -5, -20);
        azvertex[2].SetLocal(-25, -5, 20);
        azvertex[3].SetLocal(25, -5, 20);
        azvertex[4].SetLocal(15, 10, -10);
        azvertex[5].SetLocal(-15, 10, -10);
        azvertex[6].SetLocal(-15, 10, 10);
        azvertex[7].SetLocal(15, 10, 10);
        azvertex[10].SetLocal(5, -15, -10);
        azvertex[11].SetLocal(-5, -15, -10);
        azvertex[12].SetLocal(-5, -15, 10);
        azvertex[13].SetLocal(5, -15, 10);
        azvertex[14].SetLocal(10, -5, -10);
        azvertex[15].SetLocal(-10, -5, -10);
        azvertex[16].SetLocal(-10, -5, 10);
        azvertex[17].SetLocal(10, -5, 10);
        azvertex[20].SetLocal(2, -12, -60);
        azvertex[21].SetLocal(-2, -12, -60);
        azvertex[22].SetLocal(-2, -12, -10);
        azvertex[23].SetLocal(2, -12, -10);
        azvertex[24].SetLocal(2, -10, -60);
        azvertex[25].SetLocal(-2, -10, -60);
        azvertex[26].SetLocal(-2, -10, -10);
        azvertex[27].SetLocal(2, -10, -10);
        int ai[] = {
            1, 18, 4, 0, 1, 5, 4, 10, 200, 10, 
            4, 5, 6, 7, 4, 10, 200, 10, 4, 6, 
            2, 3, 7, 10, 200, 10, 4, 2, 1, 0, 
            3, 10, 200, 10, 4, 2, 6, 5, 1, 10, 
            200, 10, 4, 4, 7, 3, 0, 10, 200, 10, 
            4, 10, 11, 15, 14, 10, 200, 10, 4, 15, 
            16, 17, 14, 10, 200, 10, 4, 16, 12, 13, 
            17, 10, 200, 10, 4, 12, 11, 10, 13, 10, 
            200, 10, 4, 12, 16, 15, 11, 10, 200, 10, 
            4, 14, 17, 13, 10, 10, 200, 10, 4, 20, 
            21, 25, 24, 10, 200, 10, 4, 25, 26, 27, 
            24, 10, 200, 10, 4, 26, 22, 23, 27, 10, 
            200, 10, 4, 22, 21, 20, 23, 10, 200, 10, 
            4, 22, 26, 25, 21, 10, 200, 10, 4, 24, 
            27, 23, 20, 10, 200, 10
        };
        ZExplodingObject zexplodingobject = new ZExplodingObject();
        zexplodingobject.SetVertices(azvertex, 40);
        zexplodingobject.SetFacets(ai);
        zexplodingobject.SetInitialTranslation(200, 0, 200);
        zexplodingobject.SetType(1);
        zexplodingobject.SetRotationSpeed(0, 26, 0);
        fWorld.Add(zexplodingobject);
        fView.SetPos(120, -20, 120, 0, 240, 0);
    }

    static final int PLAYING = 0;
    static final int INTRO = 1;
    static final int ENDINGLEVEL = 2;
    static final int GAMEOVER = 3;
    static final int LOADING = 4;
    int fStatus;
    int fStatusTimer;
    int fStartingLevelMessageCountdown;
    int fLowEnergyWarningMessageCountdown;
    boolean fLowEnergyWarningMessageHasPlayed;
    int fScreenWidth;
    int fScreenHeight;
    int fXMidScr;
    int fYMidScr;
    boolean fMoveForward;
    boolean fMoveBackward;
    boolean fRotateLeft;
    boolean fRotateRight;
    boolean fShooting;
    int fMovementSpeed;
    int fRotationSpeed;
    static final int DEFAULT_MOVEMENT_SPEED = 1;
    static final int DEFAULT_ROTATION_SPEED = 5;
    static final int MAX_MOVEMENT_SPEED = 20;
    static final int MAX_ROTATION_SPEED = 26;
    static final int MOVEMENT_SPEED_INCREMENT = 3;
    static final int ROTATION_SPEED_INCREMENT = 5;
    boolean DEBUG;
    boolean BGR;
    Graphics fOffScrGraphics;
    Image fOffScrImage;
    Thread fThread;
    ZMatrix fMatrix;
    int lightX;
    int lightY;
    int lightZ;
    int lightIntensity;
    ZLight fLight;
    ZView fView;
    ZWorld fWorld;
    boolean fReadyToBlit;
    boolean fBlitting;
    boolean fGameIsLoaded;
    boolean fWireframeMode;
    boolean fDrawMap;
    int fMapScalingFactor;
    Image fBgrImage;
    Image fTitleImage;
    static Font fFont1 = new Font("Times", 1, 10);
    static Font fFont2 = new Font("Times", 1, 20);
    static Font fFont3 = new Font("Times", 1, 10);
    static int fFont1Height;
    static int fFont2Height;
    AudioClip fPlayerGunSnd;
    AudioClip fBgrSnd;
    AudioClip fCollideSnd;
    AudioClip fExplodeSnd;
    AudioClip fViewerCollisionSnd;
    int fLevel;
    int fStatsLeftMargin;
    Image fSkyImage;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -