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

📄 human.java

📁 一个j2me的小游戏
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                {
                    rightRoomData = Room.GetObjectId(rightPosX1, posY);
                    rightDisX = (objPosX += 30) + Room.GetObstructionDistance(rightRoomData, direct);
                    if(rightRoomData != -1 && rightDisX >= maxX)
                    {
                        int objPosY;
                        int upDisY;
                        int downDisY;
                        if(rightDisX <= moveTo)
                        {
                            if(!Room.IsCornerWallId(rightRoomData))
                            {
                                objPosY = posY * 30;
                                int objDis = Room.GetObstructionDistance(rightRoomData, 0);
                                if(objDis < 30)
                                {
                                    upDisY = (objPosY + 30) - objDis;
                                    if(curPosY > upDisY)
                                    {
                                        return moveOffset;
                                    }
                                }
                                objDis = Room.GetObstructionDistance(rightRoomData, 1);
                                if(objDis < 30)
                                {
                                    downDisY = objPosY + Room.GetObstructionDistance(rightRoomData, 1);
                                    if(curPosY < downDisY)
                                    {
                                        return moveOffset;
                                    }
                                }
                            }
                            if(changeRoomData && (GetType() == 20 || GetType() == 21) && Room.IsCloseDoorXId(rightRoomData))
                            {
                                OpenTheDoor(-1, rightPosX1, posY);
                            }
                            return rightDisX - maxX - 1;
                        }
                        objPosY = posY * 30;
                        upDisY = (objPosY + 30) - Room.GetObstructionDistance(rightRoomData, 0);
                        downDisY = objPosY + Room.GetObstructionDistance(rightRoomData, 1);
                        if(curPosY < upDisY && curPosY > downDisY)
                        {
                            return rightDisX - maxX - 1 <= moveOffset ? rightDisX - maxX - 1 : moveOffset;
                        }
                    }
                }
                break;
            }
            }
        }
        catch(Exception e) { }
        return moveOffset;
    }

    public void SetMessage(String newMsg[], int timer)
    {
        msgTimer = timer;
        msg = newMsg;
    }

    public int GetMessageTimer()
    {
        return msgTimer;
    }

    public int GetMessageHeight(Image img, String msg[], int imgHeight, int gap)
    {
        if(msg == null)
        {
            return 0;
        } else
        {
            int strHeight = GameManager.font1.getHeight();
            strHeight = gap * 2 + (imgHeight <= strHeight * msg.length ? strHeight * msg.length : imgHeight);
            return strHeight;
        }
    }

    public void DrawMessage(Graphics g)
    {
        int msgHeight = GetMessageHeight(img, msg, 24, 4);
        DrawMessage(g, msg, 0, 208 - msgHeight, 24, 24, 4, 0xff0000, 0xffffff);
    }

    public void DrawMessage(Graphics g, String msg[], int topPosX, int topPosY, int imgWidth, int imgHeight, int gap, 
            int msgColor, int backColor)
    {
        if(msgTimer > 0)
        {
            msgTimer--;
        }
        if(msg == null)
        {
            return;
        }
        int strHeight = GameManager.font1.getHeight();
        int msgWidth = 176;
        int msgHeight = GetMessageHeight(img, msg, imgHeight, gap);
        g.setClip(topPosX, topPosY, msgWidth, msgHeight);
        g.setColor(255);
        g.fillRect(topPosX, topPosY, msgWidth, msgHeight);
        g.setColor(backColor);
        g.fillRect(topPosX + 2, topPosY + 2, msgWidth - 4, msgHeight - 4);
        g.setColor(msgColor);
        for(int i = 0; i < msg.length; i++)
        {
            g.drawString(msg[i], topPosX + gap * 2 + imgWidth, topPosY + gap + strHeight * i, 20);
        }

        g.setClip(topPosX + gap, topPosY + gap, imgWidth, imgHeight);
        g.drawImage(img, (topPosX - 192) + gap, (topPosY - 72) + gap, 20);
    }

    public void DrawItem(Graphics g, int itemId, int posX, int posY)
    {
        int pType = GetType();
        if(itemId == 10 || itemId == 11 || itemId == 12 || itemId == 13)
        {
            itemId = 3;
        } else
        if(itemId == 7 || itemId == 8 || itemId == 9)
        {
            itemId = 7;
        } else
        if(itemId == 14 || itemId == 15 || itemId == 16)
        {
            itemId = 8;
        } else
        if(itemId == 17 || itemId == 18)
        {
            itemId = 5;
        } else
        if(itemId == 19)
        {
            itemId = 0;
            pType = 20;
        }
        g.setClip(posX, posY, 21, 21);
        g.drawImage(MovingObject.weaponImg, posX - itemId * 21, pType != 20 || itemId >= 3 ? posY - 363 : posY - 342, 20);
    }

    public void DrawMenu(Graphics g, int posX, int posY)
    {
        g.setClip(posX, posY, 176, 30);
        g.setColor(0);
        g.fillRect(posX + 96, posY + 16, 38, 5);
        g.setColor(255);
        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)

⌨️ 快捷键说明

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