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

📄 hero.java

📁 J2ME手机游戏源码 整个游戏有八个类组成: &#61548 主类:TankMIDlet &#61548 敌人坦克:Enemy &#61548 图片池:EnemyPool &#61548
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

                    case 4:
                        g.drawImage(imgHeroDown, posX, posY, g.TOP | g.LEFT);
                    default:
                        break;
                }
            }
        }
        if (grassPaint)
        {
            canvas.grassPaint = true;
            canvas.reDraw(3,g);
        }
    }

    boolean isMapCollide()
    {
        boolean collFlag = false;
        int collX, collY;
        int i;
        int tileW = canvas.tileW;

        collX = posX - canvas.mapOffsetX;
        collY = posY - canvas.mapOffsetY;
        int pos = 0;
        boolean movable = false;
        boolean upCol = true;
        boolean leftCol = true;

        switch (direction & 0x0f)
        {
            case 1:
                collX = collX - speed;
                if (collX <= 0)
                    collFlag = true;
                else
                {
                    collFlag = false;
                    for (i = (collY / tileW * (canvas.mapWidth /
                        tileW) + collX / tileW); i <= ((collY + frameHeight) /
                        tileW * (canvas.mapWidth / tileW) + collX /
                        tileW); i += (canvas.mapWidth / tileW))
                    {
                        if (canvas.mapInfo[i] == 3)
                        {
                            grassPaint = true;
                        }

                        if (canvas.mapInfo[i] != 0 &&
                            canvas.mapInfo[i] != 3)
                        {
                            collFlag = true;
                            pos = i - (collY / tileW *
                                (canvas.mapWidth / tileW) + collX /
                                tileW);
                            if (pos <= (frameHeight / 8) / tileW *
                                (canvas.mapWidth / tileW))
                            {
                                upCol = true;
                                if (canvas.mapInfo[((collY +
                                    frameHeight / 8) / tileW *
                                    (canvas.mapWidth / tileW) + collX
                                    / tileW)] != 0 && canvas.mapInfo[
                                    ((collY + frameHeight / 8) / tileW *
                                    (canvas.mapWidth / tileW) + collX
                                    / tileW)] != 3)
                                {
                                    movable = false;
                                }
                                else
                                {
                                    movable = true;
                                }

                            }
                            else if (pos >= (7 * frameHeight / 8) / tileW *
                                (canvas.mapWidth / tileW))
                            {
                                movable = true;
                                upCol = false;
                            }
                            else
                            {
                                movable = false;
                            }
                            break;
                        }
                    }
                    if (collFlag && movable)
                    {
                        if (upCol)
                        {
                            posY = posY + 1;
                        }
                        else
                        {
                            posY = posY - 1;
                        }
                    }
                }

                break;

            case 2:
                collX = collX + frameWidth + speed;
                if (collX >= canvas.mapWidth)
                    collFlag = true;
                else
                {
                    collFlag = false;
                    for (i = (collY / tileW * (canvas.mapWidth /
                        tileW) + collX / tileW); i <= ((collY + frameHeight) /
                        tileW * (canvas.mapWidth / tileW) + collX /
                        tileW); i += (canvas.mapWidth / tileW))
                    {
                        if (canvas.mapInfo[i] == 3)
                        {
                            grassPaint = true;
                        }

                        if (canvas.mapInfo[i] != 0 &&
                            canvas.mapInfo[i] != 3)
                        {
                            collFlag = true;
                            pos = i - (collY / tileW *
                                (canvas.mapWidth / tileW) + collX /
                                tileW);
                            if (pos <= (frameHeight / 8) / tileW *
                                (canvas.mapWidth / tileW))
                            {
                                upCol = true;
                                if (canvas.mapInfo[((collY +
                                    frameHeight / 8) / tileW *
                                    (canvas.mapWidth / tileW) + collX
                                    / tileW)] != 0 && canvas.mapInfo[
                                    ((collY + frameHeight / 8) / tileW *
                                    (canvas.mapWidth / tileW) + collX
                                    / tileW)] != 3)
                                {
                                    movable = false;
                                }
                                else
                                {
                                    movable = true;
                                }
                            }
                            else if (pos >= (7 * frameHeight / 8) / tileW *
                                (canvas.mapWidth / tileW))
                            {
                                movable = true;
                                upCol = false;
                            }
                            else
                            {
                                movable = false;
                            }
                            break;
                        }
                    }
                    if (collFlag && movable)
                    {
                        if (upCol)
                        {
                            posY = posY + 1;
                        }
                        else
                        {
                            posY = posY - 1;
                        }
                    }
                }

                break;

            case 3:
                collY = collY - speed;
                if (collY <= 0)
                    collFlag = true;
                else
                {
                    collFlag = false;
                    for (i = (collY / tileW * (canvas.mapWidth /
                        tileW) + collX / tileW); i <= (collY / tileW *
                        (canvas.mapWidth / tileW) + (collX +
                        frameWidth) / tileW); i++)
                    {
                        if (canvas.mapInfo[i] == 3)
                        {
                            grassPaint = true;
                        }

                        if (canvas.mapInfo[i] != 0 &&
                            canvas.mapInfo[i] != 3)
                        {
                            collFlag = true;
                            pos = i - (collY / tileW *
                                (canvas.mapWidth / tileW) + collX /
                                tileW);
                            if (pos <= (frameWidth / 8) / tileW)
                            {
                                leftCol = true;
                                if (canvas.mapInfo[(collY / tileW *
                                    (canvas.mapWidth / tileW) +
                                    (collX + frameWidth / 8) / tileW)] != 0 &&
                                    canvas.mapInfo[(collY / tileW *
                                    (canvas.mapWidth / tileW) +
                                    (collX + frameWidth / 8) / tileW)] != 3)
                                {
                                    movable = false;
                                }
                                else
                                {
                                    movable = true;
                                }
                            }
                            else if (pos >= (7 * frameWidth / 8) / tileW)
                            {
                                leftCol = false;
                                movable = true;
                            }
                            else
                            {
                                movable = false;
                            }
                            break;
                        }
                    }
                    if (collFlag && movable)
                    {
                        if (leftCol)
                        {
                            posX = posX + 1;
                        }
                        else
                        {
                            posX = posX - 1;
                        }
                    }
                }

                break;

            case 4:
                collY = collY + frameHeight + speed;
                if (collY >= canvas.mapHeight)
                    collFlag = true;
                else
                {
                    collFlag = false;
                    for (i = (collY / tileW * (canvas.mapWidth /
                        tileW) + collX / tileW); i <= (collY / tileW *
                        (canvas.mapWidth / tileW) + (collX +
                        frameWidth) / tileW); i++)
                    {
                        if (canvas.mapInfo[i] == 3)
                        {
                            grassPaint = true;
                        }

                        if (canvas.mapInfo[i] != 0 &&
                            canvas.mapInfo[i] != 3)
                        {
                            collFlag = true;
                            pos = i - (collY / tileW *
                                (canvas.mapWidth / tileW) + collX /
                                tileW);
                            if (pos <= (frameWidth / 8) / tileW)
                            {
                                leftCol = true;
                                if (canvas.mapInfo[(collY / tileW *
                                    (canvas.mapWidth / tileW) +
                                    (collX + frameWidth / 8) / tileW)] != 0 &&
                                    canvas.mapInfo[(collY / tileW *
                                    (canvas.mapWidth / tileW) +
                                    (collX + frameWidth / 8) / tileW)] != 3)
                                {
                                    movable = false;
                                }
                                else
                                {
                                    movable = true;
                                }

                            }
                            else if (pos >= (7 * frameWidth / 8) / tileW)
                            {
                                leftCol = false;
                                movable = true;
                            }
                            else
                            {
                                movable = false;
                            }

                            break;
                        }
                    }
                    if (collFlag && movable)
                    {
                        if (leftCol)
                        {
                            posX = posX + 1;
                        }
                        else
                        {
                            posX = posX - 1;
                        }
                    }
                }

            default:
                break;
        }
        return collFlag;
    }

    boolean isObjCollide(int objX, int objY, int objWidth, int objHeight)
    {
        boolean collFlag = false;
        int collX, collY;
        int i;

        collX = posX;
        collY = posY;

        switch (direction & 0x0f)
        {
            case 1:
                collX = collX - speed;
                break;

            case 2:
                collX = collX + speed;
                break;

            case 3:
                collY = collY - speed;
                break;

            case 4:
                collY = collY + speed;
            default:
                break;
        }

        if (collX < (objX + objWidth) && (collX + frameWidth) > objX && collY <
            (objY + objHeight) && (collY + frameHeight) > objY)
            collFlag = true;

        return collFlag;
    }

}

⌨️ 快捷键说明

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