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

📄 enemy.java

📁 又是一款j2me 游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    public void Reset()
    {
        super.Reset();
    }

    public void SelectAction(int pLocX, int pLocY)
    {
        int distance = FindDistance(pLocX, pLocY);
        if(super.actionId != 6 && super.actionId != 7)
            switch(GetType())
            {
            case 6: // '\006'
            case 7: // '\007'
            case 8: // '\b'
            case 9: // '\t'
            case 10: // '\n'
            case 11: // '\013'
            case 12: // '\f'
            case 13: // '\r'
            case 14: // '\016'
            case 15: // '\017'
            case 16: // '\020'
            case 17: // '\021'
            case 18: // '\022'
            case 19: // '\023'
            case 20: // '\024'
            case 21: // '\025'
            case 22: // '\026'
            case 24: // '\030'
            default:
                break;

            case 0: // '\0'
                if(!ChangeAction(GameManager.Random(3) + 1))
                    break;
                if(distance > 75)
                    SetDirection(GameManager.Random(4));
                else
                    SetDirection(FindDirectionType1(pLocX, pLocY));
                break;

            case 1: // '\001'
                if(distance > 130)
                    GameManager.Random(4);
                else
                if(distance < 80)
                    ChangeAction(2);
                else
                    ChangeAction(1);
                if(distance > 90)
                {
                    SetDirection(GameManager.Random(4));
                } else
                {
                    int newDir = FindDirectionType2(pLocX, pLocY);
                    SetDirection(newDir == -1 ? GameManager.Random(4) : newDir);
                }
                break;

            case 2: // '\002'
            case 5: // '\005'
                if(!ChangeAction(GameManager.Random(3) + 1))
                    break;
                if(distance > 90)
                    SetDirection(GameManager.Random(4));
                else
                    SetDirection(FindDirectionType3(pLocX, pLocY));
                break;

            case 3: // '\003'
                if(distance > 150)
                    GameManager.Random(4);
                else
                if(distance < 100)
                    ChangeAction(2);
                else
                    ChangeAction(1);
                if(distance > 90)
                {
                    SetDirection(GameManager.Random(4));
                } else
                {
                    int newDir = FindDirectionType3(pLocX, pLocY);
                    SetDirection(newDir == -1 ? GameManager.Random(4) : newDir);
                }
                break;

            case 23: // '\027'
                ChangeAction(GameManager.Random(3) + 1);
                if(distance > 150)
                {
                    SetDirection(GameManager.Random(4));
                } else
                {
                    int newDir = FindDirectionType3(pLocX, pLocY);
                    SetDirection(newDir == -1 ? GameManager.Random(4) : newDir);
                }
                break;

            case 4: // '\004'
                if(distance > 200)
                    ChangeAction(0);
                else
                if(distance < 20)
                    ChangeAction(3);
                else
                    ChangeAction(1);
                if(distance > 150)
                {
                    SetDirection(GameManager.Random(4));
                } else
                {
                    int newDir = FindDirectionType3(pLocX, pLocY);
                    SetDirection(newDir == -1 ? GameManager.Random(4) : newDir);
                }
                break;

            case 25: // '\031'
            case 26: // '\032'
                if(distance > 300)
                    ChangeAction(0);
                else
                if(distance < 10)
                    ChangeAction(3);
                else
                if(distance > 100)
                {
                    if(super.gauge == 0)
                        super.gauge = GameManager.Random(200) - 100;
                    ChangeAction(2);
                } else
                {
                    ChangeAction(1);
                }
                if(distance > 150)
                {
                    SetDirection(GameManager.Random(4));
                    break;
                }
                int newDir = 0;
                if(super.gauge > 0)
                {
                    super.gauge--;
                    newDir = FindDirectionType3(super.curLoc.GetX(), pLocY);
                } else
                if(super.gauge < 0)
                {
                    super.gauge++;
                    newDir = FindDirectionType3(pLocX, super.curLoc.GetY());
                } else
                {
                    super.gauge = 0;
                    newDir = FindDirectionType3(pLocX, pLocY);
                }
                SetDirection(newDir == -1 ? GameManager.Random(4) : newDir);
                break;
            }
    }

    public int FindDirectionType1(int locX, int locY)
    {
        int disX = GetCenterLocationX() - locX;
        int disY = GetCenterLocationY() - locY;
        if(Math.abs(disX) < Math.abs(disY))
        {
            if(disX == 0)
                return disY <= 0 ? 1 : 0;
            return disX <= 0 ? 3 : 2;
        }
        if(disY == 0)
            return disX <= 0 ? 3 : 2;
        return disY <= 0 ? 1 : 0;
    }

    public int FindDirectionType2(int locX, int locY)
    {
        int disX = GetCenterLocationX() - locX;
        int disY = GetCenterLocationY() - locY;
        if(GameManager.Random(100) > 50)
        {
            if(disX == 0)
                return disY <= 0 ? 1 : 0;
            return disX <= 0 ? 3 : 2;
        }
        if(disY == 0)
            return disX <= 0 ? 3 : 2;
        return disY <= 0 ? 1 : 0;
    }

    public void DrawMessage(Graphics g, String msg[], int topPosX, int topPosY, int imgWidth, int imgHeight, int gap,
            int msgColor, int backColor)
    {
        if(GetType() == 24 || GetType() == 23)
        {
            try
            {
                super.DrawMessage(g, msg, topPosX, topPosY, imgWidth, imgHeight, gap, msgColor, backColor);
            }
            catch(Exception e) { }
            g.setClip(topPosX + gap, topPosY + gap, imgWidth, imgHeight);
            g.drawImage(eImg, (topPosX - 72) + gap, (topPosY - 189) + gap, 20);
        } else
        {
            try
            {
                super.DrawMessage(g, msg, topPosX, topPosY, imgWidth, imgHeight, gap, msgColor, backColor);
            }
            catch(Exception e) { }
        }
    }

    public void Draw(Graphics g, int xOffset, int yOffset)
    {
        int width = super.actionImgWidth;
        int height = super.curLoc.GetHeight();
        int posX = xOffset + super.curLoc.GetX() + super.bodyOffsetX;
        int posY = yOffset + super.curLoc.GetY();
        if(GetAction() == 6)
        {
            g.setColor(super.damage >= 0 ? 65280 : 0xff0000);
            g.setClip(0, 0, 176, 178);
            g.drawString(String.valueOf(Math.abs(super.damage)), posX + width / 2, posY - 11, 20);
        }
        g.setClip(posX, posY, width, height);
        switch(super.type)
        {
        case 6: // '\006'
            g.drawImage(eImg, posX - 77, posY - 160, 20);
            break;

        case 0: // '\0'
            g.drawImage(eImg, posX - super.drawImgId * width, posY, 20);
            break;

        case 1: // '\001'
            g.drawImage(eImg, posX - super.drawImgId * width, posY - 24, 20);
            break;

        case 2: // '\002'
            g.drawImage(eImg, posX - super.drawImgId * width, posY - 48, 20);
            break;

        case 3: // '\003'
            g.drawImage(eImg, posX - super.drawImgId * width, posY - 72, 20);
            break;

        case 4: // '\004'
            g.drawImage(eImg, posX - super.drawImgId * width, posY - 96, 20);
            break;

        case 5: // '\005'
            if(super.actionId == 1 || super.actionId == 2)
            {
                if(super.actionScript > 2)
                    return;
                g.drawImage(eImg, posX - super.actionScript * width, posY - 189, 20);
            } else
            {
                g.drawImage(eImg, posX, posY - 189, 20);
            }
            break;

        case 23: // '\027'
            g.drawImage(eImg, posX - 58, posY - 120, 20);
            break;

        case 24: // '\030'
            g.drawImage(eImg, posX, posY - 120, 20);
            if(super.actionId == 6 || super.actionId == 7)
            {
                g.setClip(posX += 23, posY += 6, 15, 25);
                g.drawImage(eImg, posX - 58, posY - 161, 20);
            }
            break;

        case 25: // '\031'
            if(super.actionId == 3)
                g.drawImage(eImg, posX - 16, posY - 175, 20);
            else
                g.drawImage(eImg, posX, posY - 175, 20);
            break;

        case 26: // '\032'
            DirectGraphics dg = DirectUtils.getDirectGraphics(g);
            if(super.actionId == 3)
                dg.drawImage(eImg, (posX - eImg.getWidth()) + width + 16, posY - 175, 20, 8192);
            else
                dg.drawImage(eImg, (posX - eImg.getWidth()) + width, posY - 175, 20, 8192);
            break;
        }
        if(super.actionId == 6 || super.actionId == 7)
            if(GetType() == 24)
            {
                for(int i = 0; i < 4; i++)
                    DrawExplosion(g, 1, GameManager.Random(GetWidth() / 3) + xOffset, GameManager.Random(GetHeight() / 3) + yOffset);

            } else
            if(super.actionId == 7)
                DrawExplosion(g, 1, xOffset, yOffset);
            else
                DrawExplosion(g, 0, xOffset, yOffset);
    }

    static Image eImg = null;

}

⌨️ 快捷键说明

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