Untitled

.
 avatar
unknown
plain_text
2 years ago
8.5 kB
2
Indexable
package com.example.bomberman.Entities;

import com.example.bomberman.GamePanel;
import com.example.bomberman.input.Keyboard;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;

public class Bomb {
    GamePanel gamePanel;
    Keyboard keyboard;
    public int bombX;
    public int bombY;
    public int intervalToExplored = 20; //  khoang thoi gian bom no
    public int timeExploring = 7; // khoang thoi gian ma bom dang no

    int x,y;
//    public double lasttime = (System.nanoTime()/1000000000)/1000;

    public boolean explored = true; // kiem tra xem bom da no hay chua
    public boolean isEXploring = false; // kiem tra xem cos dang trong tinh trang no hay khong
    public BufferedImage image = null;
    public int rect = gamePanel.SCALED_SIZE;
    int bombCount = 0;
    int sizeBomb = 1;
    BufferedImage center1, center2, center3, left1, left2, left3, right1, right2, right3, up1, up2, up3, down1, down2, down3, ver1, ver2, ver3, hor1, hor2, hor3;

    int countTime = 0;
    BufferedImage bom1, bom2, bom3;


    public Bomb(GamePanel gamePanel) {
        this.gamePanel = gamePanel;
//        this.keyboard = keyboard;
        getBombImage();
    }

    public Bomb() {

    }

    public void getBombImage() {
        try {
            bom1 = ImageIO.read(getClass().getResourceAsStream("/sprites/bomb.png"));
            bom2 = ImageIO.read(getClass().getResourceAsStream("/sprites/bomb_1.png"));
            bom3 = ImageIO.read(getClass().getResourceAsStream("/sprites/bomb_2.png"));

            center1 = ImageIO.read(getClass().getResourceAsStream("/sprites/bomb_exploded.png"));
            ver1 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_vertical.png"));
            hor1 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_horizontal.png"));
            up1 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_vertical_top_last.png"));
            down1 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_vertical_down_last.png"));
            right1 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_horizontal_right_last.png"));
            left1 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_horizontal_left_last.png"));

            center2 = ImageIO.read(getClass().getResourceAsStream("/sprites/bomb_exploded1.png"));
            ver2 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_vertical1.png"));
            hor2 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_horizontal1.png"));
            up2 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_vertical_top_last1.png"));
            down2 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_vertical_down_last1.png"));
            right2 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_horizontal_right_last1.png"));
            left2 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_horizontal_left_last1.png"));

            center3 = ImageIO.read(getClass().getResourceAsStream("/sprites/bomb_exploded2.png"));
            ver3 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_vertical2.png"));
            hor3 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_horizontal2.png"));
            up3 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_vertical_top_last2.png"));
            down3 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_vertical_down_last2.png"));
            right3 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_horizontal_right_last2.png"));
            left3 = ImageIO.read(getClass().getResourceAsStream("/sprites/explosion_horizontal_left_last2.png"));

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void update(Bomber bomberman) {
       /* keyboard.update();*/
        if (bomberman.keyboard.space) {
            x = bomberman.bomberX ;
            y = bomberman.bomberY ;
            bombX = x;
            bombY = y;
            explored = false;
            bombCount ++;
        }

    }
    public void render(Graphics2D g2) {
        // load anh bomb truoc khi no
        if (!explored) {
            if(!isEXploring) {
                if (countTime <= intervalToExplored) {
                    image = bom1;
                } else if (countTime <= intervalToExplored * 2) {
                    image = bom2;
                } else if (countTime <= intervalToExplored * 3) {
                    image = bom3;
                }
                if (countTime == intervalToExplored * 3) {
                    isEXploring = true;
                    image = null;
                    countTime = 0;
                }

            }
            countTime++;
            g2.drawImage(image, bombX, bombY, rect, rect, null);

            //kiem tra bom no va load anh bom no
            if (isEXploring) {

                    if (countTime <= timeExploring) {
                        g2.drawImage(center1, bombX, bombY, rect, rect, null);
                        for(int i = 1; i <= sizeBomb; i++) {
                            g2.drawImage(ver1, bombX, bombY + i * rect, rect, rect, null);
                            g2.drawImage(ver1, bombX, bombY - i * rect, rect, rect, null);
                            g2.drawImage(hor1, bombX + i * rect, bombY, rect, rect, null);
                            g2.drawImage(hor1, bombX - i * rect, bombY, rect, rect, null);

                        }
                        g2.drawImage(up1, bombX, bombY - sizeBomb * rect, rect, rect, null);
                        g2.drawImage(down1, bombX, bombY + sizeBomb * rect, rect, rect, null);
                        g2.drawImage(left1, bombX - sizeBomb * rect, bombY, rect, rect, null);
                        g2.drawImage(right1, bombX + sizeBomb * rect, bombY, rect, rect, null);

                    } else if (countTime <= timeExploring * 2) {

                        for(int i = 1; i <= sizeBomb; i++) {
                            g2.drawImage(center2,bombX,bombY, rect, rect,null);
                            g2.drawImage(ver2, bombX, bombY + i * rect, rect, rect, null);
                            g2.drawImage(ver2, bombX, bombY - i * rect, rect, rect, null);
                            g2.drawImage(hor2, bombX + i * rect, bombY, rect, rect, null);
                            g2.drawImage(hor2, bombX - i * rect, bombY, rect, rect, null);

                        }
                        g2.drawImage(up2, bombX, bombY - sizeBomb * rect, rect, rect, null);
                        g2.drawImage(down2, bombX, bombY + sizeBomb * rect, rect, rect, null);
                        g2.drawImage(left2, bombX - sizeBomb * rect, bombY, rect, rect, null);
                        g2.drawImage(right2, bombX + sizeBomb * rect, bombY, rect, rect, null);

                    } else if (countTime <= timeExploring * 3) {
                        g2.drawImage(center3,bombX,bombY, rect, rect,null);
                        for(int i = 1; i <= sizeBomb; i++) {
                            g2.drawImage(center2,bombX,bombY, rect, rect,null);
                            g2.drawImage(ver3, bombX, bombY + i * rect, rect, rect, null);
                            g2.drawImage(ver3, bombX, bombY - i * rect, rect, rect, null);
                            g2.drawImage(hor3, bombX + i * rect, bombY, rect, rect, null);
                            g2.drawImage(hor3, bombX - i * rect, bombY, rect, rect, null);

                        }
                        g2.drawImage(up3, bombX, bombY - sizeBomb * rect, rect, rect, null);
                        g2.drawImage(down3, bombX, bombY + sizeBomb * rect, rect, rect, null);
                        g2.drawImage(left3, bombX - sizeBomb * rect, bombY, rect, rect, null);
                        g2.drawImage(right3, bombX + sizeBomb * rect, bombY, rect, rect, null);
                    }
                    if (countTime == timeExploring * 3) {
                        explored=true;
                        isEXploring = false;
                        countTime=0;
                    }

            }
        }
    }
}
Editor is loading...