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

📄 bullet.java

📁 JVAV手机游戏坦克游戏源程序下载 那都可以5下地的。希望你们支持好吗?
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import javax.microedition.lcdui.*;
class Bullet
{
    private static Graphics g = null;
    public boolean alive;
    public int posX, posY;
    public int BposX, BposY;
    private int mapBlock;
    public int direction;
    private int speed;
    public int bombCount;
    private Image bulletImage;
    private Image bulletLeft;
    private Image bulletRight;
    private Image bulletUp;
    private Image bulletDown;
    private Image bombImage;
    private Image drawBullet;
    public boolean bombFlag = false;
    private boolean ironPaint = false;
    private boolean grassPaint = false;
    private boolean homeover = false;
    public boolean isbomb = false;
    public int frameWidth, frameHeight;
    public int starNum = 0;
    TankCanvas canvas;
    private int tileW;
    private int fillposX;
    private int fillposY;
    private int fillwidth;
    private int fillheigh;
    private int blockX = 0;
    private int blockY = 0;
    private boolean collFlag = false;
    private boolean isContinue = true;
    private int collX, collY;
    Bullet(TankCanvas canvas)
    {
        this.canvas = canvas;
        tileW = canvas.tileW;
        // Load the object images
        bulletImage = canvas.createImage("/bullet.png");
        frameWidth = bulletImage.getWidth() / 4;
        frameHeight = bulletImage.getHeight();
        bulletLeft = Image.createImage(frameWidth, frameHeight);
        g = bulletLeft.getGraphics();
        g.drawImage(bulletImage, 0, 0, 20);
        bulletRight = Image.createImage(frameWidth, frameHeight);
        g = bulletRight.getGraphics();
        g.drawImage(bulletImage,  - frameWidth * 1, 0, 20);
        bulletUp = Image.createImage(frameWidth, frameHeight);
        g = bulletUp.getGraphics();
        g.drawImage(bulletImage,  - frameWidth * 2, 0, 20);
        bulletDown = Image.createImage(frameWidth, frameHeight);
        g = bulletDown.getGraphics();
        g.drawImage(bulletImage,  - frameWidth * 3, 0, 20);
        g = null;
        drawBullet = bulletUp;
        bombImage = canvas.createImage("/explode.png");
    }
    synchronized void paint(Graphics g)
    {
        fillposX = posX;
        fillposY = posY;
        fillwidth = frameWidth;
        fillheigh = frameHeight;
        blockX = 0;
        blockY = 0;
        int i;
        switch (starNum)
        {
            case 0:
                speed = canvas.tileW;
                break;
            case 1:
                speed = canvas.tileW + 1;
                break;
            case 2:
                speed = canvas.tileW + 2;
                break;
            case 3:
                speed = canvas.tileW + 3;
                break;
            default:
                break;
        }
        if (!bombFlag)
        {
            ironPaint = false;
            grassPaint = false;
            if (isMapCollide())
            {
                g.fillRect(posX, posY, frameWidth, frameHeight);
                if (mapBlock < 0x0ffff)
                {
                    // Destroy the blocks
                    switch (direction)
                    {
                        case 1:
                            //left
                            for (i = 0; i < 4; i++)
                            {
                                if ((canvas.mapInfo[mapBlock] > 0) && (canvas.mapInfo[mapBlock] < 4))
                                {
                                    if (canvas.mapInfo[mapBlock] == 2 && starNum != 3)
                                    {
                                        ironPaint = true;
                                    }
                                    if (canvas.mapInfo[mapBlock] != 2)
                                    {
                                        blockY = mapBlock / (canvas.mapWidth / tileW);
                                        blockX = mapBlock - blockY * (canvas.mapWidth / tileW);
                                        g.setColor(0x0);
                                        g.fillRect(blockX * tileW + canvas.mapOffsetX, blockY * tileW + canvas.mapOffsetY, tileW, tileW);
                                        canvas.mapInfo[mapBlock] = 0;
                                    }
                                    else
                                    {
                                      
                                        if (starNum == 3)
                                        {
                                            blockY = mapBlock / (canvas.mapWidth / tileW);
                                            blockX = mapBlock - blockY * (canvas.mapWidth / tileW);
                                            g.setColor(0x0);
                                            g.fillRect(blockX * tileW + canvas.mapOffsetX, blockY * tileW + canvas.mapOffsetY, tileW, tileW);
                                            canvas.mapInfo[mapBlock] = 0;
                                        }
                                    }
                                }
                                else if (canvas.mapInfo[mapBlock] >= 4)
                                {
                                    canvas.isLose = true;
                                   
                                    g.setColor(0x0);
                                    homeover = true;
                                    g.fillRect(canvas.mapOffsetX + canvas.mapWidth / 2-tileW * 2, canvas.mapOffsetY + canvas.mapHeight - tileW * 4, tileW * 4, tileW * 4);
                                }
                                mapBlock += (canvas.mapWidth / tileW);
                                if (mapBlock >= ((canvas.mapWidth / tileW) * (canvas.mapHeight / tileW)))
                                    break;
                            }
                            break;
                        case 2:
                          
                            for (i = 0; i < 4; i++)
                            {
                                if ((canvas.mapInfo[mapBlock] > 0) && (canvas.mapInfo[mapBlock] < 4))
                                {
                                    if (canvas.mapInfo[mapBlock] == 2 && starNum != 3)
                                    {
                                        ironPaint = true;
                                    }
                                    if (canvas.mapInfo[mapBlock] != 2)
                                    {
                                        blockY = mapBlock / (canvas.mapWidth / tileW);
                                        blockX = mapBlock - blockY * (canvas.mapWidth / tileW);
                                        g.setColor(0x0);
                                        g.fillRect(blockX * tileW + canvas.mapOffsetX, blockY * tileW + canvas.mapOffsetY, tileW, tileW);
                                        canvas.mapInfo[mapBlock] = 0;
                                    }
                                    else
                                    {
                                        //rid the iron layer
                                        if (starNum == 3)
                                        {
                                            blockY = mapBlock / (canvas.mapWidth / tileW);
                                            blockX = mapBlock - blockY * (canvas.mapWidth / tileW);
                                            g.setColor(0x0);
                                            g.fillRect(blockX * tileW + canvas.mapOffsetX, blockY * tileW + canvas.mapOffsetY, tileW, tileW);
                                            canvas.mapInfo[mapBlock] = 0;
                                        }
                                    }
                                }
                                else if (canvas.mapInfo[mapBlock] >= 4)
                                {
                                    canvas.isLose = true;
                                    //     canvas.overtimer.timeCounter = 0;
                                    g.setColor(0x0);
                                    homeover = true;
                                    g.fillRect(canvas.mapOffsetX + canvas.mapWidth / 2-tileW * 2, canvas.mapOffsetY + canvas.mapHeight - tileW * 4, tileW * 4, tileW * 4);
                                }
                                mapBlock += (canvas.mapWidth / tileW);
                                if (mapBlock >= ((canvas.mapWidth / tileW) * (canvas.mapHeight / tileW)))
                                    break;
                            }
                            break;
                        case 3:
                            //up
                            for (i = 0; i < 4; i++)
                            {
                                if ((canvas.mapInfo[mapBlock] > 0) && (canvas.mapInfo[mapBlock] < 4))
                                {
                                    if (canvas.mapInfo[mapBlock] == 2 && starNum != 3)
                                    {
                                        ironPaint = true;
                                        //     System.out.println(ironPaint);
                                    }
                                    if (canvas.mapInfo[mapBlock] != 2)
                                    {
                                        blockY = mapBlock / (canvas.mapWidth / tileW);
                                        blockX = mapBlock - blockY * (canvas.mapWidth / tileW);
                                        g.setColor(0x0);
                                        g.fillRect(blockX * tileW + canvas.mapOffsetX, blockY * tileW + canvas.mapOffsetY, tileW, tileW);
                                        canvas.mapInfo[mapBlock] = 0;
                                    }
                                    else
                                    {
                                        if (starNum == 3)
                                        {
                                            blockY = mapBlock / (canvas.mapWidth / tileW);
                                            blockX = mapBlock - blockY * (canvas.mapWidth / tileW);
                                            g.setColor(0x0);
                                            g.fillRect(blockX * tileW + canvas.mapOffsetX, blockY * tileW + canvas.mapOffsetY, tileW, tileW);
                                            canvas.mapInfo[mapBlock] = 0;
                                        }
                                    }
                                }
                                else if (canvas.mapInfo[mapBlock] >= 4)
                                {
                                    canvas.isLose = true;
                                    //      canvas.overtimer.timeCounter = 0;
                                    g.setColor(0x0);
                                    homeover = true;
                                    g.fillRect(canvas.mapOffsetX + canvas.mapWidth / 2-tileW * 2, canvas.mapOffsetY + canvas.mapHeight - tileW * 4, tileW * 4, tileW * 4);
                                }
                                mapBlock++;
                                if ((mapBlock % (canvas.mapWidth / tileW)) == 0)
                                    break;
                            }
                            break;
                        case 4:
                            //down
                            for (i = 0; i < 4; i++)
                            {
                                if ((canvas.mapInfo[mapBlock] > 0) && (canvas.mapInfo[mapBlock] < 4))
                                {
                                    if (canvas.mapInfo[mapBlock] == 2 && starNum != 3)
                                    {
                                        ironPaint = true;
                                        //   System.out.println(ironPaint);
                                    }
                                    if (canvas.mapInfo[mapBlock] != 2)
                                    {
                                        blockY = mapBlock / (canvas.mapWidth / tileW);
                                        blockX = mapBlock - blockY * (canvas.mapWidth / tileW);
                                        g.setColor(0x0);
                                        g.fillRect(blockX * tileW + canvas.mapOffsetX, blockY * tileW + canvas.mapOffsetY, tileW, tileW);
                                        canvas.mapInfo[mapBlock] = 0;
                                    }
                                    else
                                    {
                                        if (starNum == 3)
                                        {
                                            blockY = mapBlock / (canvas.mapWidth / tileW);
                                            blockX = mapBlock - blockY * (canvas.mapWidth / tileW);
                                            g.setColor(0x0);
                                            g.fillRect(blockX * tileW + canvas.mapOffsetX, blockY * tileW + canvas.mapOffsetY, tileW, tileW);
                                            canvas.mapInfo[mapBlock] = 0;
                                        }
                                    }
                                }
                                else if (canvas.mapInfo[mapBlock] >= 4)
                                {
                                    canvas.isLose = true;
                                    g.setColor(0x0);
                                    homeover = true;
                                    g.fillRect(canvas.mapOffsetX + canvas.mapWidth / 2-tileW * 2, canvas.mapOffsetY + canvas.mapHeight - tileW * 4, tileW * 4, tileW * 4);
                                }
                                mapBlock++;
                                if ((mapBlock % (canvas.mapWidth / tileW)) == 0)
                                    break;
                            }
                        default:
                            break;
                    }
                }
                bombFlag = true;
                bombCount = 4;
                isbomb = true;
            }
        }
        //explosion
        if (bombFlag)
        {
            g.setColor(0);
            g.fillRect(posX, posY, frameWidth + speed, frameHeight);
            g.drawImage(bombImage, BposX, BposY, g.TOP | g.LEFT);
            if (bombCount > 0)
            {
                bombCount--;
            }
            else
            {
                g.setColor(0);
                g.fillRect(BposX, BposY, bombImage.getWidth(), bombImage.getHeight());
                bombFlag = false;
                alive = false;
                if (homeover)
                {
                    canvas.hero.paint(g);

⌨️ 快捷键说明

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