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

📄 titlegame.java

📁 俄罗斯制作的横版动作游戏
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
// 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 
// Source File Name:   TitleGame.java

import com.nokia.mid.ui.FullCanvas;
import java.io.PrintStream;
import java.util.Random;
import javax.microedition.lcdui.*;
import javax.microedition.media.Manager;
import javax.microedition.media.Player;

public class TitleGame extends FullCanvas
    implements Runnable
{

    private Random rm;
    private SamkokGame mainGame;
    private SamkokMID parent;
    private boolean running;
    private int startLevel;
    private int levelFinish;
    private byte data[];
    private long finishTime;
    private int numTime;
    private int selectNewGame;
    private int titleMode;
    private boolean playerLock[];
    private int storyY;
    private int storyX;
    private int playerX;
    private int startLine;
    private int storyMode;
    private boolean showTrue;
    private int numShow;
    private int stepPlayer[] = {
        1, 2, 1, 3
    };
    private boolean showNextPlayer;
    private boolean realEnd;
    private int nextPlayerX;
    private int gameLevel;
    private boolean showMenu;
    private byte selectMenu;
    private boolean playExit;
    private byte skyFrame[][] = {
        {
            9, 9, 9, 9, 5, 8, 3, 2, 1
        }, {
            9, 9, 9, 9, 6, 8, 3, 2, 1
        }, {
            9, 9, 9, 9, 5, 8, 4, 2, 1
        }, {
            9, 9, 9, 9, 6, 8, 3, 2, 1
        }
    };
    private Image lg_ss;
    private Image lg_gz;
    private Image lg_vt;
    private Image title[];
    private Image label;
    private Image tempStory;
    private Image tempTitleM1;
    private SecondAnimation tileBG;
    private SecondAnimation mode_tt;
    private SecondAnimation item;
    private SecondAnimation square;
    private SecondAnimation pris;
    private SecondAnimation player[];
    private SecondAnimation thaiFontB;
    private SecondAnimation thaiFontW;
    private Font fontS;
    private static final byte LOGO_SS = 2;
    private static final byte LOGO_VT = 0;
    private static final byte LOGO_GZ = 1;
    private static final byte TITLE = 10;
    private static final byte NEWGAME = 20;
    private static final byte SELECTMAN = 30;
    private static final byte STORY = 40;
    private static final byte STARTGAME = 50;
    private static final byte OPTION = 60;
    private static final byte ENDING = 90;
    private String storyStr[] = {
        "??????????????", "?????????????????7?????", "???????????????????????", "?????????????????", "???????????????????????", ".....", "??????????????????", "????????????????????????", "????????????????????", "????????????????????", 
        "?????????????????", "???????????????????????", "????????????????", "?????????????????", "??????????????", "??????????????????? ", "??????????? ", "???????????", "....."
    };
    private String plName[] = {
        "???????", "?????", "????????"
    };
    private String plArm[] = {
        "??????", "????", "???"
    };
    private String plSpc[] = {
        "????????", "???????????", "??????????????"
    };
    private String storyCredit[] = {
        "?????????????? ?????", "???????????", "3????????????????", "????????????????????", "????????????????????", "???????????????", "????????????", "?????????????????????", "?????????????????????", "???????????????????", 
        "??????????????????", "?????????????", "????????????", "??????????........", "", "", "CREDIT", "", "CHARACTOR", "????????", 
        "", "Game Concept", "????? ???????????", "Graphic Game", "????? ???????????", "Graphic Title", "???????? ??????????????", "", "Programming Game", "????? ??????????", 
        "Programming Title", "ADDMON", "", "Sound", "????? ???????????", "", "Game Stage", "????? ???????????", "Monster Stage", "???????? ??????????????", 
        "", "THANK YOU", "VITHITA ANIMATION", "www.gangzaa.com", "", "THANK YOU", "FOR PLAYING", "www.secondsoft.co.th", "", "", 
        "THE END"
    };
    private String storyNew[] = {
        "???????????????? ???????????", "????????????????????????????", "?.???????????? ???????????", "?????????????????? ???????", "???????????????????????????", "??????????????????????", "???????????? ???????", "?????????????????????????????", "?????????????"
    };
    private int playerLife;
    private int curLevel;
    private int maxWeaponMode;
    private int weaponMode;
    private int playerType;
    private SecondLoadEncodeData encode;
    private static byte music[] = null;
    private Player gameMusic;
    public boolean playSound;
    private int songNumber;
    private long songTime;
    private static final byte ADD_FONT[] = {
        4, 3, 5, 7, 6, 8, 8, 3, 4, 4, 
        7, 6, 3, 4, 3, 5, 6, 6, 6, 6, 
        6, 6, 6, 6, 6, 6, 3, 3, 5, 6, 
        5, 5, 8, 8, 6, 6, 7, 5, 5, 6, 
        7, 4, 4, 6, 5, 8, 7, 7, 6, 7, 
        6, 6, 8, 7, 6, 8, 6, 6, 7, 4, 
        5, 4, 6, 5, 3, 6, 6, 5, 6, 6, 
        5, 6, 6, 2, 3, 6, 2, 9, 6, 6, 
        6, 6, 4, 6, 5, 6, 6, 8, 6, 6, 
        6, 5, 3, 5, 6, 4, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 5, 6, 
        7, 7, 6, 6, 8, 5, 5, 7, 7, 8, 
        9, 8, 6, 6, 5, 8, 9, 9, 6, 6, 
        6, 6, 6, 7, 6, 6, 6, 6, 7, 7, 
        6, 6, 6, 5, 6, 6, 6, 5, 6, 7, 
        6, 7, 8, 6, 6, 5, 4, 0, 5, 8, 
        0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 
        4, 6, 3, 6, 5, 6, 6, 5, 5, 0, 
        0, 0, 0, 0, 0, 0, 0, 7, 6, 6, 
        7, 7, 6, 6, 6, 8, 7, 7, 4, 4, 
        4, 4, 4, 4
    };

    public TitleGame(SamkokMID parent, SamkokGame game)
    {
        mainGame = null;
        this.parent = null;
        running = true;
        numTime = 0;
        playerLock = new boolean[3];
        title = new Image[4];
        player = new SecondAnimation[3];
        fontS = Font.getFont(0, 0, 8);
        this.parent = parent;
        mainGame = game;
        rm = new Random();
        encode = new SecondLoadEncodeData();
        parent.playSound = Integer.parseInt(SeReg.Load("sound.dat", "2"));
        int tempInt = Integer.parseInt(SeReg.Load("game.dat", "1"));
        thaiFontB = new SecondAnimation("/data/fb", 32, 7);
        thaiFontW = new SecondAnimation("/data/fw", 32, 7);
        data = encode.LoadToByteArray("/data/logo");
        lg_ss = Image.createImage(data, 0, 2874);
        lg_gz = Image.createImage(data, 6940, 5689);
        lg_vt = Image.createImage(data, 2874, 4066);
        data = null;
        data = encode.LoadToByteArray("/data/gm");
        item = new SecondAnimation(data, 6942, 684, 12, 1);
        data = null;
        data = encode.LoadToByteArray("/data/tt");
        square = new SecondAnimation(data, 1371, 196, 2, 1);
        mode_tt = new SecondAnimation(data, 652, 388, 3, 1);
        pris = new SecondAnimation(data, 1040, 331, 2, 1);
        label = Image.createImage(data, 0, 652);
        title[0] = Image.createImage(data, 1567, 22564);
        data = null;
        data = encode.LoadToByteArray("/data/pl");
        player[0] = new SecondAnimation(data, 16, 827, 6, 1);
        player[1] = new SecondAnimation(data, 843, 955, 6, 1);
        player[2] = new SecondAnimation(data, 1798, 854, 6, 1);
        data = null;
        title[1] = Image.createImage(176, 8);
        Graphics gr = title[1].getGraphics();
        for(int y = 0; y < 176; y += 8)
            square.drawImage(gr, y, 0, 1, false);

        gr = null;
        title[2] = Image.createImage(8, 192);
        gr = title[2].getGraphics();
        for(int x = 0; x < 192; x += 8)
            square.drawImage(gr, 0, x, 1, false);

        gr = null;
        playerLock[0] = false;
        if((tempInt & 0x2) == 0)
            playerLock[1] = true;
        if((tempInt & 0x4) == 0)
            playerLock[2] = true;
        showMenu = false;
        numTime = 0;
        songNumber = -1;
        showNextPlayer = false;
        startLevel = 60;
        levelFinish = 0;
    }

    public void setTitleMode(int mode)
    {
        titleMode = mode;
        initLevel();
    }

    private int loadStage()
    {
        String str = SeReg.Load("load.dat", "0");
        int tempInt = Integer.parseInt(str.substring(0, 1));
        if(tempInt == 0)
        {
            return 0;
        } else
        {
            playerType = Integer.parseInt(str.substring(1, 2));
            playerLife = Integer.parseInt(str.substring(2, 3));
            maxWeaponMode = Integer.parseInt(str.substring(3, 6)) - 100;
            weaponMode = Integer.parseInt(str.substring(6, 9)) - 100;
            curLevel = Integer.parseInt(str.substring(9, 11)) - 10;
            return 1;
        }
    }

    private void loadSound(int track, boolean play)
    {
        if(track == songNumber)
            return;
        try
        {
            if(gameMusic != null)
                gameMusic.close();
            java.io.InputStream in = getClass().getResourceAsStream("/data/m" + track);
            gameMusic = Manager.createPlayer(in, "audio/midi");
            gameMusic.setLoopCount(-1);
            in = null;
            if(parent.playSound > 0 && play)
                gameMusic.start();
        }
        catch(Exception ioe) { }
        songNumber = track;
    }

    private void initLevel()
    {
        switch(titleMode)
        {
        default:
            break;

        case 20: // '\024'
        case 30: // '\036'
        case 40: // '('
        case 60: // '<'
            if(titleMode == 40)
                startLine = -6;
            storyMode = 0;
            numShow = 0;
            playerX = 0;
            // fall through

        case 10: // '\n'
            if(titleMode != 40)
                loadSound(0, true);
            break;

        case 90: // 'Z'
            startLine = -6;
            encode = new SecondLoadEncodeData();
            data = encode.LoadToByteArray("/data/gm");
            tileBG = new SecondAnimation(data, 8258, 775, 9, 1);
            SecondAnimation tileM1 = new SecondAnimation(data, 9033, 2728, 36, 1);
            data = null;
            tempTitleM1 = Image.createImage(192, 32);
            Graphics gr = tempTitleM1.getGraphics();
            for(int x = 0; x < 192; x += 16)
            {
                gr.setClip(0, 0, 192, 32);
                tileM1.drawImage(gr, x, 0, 10, true);
                gr.setClip(0, 0, 192, 32);
                tileM1.drawImage(gr, x, 16, 22, true);
            }

            tileM1 = null;
            data = encode.LoadToByteArray("/data/tt");
            square = new SecondAnimation(data, 1371, 196, 2, 1);
            label = Image.createImage(data, 0, 652);
            data = null;
            Image tempImage = Image.createImage(64, 144);
            gr = tempImage.getGraphics();
            for(int y = 0; y < 9; y++)
            {
                for(int x = 0; x < 4; x++)
                {
                    gr.setClip(0, 0, 64, 144);
                    tileBG.drawImage(gr, x << 4, y << 4, skyFrame[x][y], true);
                }

            }

            tileBG = null;
            title[3] = Image.createImage(176, 144);
            gr = title[3].getGraphics();
            for(int z = 0; z < 3; z++)
                gr.drawImage(tempImage, z * 64, 0, 0);

            for(int y = 0; y < 144; y += 8)
            {
                for(int x = 0; x < 176; x += 8)
                {
                    if(y == 0)
                        square.drawImage(gr, x, y, 1, false);
                    if(x == 0 || x == 168)
                        square.drawImage(gr, x, y, 1, false);
                }

            }

            gr = null;
            data = null;
            data = encode.LoadToByteArray("/data/pl");
            player[0] = new SecondAnimation(data, 16, 827, 6, 1);
            player[1] = new SecondAnimation(data, 843, 955, 6, 1);
            player[2] = new SecondAnimation(data, 1798, 854, 6, 1);
            data = null;
            loadSound(0, true);
            break;
        }
        finishTime = System.currentTimeMillis();
    }

    private void paintStory(Graphics g)
    {
        for(int i = 0; i < 8; i++)
            if(startLine + i >= 0 && startLine + i < 19)
                drawThai(g, storyStr[i + startLine], 88, (60 + (i << 4)) - storyY, 1, 2, 1, true);

    }

    protected void paint(Graphics g)
    {
        if(levelFinish > 1)
        {
            g.setClip(0, 0, 176, 208);
            g.setColor(0);
            for(int i = 0; i < 13; i++)
                g.fillRect(0, i << 4, 176, levelFinish);

            return;
        }
        g.setFont(fontS);
        if(title == null)
            return;
        switch(titleMode)
        {
        case 2: // '\002'
            g.setClip(0, 0, 176, 208);
            g.setColor(255, 255, 255);
            g.fillRect(0, 0, 176, 208);
            Graphics _tmp = g;
            Graphics _tmp1 = g;
            g.drawImage(lg_ss, 88, 104, 0x1 | 0x2);
            break;

        case 0: // '\0'
            g.setColor(255, 255, 255);
            g.fillRect(0, 0, 176, 208);
            Graphics _tmp2 = g;
            Graphics _tmp3 = g;
            g.drawImage(lg_vt, 88, 104, 0x1 | 0x2);
            break;

        case 1: // '\001'
            g.setColor(255, 255, 255);
            g.fillRect(0, 0, 176, 208);
            Graphics _tmp4 = g;
            Graphics _tmp5 = g;
            g.drawImage(lg_gz, 88, 104, 0x1 | 0x2);
            break;

        case 10: // '\n'

⌨️ 快捷键说明

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