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

📄 rollercanvas.java

📁 龙石游戏源代码!需要的下载!
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
// Decompiled by DJ v3.8.8.85 Copyright 2005 Atanas Neshkov  Date: 2005-8-14 11:30:47
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: packimports(3) 
// Source File Name:   RollerCanvas.java

package stone;

import com.nokia.mid.ui.*;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Random;
import javax.microedition.lcdui.*;

// Referenced classes of package stone:
//            TonePlayer, RollerLogic

public class RollerCanvas extends FullCanvas
{
    class Col
    {

        int x;
        int y;
        int z;
        int mx;
        int my;
        int pow;
        int pow2;
        int team;
        int rangex;
        int rangey;
        int rangez;

        Col()
        {
        }
    }

    class Thing
    {

        int id;
        int life;
        int team;
        int dirx;
        int aidirx;
        int x;
        int y;
        int z;
        int walktox;
        int walktoy;
        int backupx;
        int backupy;
        int X;
        int Y;
        int Z;
        int mx;
        int my;
        int mz;
        int imageno;
        int skin;
        int action;
        int backupaction;
        int anim;
        int frames;
        int life2;
        int handlex;
        int handley;
        int invtimer;

        Thing()
        {
        }
    }


    RollerCanvas(RollerLogic m_Logic)
    {
        bPaused = false;
        animationThread = null;
        bPRequested = false;
        m_LoseFocus = false;
        maxprioritylist = 100;
        prioritylist = new byte[maxprioritylist + 1];
        maxsprite = 180;
        sprite = new Image[maxsprite + 1];
        ranObj = new Random();
        vieww = 180;
        viewh = 210;
        testx = 0;
        testy = 0;
        timexxx = 0;
        time200 = 0;
        time100 = 0;
        time50 = 0;
        time40 = 0;
        time30 = 0;
        time20 = 0;
        time10 = 0;
        time8 = 0;
        time12 = 0;
        time5 = 0;
        time2 = 0;
        showstageclear = 0;
        showready = 0;
        showdie = 0;
        showfadeout = 0;
        showfadein = 0;
        showgameover = 0;
        showcongratulations = 0;
        showtimeover = 0;
        showtitle = 0;
        titlex = 0;
        stage = 0;
        lives = 0;
        DEAD = 0;
        GIRL1 = 1;
        DUMMY = 2;
        TREE = 3;
        CONTROL = 4;
        DROP = 201;
        SLASH1 = 202;
        SPLASH = 203;
        JUMP = 204;
        RUNNINGSTAB = 205;
        STAB = 206;
        STUN = 207;
        PK = 208;
        BARGE = 209;
        GIRL2 = 301;
        SOLDIER1 = 302;
        BOSS1 = 303;
        BOSS2 = 304;
        BOSS3 = 305;
        BOSS4 = 306;
        RUNNINGATTACK = 307;
        JUMPATTACK = 308;
        SHORTATTACK = 309;
        WAIT = 101;
        BOSSWAIT = 102;
        gridx = 10;
        gridy = 10;
        myman = 0;
        arealeft = 50;
        areatop = 50;
        arearight = arealeft + 1000;
        areabottom = areatop + 260;
        areaw = arearight - arealeft;
        areah = areabottom - areatop;
        maxmen = 30;
        usedmen = 0;
        maxlist = 1000;
        maxcol = 3;
        col = new Col[maxcol + 1];
        list = new byte[maxlist + 1];
        man = new Thing[maxmen + 1];
        maxdrawlist = 150;
        useddrawlist = 0;
        drawlist = new Thing[maxdrawlist + 1];
        bit = new byte[151][51];
        numsprite = new Image[12];
        loadbarw = 0;
        loadstage = 0;
        imageReady = false;
        this.m_Logic = m_Logic;
    }

