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

📄 groundenemy.java

📁 超级玛丽的源代码
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   GroundEnemy.java

import java.util.Hashtable;
import java.util.Vector;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

public class GroundEnemy
{

    public GroundEnemy(int i, int j, int k, Main main1, GameFC gamefc)
    {
        dir = -1;
        skinTime = 0L;
        skinDelay = 0;
        main = main1;
        gameFC = gamefc;
        switch(i)
        {
        case 1: // '\001'
            w = 16;
            h = 16;
            msF = 10;
            skinDelay = 300;
            Image image = (Image)main1.cache.get("characters1.png");
            skins = new Image[4];
            skins[0] = main1.extractFrame(image, w, h, 0);
            skins[1] = main1.extractFrame(image, w, h, 1);
            skins[2] = main1.flipHorizontal(skins[1]);
            skins[3] = main1.flipHorizontal(skins[0]);
            break;

        case 2: // '\002'
            w = 16;
            h = 16;
            msF = 15;
            skinDelay = 200;
            Image image1 = (Image)main1.cache.get("characters1.png");
            skins = new Image[4];
            skins[0] = main1.extractFrame(image1, w, h, 2);
            skins[1] = main1.extractFrame(image1, w, h, 3);
            skins[2] = main1.flipHorizontal(skins[1]);
            skins[3] = main1.flipHorizontal(skins[0]);
            break;

        case 3: // '\003'
            w = 26;
            h = 19;
            msF = 5;
            skinDelay = 300;
            Image image2 = (Image)main1.cache.get("characters2.png");
            skins = new Image[8];
            skins[0] = main1.extractFrame(image2, w, h, 3);
            skins[1] = main1.extractFrame(image2, w, h, 2);
            skins[2] = main1.extractFrame(image2, w, h, 1);
            skins[3] = main1.extractFrame(image2, w, h, 0);
            skins[4] = main1.flipHorizontal(skins[3]);
            skins[5] = main1.flipHorizontal(skins[2]);
            skins[6] = main1.flipHorizontal(skins[1]);
            skins[7] = main1.flipHorizontal(skins[0]);
            break;

        case 4: // '\004'
            w = 16;
            h = 16;
            msF = 15;
            skinDelay = 200;
            Image image3 = (Image)main1.cache.get("characters1.png");
            skins = new Image[4];
            skins[0] = main1.extractFrame(image3, w, h, 6);
            skins[1] = main1.extractFrame(image3, w, h, 7);
            skins[2] = main1.flipHorizontal(skins[1]);
            skins[3] = main1.flipHorizontal(skins[0]);
            break;

        case 5: // '\005'
            w = 16;
            h = 16;
            msF = 10;
            skinDelay = 200;
            Image image4 = (Image)main1.cache.get("characters1.png");
            skins = new Image[4];
            skins[0] = main1.extractFrame(image4, w, h, 8);
            skins[1] = main1.extractFrame(image4, w, h, 9);
            skins[2] = main1.flipHorizontal(skins[1]);
            skins[3] = main1.flipHorizontal(skins[0]);
            break;

        case 6: // '\006'
            w = 16;
            h = 16;
            msF = 15;
            skinDelay = 200;
            Image image5 = (Image)main1.cache.get("characters1.png");
            skins = new Image[4];
            skins[0] = main1.extractFrame(image5, w, h, 4);
            skins[1] = main1.extractFrame(image5, w, h, 5);
            skins[2] = main1.flipHorizontal(skins[1]);
            skins[3] = main1.flipHorizontal(skins[0]);
            break;
        }
        curSkin = skins.length / 2 - 1;
        Landscape landscape = gamefc.landscape;
        landscape.matrix[j][k] = '.';
        xF = landscape.xF + j * landscape.w * 10;
        yF = (landscape.yF + (k + 1) * landscape.h * 10) - h * 10;
        gamefc.turtles.addElement(this);
    }

    public void paint(Graphics g)
    {
        Graphics _tmp = g;
        Graphics _tmp1 = g;
        g.drawImage(skins[curSkin], xF / 10, yF / 10, 0x10 | 4);
    }

    public void move()
    {
        int i = 0;
        long l = System.currentTimeMillis();
        int j = skins.length / 2 - 1;
        switch(dir)
        {
        default:
            break;

        case -1: 
            if(curSkin > j)
                curSkin = j;
            else
            if(l > skinTime + (long)skinDelay)
            {
                skinTime = l;
                curSkin--;
                if(curSkin < 0)
                    curSkin = j;
            }
            i = -msF;
            break;

        case 1: // '\001'
            if(curSkin < j + 1)
                curSkin = j + 1;
            else
            if(l > skinTime + (long)skinDelay)
            {
                skinTime = l;
                curSkin++;
                if(curSkin > skins.length - 1)
                    curSkin = j + 1;
            }
            i = msF;
            break;
        }
        Landscape landscape = gameFC.landscape;
        int ai[] = gameFC.landscape.getPosition((xF + i) / 10, (yF / 10 + h) - h / 4);
        int k = ai[0];
        int i1 = ai[1];
        int ai1[] = gameFC.landscape.getPosition((xF + i) / 10 + w, (yF / 10 + h) - h / 4);
        int j1 = ai1[0];
        int k1 = ai1[1];
        int ai2[] = gameFC.landscape.getPosition((xF + i) / 10, yF / 10 + h + h / 2);
        int l1 = ai2[0];
        int i2 = ai2[1];
        int ai3[] = gameFC.landscape.getPosition((xF + i) / 10 + w, yF / 10 + h + h / 2);
        int j2 = ai3[0];
        int k2 = ai3[1];
        if(!landscape.isEmpty(k, i1) || !landscape.isEmpty(j1, k1) || landscape.isEmpty(l1, i2) || landscape.isEmpty(j2, k2))
        {
            i *= -1;
            dir *= -1;
        }
        xF += i;
    }

    public boolean isActive()
    {
        return xF / 10 >= -w;
    }

    protected Image skins[];
    protected Main main;
    protected GameFC gameFC;
    public int xF;
    public int yF;
    public int w;
    public int h;
    public int msF;
    protected int curSkin;
    protected int dir;
    protected long skinTime;
    protected int skinDelay;
    public static final int MOVE_LEFT = -1;
    public static final int MOVE_RIGHT = 1;
    public static final int TYPE_TURTLE_1 = 1;
    public static final int TYPE_TURTLE_2 = 2;
    public static final int TYPE_WHITE_GHOST = 3;
    public static final int TYPE_SPARKY_1 = 4;
    public static final int TYPE_SPARKY_2 = 5;
    public static final int TYPE_SEA_SHELL = 6;
}

⌨️ 快捷键说明

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