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

📄 human.java

📁 又是一款j2me 游戏
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        g.fillRect(posX + 96, posY + 16, gauge / 3, 5);
        g.drawImage(MovingObject.weaponImg, posX, posY - 384, 20);
        g.setClip(posX + 3, posY + 3, 24, 24);
        g.drawImage(img, posX - 189, posY - 69, 20);
        if(GetNumWeapon() > 0)
            DrawItem(g, weaponId, posX + 149, posY + 5);
        g.setClip(posX, posY, 176, 30);
        g.setColor(0xff0000);
        g.drawString(String.valueOf(hp), posX + 65, posY + 10, 20);
    }

    public void DrawExplosion(Graphics g, int exType, int xOffset, int yOffset)
    {
        if(++super.stage > (exType != 40 ? 1 : 2))
        {
            super.stage = 0;
            if(explosionStage < 2)
                explosionStage++;
            else
                explosionStage = 0;
        }
        int posX = (xOffset + GetCenterLocationX()) - 12;
        int posY = (yOffset + GetCenterLocationY()) - 12;
        g.setClip(posX, posY, 25, 25);
        g.drawImage(MovingObject.weaponImg, posX - explosionStage * 25 - 114, posY - exType * 25 - 268, 20);
    }

    public void Draw(Graphics g, int xOffset, int yOffset)
    {
        int width = actionImgWidth;
        int height = super.curLoc.GetHeight();
        int posX = xOffset + super.curLoc.GetX() + bodyOffsetX;
        int posY = yOffset + super.curLoc.GetY();
        if(invisible > 0)
        {
            g.setColor(damage >= 0 ? 65280 : 0xff0000);
            g.setClip(0, 0, 176, 178);
            g.drawString(String.valueOf(Math.abs(damage)), posX + width / 2, posY - 11, 20);
            if(invisible % 2 > 0)
                return;
        }
        switch(actionId)
        {
        case 0: // '\0'
        default:
            g.setClip(posX, posY, width, height);
            if(super.direction != 3)
            {
                g.drawImage(img, posX, posY - super.direction * height, 20);
            } else
            {
                DirectGraphics dg = DirectUtils.getDirectGraphics(g);
                dg.drawImage(img, (posX - img.getWidth()) + width, posY - 2 * height, 20, 8192);
            }
            break;

        case 1: // '\001'
        case 2: // '\002'
        case 4: // '\004'
        case 6: // '\006'
            g.setClip(posX, posY, width, height);
            if(super.direction != 3)
            {
                g.drawImage(img, posX - drawImgId * width, posY - super.direction * height, 20);
            } else
            {
                DirectGraphics dg = DirectUtils.getDirectGraphics(g);
                dg.drawImage(img, (posX - img.getWidth()) + (drawImgId + 1) * width, posY - 2 * height, 20, 8192);
            }
            break;

        case 3: // '\003'
            g.setClip(posX, posY, width, height);
            if(super.direction != 3)
            {
                g.drawImage(img, posX - drawImgId * width, posY - super.direction * height, 20);
                if(GetNumWeapon() > 0 && (GetType() != 21 || GetWeaponId() != 2))
                    if(GetType() == 20 || GetType() == 22)
                        switch(drawImgId)
                        {
                        case 3: // '\003'
                            if(super.direction == 0)
                            {
                                posX -= 18;
                                posY -= 2;
                            } else
                            if(super.direction == 1)
                            {
                                posX--;
                                posY -= 7;
                            } else
                            {
                                posX -= 3;
                                posY -= 3;
                            }
                            g.setClip(posX, posY, 38, 38);
                            g.drawImage(MovingObject.weaponImg, posX, posY - super.direction * 38 - weaponId * 114, 20);
                            break;

                        case 4: // '\004'
                            if(super.direction == 0)
                            {
                                posX -= 4;
                                posY -= 20;
                            } else
                            if(super.direction == 1)
                            {
                                posX -= 8;
                                posY += 10;
                            } else
                            {
                                posX -= 16;
                                posY -= 13;
                            }
                            g.setClip(posX, posY, 38, 38);
                            g.drawImage(MovingObject.weaponImg, posX - 38, posY - super.direction * 38 - weaponId * 114, 20);
                            break;

                        case 5: // '\005'
                            if(super.direction == 0)
                            {
                                posX += 5;
                                posY += 2;
                            } else
                            if(super.direction == 1)
                            {
                                posX -= 19;
                                posY -= 17;
                            } else
                            {
                                posX += 6;
                                posY -= 15;
                            }
                            g.setClip(posX, posY, 38, 38);
                            g.drawImage(MovingObject.weaponImg, posX - 76, posY - super.direction * 38 - weaponId * 114, 20);
                            break;
                        }
                    else
                    if(GetType() == 21)
                        switch(drawImgId)
                        {
                        case 4: // '\004'
                            if(super.direction == 0)
                            {
                                posX -= 3;
                                posY -= 5;
                            } else
                            if(super.direction == 1)
                            {
                                posX -= 8;
                                posY -= 6;
                            } else
                            {
                                posX -= 11;
                                posY -= 5;
                            }
                            g.setClip(posX, posY, 38, 38);
                            g.drawImage(MovingObject.weaponImg, posX - 114, posY - super.direction * 38 - weaponId * 114, 20);
                            break;

                        case 5: // '\005'
                            if(super.direction == 0)
                            {
                                posX -= 7;
                                posY -= 8;
                            } else
                            if(super.direction == 1)
                            {
                                posX -= 7;
                                posY -= 5;
                            } else
                            {
                                posX -= 12;
                                posY -= 7;
                            }
                            g.setClip(posX, posY, 38, 38);
                            g.drawImage(MovingObject.weaponImg, posX - 152, posY - super.direction * 38 - weaponId * 114, 20);
                            break;
                        }
            } else
            {
                DirectGraphics dg = DirectUtils.getDirectGraphics(g);
                dg.drawImage(img, (posX - img.getWidth()) + (drawImgId + 1) * width, posY - 2 * height, 20, 8192);
                if(GetNumWeapon() > 0 && (GetType() != 21 || GetWeaponId() != 2))
                    if(GetType() == 20 || GetType() == 22)
                        switch(drawImgId)
                        {
                        case 3: // '\003'
                            posX -= 11;
                            posY -= 3;
                            g.setClip(posX, posY, 38, 38);
                            dg.drawImage(MovingObject.weaponImg, (posX - MovingObject.weaponImg.getWidth()) + 38, posY - 76 - weaponId * 114, 20, 8192);
                            break;

                        case 4: // '\004'
                            posX += 2;
                            posY -= 13;
                            g.setClip(posX, posY, 38, 38);
                            dg.drawImage(MovingObject.weaponImg, (posX - MovingObject.weaponImg.getWidth()) + 76, posY - 76 - weaponId * 114, 20, 8192);
                            break;

                        case 5: // '\005'
                            posX -= 20;
                            posY -= 15;
                            g.setClip(posX, posY, 38, 38);
                            dg.drawImage(MovingObject.weaponImg, (posX - MovingObject.weaponImg.getWidth()) + 114, posY - 76 - weaponId * 114, 20, 8192);
                            break;
                        }
                    else
                    if(GetType() == 21)
                        switch(drawImgId)
                        {
                        case 4: // '\004'
                            posX -= 3;
                            posY -= 5;
                            g.setClip(posX, posY, 38, 38);
                            dg.drawImage(MovingObject.weaponImg, (posX - MovingObject.weaponImg.getWidth()) + 152, posY - 76 - weaponId * 114, 20, 8192);
                            break;

                        case 5: // '\005'
                            posX -= 2;
                            posY -= 7;
                            g.setClip(posX, posY, 38, 38);
                            dg.drawImage(MovingObject.weaponImg, (posX - MovingObject.weaponImg.getWidth()) + 190, posY - 76 - weaponId * 114, 20, 8192);
                            break;
                        }
            }
            break;

        case 7: // '\007'
            g.setClip(posX, posY, width, height);
            if(actionScript <= 0)
            {
                if(super.direction != 3)
                {
                    g.drawImage(img, posX - drawImgId * width, posY - super.direction * height, 20);
                } else
                {
                    DirectGraphics dg = DirectUtils.getDirectGraphics(g);
                    dg.drawImage(img, (posX - img.getWidth()) + (drawImgId + 1) * width, posY - 2 * height, 20, 8192);
                }
            } else
            if(super.direction != 3)
            {
                g.drawImage(img, posX - drawImgId * width, posY - height * 3, 20);
            } else
            {
                DirectGraphics dg = DirectUtils.getDirectGraphics(g);
                dg.drawImage(img, (posX - img.getWidth()) + (drawImgId + 1) * width, posY - height * 3, 20, 8192);
            }
            break;

        case 5: // '\005'
        case 8: // '\b'
        case 9: // '\t'
            g.setClip(posX, posY, width, height);
            g.drawImage(img, posX - drawImgId * width, posY - height * 3, 20);
            break;

        case 10: // '\n'
            g.setClip(posX, posY, width, height);
            g.drawImage(img, posX - drawImgId * width, posY - height, 20);
            DrawItem(g, newItem, posX + 3, posY - 13);
            break;
        }
        if(GetType() == 22 && !IsDead() && (actionId == 6 || actionId == 7))
            DrawExplosion(g, 0, xOffset, yOffset);
    }

    public void Run(int pLocX, int pLocY)
    {
        if(GetType() == 22 && GetHP() > 0)
            SelectAction(pLocX, pLocY);
        Run();
        if(isMoving)
            UpdateCanMove(super.speedX, super.moveDis);
    }

    public void SelectAction(int pLocX, int pLocY)
    {
        int distance = FindDistance(pLocX, pLocY);
        int disX = GetCenterLocationX() - pLocX;
        int disY = GetCenterLocationY() - pLocY;
        switch(GetType())
        {
        default:
            break;

        case 22: // '\026'
            if(actionId != 6)
            {
                if(distance < 150 && actionId != 3)
                {
                    int newDir = FindDirectionType3(pLocX, pLocY);
                    SetDirection(newDir == -1 ? GameManager.Random(4) : newDir);
                }
                if(Math.abs(disY) < 5 && distance > 50)
                {
                    SetDirection(disX <= 0 ? 3 : 2);
                    ChangeAction(3);
                } else
                if(Math.abs(disX) < 5 && distance > 50)
                {
                    SetDirection(disY <= 0 ? 2 : 0);
                    ChangeAction(3);
                } else
                if(distance > 200)
                    ChangeAction(0);
                else
                if(distance < 20)
                    ChangeAction(3);
                else
                    switch(GameManager.Random(5))
                    {
                    case 0: // '\0'
                        ChangeAction(1);
                        break;

                    case 1: // '\001'
                    default:
                        ChangeAction(2);
                        break;

                    case 2: // '\002'
                        ChangeAction(4);
                        break;

                    case 3: // '\003'
                        ChangeAction(8);
                        break;
                    }
            }
            break;
        }
    }

    public int FindDirectionType3(int locX, int locY)
    {
        int disX = GetCenterLocationX() - locX;
        int disY = GetCenterLocationY() - locY;
        if(Math.abs(disX) < Math.abs(disY))
        {
            if(disX == 0)
            {
                if(disY > 0 && canMoveUp && oldDirection != 0)
                {
                    oldDirection = 1;
                    return 0;
                }
                if(canMoveDown && oldDirection != 1)
                {
                    oldDirection = 0;
                    return 1;
                }
            } else

⌨️ 快捷键说明

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