    void DoAIWalk(Thing m, int mx, int my)
    {
        int attack = 0;
        int rangey = 5;
        if(ailevel > 1)
        {
            mx++;
            my++;
        }
        if(ailevel > 2)
            my++;
        int b = 0;
        int t = myman;
        m.frames++;
        if(m.frames == 1)
        {
            int left = 0;
            int right = 0;
            if(m.x < man[t].x)
                left -= GetRandomNo(4);
            else
                right -= GetRandomNo(4);
            for(int i = 1; i <= usedmen; i++)
            {
                if(man[i].action <= 0)
                    continue;
                if(man[i].aidirx < 0)
                    left++;
                if(man[i].aidirx > 0)
                    right++;
            }

            m.aidirx = -1;
            if(left > right)
                m.aidirx = 1;
        }
        if(time20 == 1)
        {
            m.walktox = man[t].x + m.dirx * 80 + GetRandomNo(30);
            m.walktoy = (man[t].y - 20) + GetRandomNo(40);
        }
        if(bit[m.x / gridx][m.y / gridy] * gridy > m.z)
        {
            if(bit[m.x / gridx][m.y / gridy] * gridy > 0)
            {
                m.x -= m.mx;
                m.mx = 0;
            }
            if(bit[m.x / gridx][m.y / gridy] * gridy > 0)
            {
                m.y -= m.my;
                m.my = 0;
            }
        }
        if(bit[m.x / gridx][m.y / gridy] * gridy > m.z)
        {
            System.out.println(String.valueOf(String.valueOf((new StringBuffer("floor=")).append(bit[m.x / gridx][m.y / gridy]).append(" m.z=").append(m.z))));
            InitAction(m, DROP);
            return;
        }
        b = bit[(m.x + m.mx) / gridx][(m.y + m.my) / gridy] * gridy;
        if(b < m.z && b > m.z - 50)
        {
            InitAction(m, JUMP);
            m.my /= 2;
        }
        if(m.x == m.backupx && m.y == m.backupy)
        {
            m.walktoy = (short)(m.y + 20);
            if(time20 > 10)
                m.walktoy = (short)(m.y - 20);
        }
        m.backupx = m.x;
        m.backupy = m.y;
        m.mx = 0;
        m.my = 0;
        m.dirx = 1;
        if(m.x > man[t].x)
            m.dirx = -1;
        if(m.x + mx < m.walktox)
            m.mx = mx;
        if(m.x - mx > m.walktox)
            m.mx = -mx;
        if(m.y + my < m.walktoy)
            m.my = my;
        if(m.y - my > m.walktoy)
            m.my = -my;
        if(m.mx != 0 || m.my != 0)
            m.imageno = m.skin + walkanim;
        if(ailevel == 1 && time5 == 1)
            attack = 1;
        if(ailevel == 2 && (time5 == 1 || time5 == 3))
            attack = 1;
        if(ailevel == 3)
            attack = 1;
        if(attack > 0 && man[myman].action != PK)
        {
            int rangex;
            if(GetRandomNo(100) < 15)
            {
                rangex = 150;
                if(m.backupaction >= BOSS1)
                    rangex = 100;
                if(m.backupaction == BOSS3)
                    rangex = 0;
                if(m.x + rangex > man[t].x && m.x - rangex < man[t].x && m.y + rangey > man[t].y && m.y - rangey < man[t].y)
                {
                    InitAction(m, BARGE);
                    if(ailevel == 1 && m.backupaction < BOSS1 && GetRandomNo(10) < 7)
                        m.frames -= 6 + GetRandomNo(3);
                    if(ailevel == 2 && m.backupaction < BOSS1 && GetRandomNo(10) < 5)
                        m.frames -= 3 + GetRandomNo(3);
                }
            }
            rangex = 50;
            if(m.backupaction >= BOSS1)
                rangex = 60;
            if(m.backupaction == BOSS3)
                rangex = 80;
            if(m.x + rangex > man[t].x && m.x - rangex < man[t].x && m.y + rangey > man[t].y && m.y - rangey < man[t].y)
            {
                InitAction(m, SLASH1);
                if(ailevel == 1 && m.backupaction < BOSS1 && GetRandomNo(10) < 8)
                    m.frames -= 7 + GetRandomNo(3);
                if(ailevel == 2 && m.backupaction < BOSS1 && GetRandomNo(10) < 7)
                    m.frames -= 4 + GetRandomNo(3);
                if(m.backupaction == BOSS1)
                    m.frames -= 2;
            }
        }
    }

    public synchronized void loadImage()
    {
        try
        {
            switch(loadstage)
            {
            default:
                break;

            case 0: // '\0'
                sprite[0] = LoadImage("/blank.png");
                sprite[1] = LoadImage("/title.png");
                sprite[2] = LoadImage("/title2.png");
                sprite[11] = LoadImage("/ready.png");
                break;

            case 1: // '\001'
                sprite[12] = LoadImage("/gameover.png");
                sprite[13] = LoadImage("/stageclear.png");
                sprite[16] = LoadImage("/congratulations.png");
                break;

            case 2: // '\002'
                for(int i = 0; i <= 9; i++)
                    numsprite[i] = LoadImage(String.valueOf(String.valueOf((new StringBuffer("/num")).append(i).append(".png"))));

                numsprite[10] = LoadImage("/score.png");
                break;

            case 3: // '\003'
                for(int i = 1; i <= 10; i++)
                    sprite[20 + i] = LoadImage(String.valueOf(String.valueOf((new StringBuffer("/back")).append(i).append(".png"))));

                for(int i = 11; i <= 19; i++)
                    sprite[20 + i] = LoadImage(String.valueOf(String.valueOf((new StringBuffer("/back")).append(i).append(".png"))));

                break;

            case 4: // '\004'
                for(int i = 21; i <= 22; i++)
                    sprite[20 + i] = LoadImage("/back21.png");

                for(int i = 1; i <= 5; i++)
                    sprite[50 + i] = LoadImage(String.valueOf(String.valueOf((new StringBuffer("/area")).append(i).append(".png"))));

                break;

            case 5: // '\005'
                for(int i = 1; i <= 9; i++)
                    sprite[100 + i] = LoadImage(String.valueOf(String.valueOf((new StringBuffer("/a")).append(i).append(".png"))));

                for(int i = 1; i <= 9; i++)
                    sprite[120 + i] = LoadImage(String.valueOf(String.valueOf((new StringBuffer("/a")).append(i).append(".png"))));

                break;

            case 6: // '\006'
                for(int i = 1; i <= 7; i++)
                    sprite[130 + i] = LoadImage(String.valueOf(String.valueOf((new StringBuffer("/c")).append(i).append(".png"))));

                for(int i = 1; i <= 7; i++)
                    sprite[140 + i] = LoadImage(String.valueOf(String.valueOf((new StringBuffer("/e")).append(i).append(".png"))));

                break;

            case 7: // '\007'
                for(int i = 1; i <= 7; i++)
                    sprite[150 + i] = LoadImage(String.valueOf(String.valueOf((new StringBuffer("/e")).append(i).append(".png"))));

                for(int i = 1; i <= 8; i++)
                    sprite[160 + i] = LoadImage(String.valueOf(String.valueOf((new StringBuffer("/e")).append(i).append(".png"))));

                break;

            case 8: // '\b'
                for(int i = 1; i <= 7; i++)
                    sprite[170 + i] = LoadImage(String.valueOf(String.valueOf((new StringBuffer("/e")).append(i).append(".png"))));

⌨️ 快捷键说明

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