Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.applet.*;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.image.BufferedImage;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Random;
- import javax.imageio.ImageIO;
- public class main extends Input implements Runnable {
- Input key = new Input();
- Thread th = new Thread(this);
- Random gen = new Random();
- boolean going = true;
- Bombs bomb1 = new Bombs(0,0,0,false,false);
- Bombs bomb2 = new Bombs(0,0,0,false,false);
- Player player1 = new Player(5, 5, 5, 200, 3, 0, 0, true);
- Player player2 = new Player(550, 550, 5, 200, 3, 0, 0, true);
- int[][][] p1Ani = new int[4][12][4];
- int[][][] p2Ani = new int[4][12][4];
- int[] bombCoord = new int[2];
- SolidObject[][] wall = new SolidObject[6][6];
- SolidObject[][] bombGrid = new SolidObject[18][18];
- SolidObject[] p = new SolidObject[2];
- SolidObject[] flames = new SolidObject[4];
- SolidObject[] flames1 = new SolidObject[4];
- Image Image;
- Graphics Graphics;
- BufferedImage img = null;
- public void playerNet() {
- bombCoord[0] = 25;
- bombCoord[1] = 620;
- for (int i = 0; i < 3; i++) {
- for (int x = 0; x < 3; x++) {
- p1Ani[x][i][0] = 14 + i * 84;
- p1Ani[x][i][1] = 5 + x * 98;
- p1Ani[x][i][2] = p1Ani[0][0][0] + 79 + i * 84;
- p1Ani[x][i][3] = p1Ani[0][0][1] + 92 + x * 98;
- }
- }
- for (int i = 0; i < 3; i++) {
- p1Ani[3][i][0] = 14 + i * 84;
- p1Ani[3][i][1] = 495;
- p1Ani[3][i][2] = p1Ani[3][0][0] + 79 + i * 84;
- p1Ani[3][i][3] = p1Ani[3][0][1] + 92;
- }
- for (int i = 0; i < 3; i++) {
- for (int x = 0; x < 3; x++) {
- p2Ani[x][i][0] = 509 + i * 84;
- p2Ani[x][i][1] = 5 + x * 98;
- p2Ani[x][i][2] = p2Ani[0][0][0] + 79 + i * 84;
- p2Ani[x][i][3] = p2Ani[0][0][1] + 92 + x * 98;
- }
- }
- for (int i = 0; i < 3; i++) {
- p2Ani[3][i][0] = 509 + i * 84;
- p2Ani[3][i][1] = 495;
- p2Ani[3][i][2] = p2Ani[3][0][0] + 79 + i * 84;
- p2Ani[3][i][3] = p2Ani[3][0][1] + 92;
- }
- }
- public void movePlayers() {
- if (p1D){
- p[0].posY += player1.speed;
- if (collision(p[0]))
- p[0].posY -= player1.speed;
- }
- if (p1U){
- p[0].posY -= player1.speed;
- if (collision(p[0]))
- p[0].posY += player1.speed;
- }
- if (p1L){
- p[0].posX -= player1.speed;
- if (collision(p[0]))
- p[0].posX += player1.speed;
- }
- if (p1R){
- p[0].posX += player1.speed;
- if (collision(p[0]))
- p[0].posX -= player1.speed;
- }
- if (p2D){
- p[1].posY += player2.speed;
- if (collision(p[1]))
- p[1].posY -= player2.speed;
- }
- if (p2U){
- p[1].posY -= player2.speed;
- if (collision(p[1]))
- p[1].posY += player2.speed;
- }
- if (p2L){
- p[1].posX -= player2.speed;
- if (collision(p[1]))
- p[1].posX += player2.speed;
- }
- if (p2R){
- p[1].posX += player2.speed;
- if (collision(p[1]))
- p[1].posX -= player2.speed;
- }
- }
- public void bombGrid() {
- for (int i = 0; i < 18; i++) {
- for (int x = 0; x < 18; x++) {
- bombGrid[i][x] = new SolidObject(0+x*45, 0+i*45, 45, 45);
- bombGrid[i][x].compileHull();
- }
- }
- }
- public void init() {
- walls();
- addKeyListener(this);
- }
- public void deadBombs() {
- for (int i = 0; i < 10; i++) {
- bomb1 = new Bombs(0,0,0,false,false);
- }
- for (int i = 0; i < 10; i++) {
- bomb2 = new Bombs(0,0,0,false,false);
- }
- }
- public void start() {
- th.start();
- p[0] = new SolidObject(player1.x, player1.y, 30, 30);
- p[0].compileHull();
- p[1] = new SolidObject(player2.x, player2.y, 30, 30);
- flames[0]= new SolidObject(bomb1.x-10, bomb1.y-100, 20, 100);
- flames[1] = new SolidObject(bomb1.x-100, bomb1.y-10, 100, 20);
- flames[2] = new SolidObject(bomb1.x-10, bomb1.y, 20, 100);
- flames[3] = new SolidObject(bomb1.x, bomb1.y-10, 100, 20);
- flames1[0]= new SolidObject(bomb1.x-10, bomb1.y-100, 20, 100);
- flames1[1] = new SolidObject(bomb1.x-100, bomb1.y-10, 100, 20);
- flames1[2] = new SolidObject(bomb1.x-10, bomb1.y, 20, 100);
- flames1[3] = new SolidObject(bomb1.x, bomb1.y-10, 100, 20);
- p[1].compileHull();
- deadBombs();
- try {
- img = ImageIO.read(new File("E:\\Documents and Settings\\Sysop\\workspace\\Bomberman\\src\\bomber.bmp"));
- } catch(IOException e){
- System.out.print("No image;");
- }
- }
- public void stop() {
- going = false;
- }
- public void walls() {
- for (int i = 0; i < 6; i++) {
- for (int x = 0; x < 6; x++) {
- wall[i][x] = new SolidObject(45+x*90, 45+i*90, 45, 45);
- wall[i][x].compileHull();
- }
- }
- }
- public boolean collision(SolidObject p) {
- boolean collision = false;
- for (int i = 0; i < wall.length; i++) {
- for (int x = 0; x < wall[i].length; x++) {
- if (p.isCollidingWith(wall[i][x])) {
- //collision = true;
- }
- }
- }
- return collision;
- }
- public void animate() {
- if (p1D) {
- player1.direction = 0;
- //p1D = false;
- player1.ani++;
- if (player1.ani == 3)
- player1.ani = 0;
- }
- if (p1U) {
- player1.direction = 2;
- //p1U = false;
- player1.ani++;
- if (player1.ani == 3)
- player1.ani = 0;
- }
- if (p1L) {
- player1.direction = 1;
- //p1L = false;
- player1.ani++;
- if (player1.ani == 3)
- player1.ani = 0;
- }
- if (p1R) {
- player1.direction = 3;
- //p1R = false;
- player1.ani++;
- if (player1.ani == 3)
- player1.ani = 0;
- }
- if (p2D) {
- player2.direction = 0;
- //p2D = false;
- player2.ani++;
- if (player2.ani == 3)
- player2.ani = 0;
- }
- if (p2U) {
- player2.direction = 2;
- //p2U = false;
- player2.ani++;
- if (player2.ani == 3)
- player2.ani = 0;
- }
- if (p2L) {
- player2.direction = 1;
- //p2L = false;
- player2.ani++;
- if (player2.ani == 3)
- player2.ani = 0;
- }
- if (p2R) {
- player2.direction = 3;
- //p2R = false;
- player2.ani++;
- if (player2.ani == 3)
- player2.ani = 0;
- }
- if (p1bomb) {
- if (!bomb1.alive) {
- deployBomb(bomb1, p[0]);
- }
- }
- if (p2bomb) {
- if (!bomb2.alive) {
- deployBomb(bomb2, p[1]);
- }
- }
- }
- public void deployBomb(Bombs bomb, SolidObject p) {
- SolidObject check = new SolidObject(p.posX, p.posY, 30, 30);
- bomb.x = p.posX;
- bomb.y = p.posY;
- bomb.alive = true;
- bomb.bombFrame = 0;
- check.compileHull();
- for (int i = 0; i < 13; i++) {
- for (int x = 0; x < 13; x++) {
- if (check.isCollidingWith(bombGrid[i][x])) {
- if (bombGrid[i][x].posX+30 > bomb.x){
- bomb.x = bombGrid[i][x].posX+12;
- check.posX = bombGrid[i][x].posX+12;
- }
- if (bombGrid[i][x].posY+30 > bomb.y){
- bomb.y = bombGrid[i][x].posY+12;
- check.posY = bombGrid[i][x].posY+12;
- }
- }
- }
- }
- }
- public void bombLoop() {
- if (bomb1.alive && !bomb1.explosion) {
- bomb1.bombFrame++;
- if (bomb1.bombFrame >= bomb1.maxFrame)
- bomb1.explosion = true;
- if (bomb1.explosion) {
- flames[0]= new SolidObject(bomb1.x-12, bomb1.y-player1.distance, 45, player1.distance);
- flames[1] = new SolidObject(bomb1.x-player1.distance, bomb1.y-12, player1.distance, 45);
- flames[2] = new SolidObject(bomb1.x-12, bomb1.y, 45, player1.distance+12);
- flames[3] = new SolidObject(bomb1.x, bomb1.y-12, player1.distance+12, 45);
- for (int i = 0; i < flames.length; i++) {
- if (flames[i].isCollidingWith(p[1])) {
- System.out.print("\n\n\n DEAD!");
- player2.alive = false;
- }
- if (flames[i].isCollidingWith(p[0])) {
- System.out.print("\n\n\n DEAD!");
- player1.alive = false;
- }
- }
- bomb1.alive = false;
- bomb1.explosion = false;
- }
- }
- if (bomb2.alive && !bomb2.explosion) {
- bomb2.bombFrame++;
- if (bomb2.bombFrame >= bomb2.maxFrame)
- bomb2.explosion = true;
- if (bomb2.explosion) {
- flames1[0]= new SolidObject(bomb2.x-12, bomb2.y-player2.distance, 45, player2.distance);
- flames1[1] = new SolidObject(bomb2.x-player2.distance, bomb2.y-12, player2.distance, 45);
- flames1[2] = new SolidObject(bomb2.x-12, bomb2.y, 45, player2.distance+12);
- flames1[3] = new SolidObject(bomb2.x, bomb2.y-12, player2.distance+12, 45);
- for (int i = 0; i < flames1.length; i++) {
- if (flames1[i].isCollidingWith(p[1])) {
- System.out.print("\n\n\n DEAD!");
- player2.alive = false;
- }
- if (flames1[i].isCollidingWith(p[0])) {
- System.out.print("\n\n\n DEAD!");
- player1.alive = false;
- }
- }
- bomb2.alive = false;
- bomb2.explosion = false;
- }
- }
- }
- public void run() {
- init();
- bombGrid();
- while(going) {
- playerNet();
- movePlayers();
- animate();
- bombLoop();
- repaint();
- try {
- Thread.sleep(10);
- }
- catch(InterruptedException ie) {
- }
- }
- }
- public void update(Graphics g) {
- if(Image == null) {
- Image = createImage(this.getSize().width, this.getSize().height);
- Graphics = Image.getGraphics();
- }
- Graphics.setColor(this.getBackground());
- this.setBackground(Color.LIGHT_GRAY);
- Graphics.fillRect(0,0,this.getSize().width,this.getSize().height);
- Graphics.setColor(this.getForeground());
- paint(Graphics);
- g.drawImage(Image, 0, 0, this);
- }
- public void paint(Graphics g) {
- if (player1.alive)
- g.drawImage(img, p[0].posX, p[0].posY, p[0].posX+p[0].sizeX, p[0].posY+p[0].sizeY, p1Ani[player1.direction][player1.ani][0], p1Ani[player1.direction][player1.ani][1], p1Ani[player1.direction][player1.ani][2], p1Ani[player1.direction][player1.ani][3], null);
- if (player2.alive)
- g.drawImage(img, p[1].posX, p[1].posY, p[1].posX+p[1].sizeX, p[1].posY+p[1].sizeY, p2Ani[player2.direction][player2.ani][0], p2Ani[player2.direction][player2.ani][1], p2Ani[player2.direction][player2.ani][2], p1Ani[player2.direction][player2.ani][3], null);
- //for (int i = 0; i < wall.length; i++) {
- // for (int x = 0; x < wall[i].length; x++) {
- // //g.fillRect(wall[i][x].posX, wall[i][x].posY, wall[i][x].sizeX, wall[i][x].sizeY);
- // }
- //}
- for (int i = 0; i < 13; i++) {
- for (int x = 0; x < 13; x++)
- g.drawRect(bombGrid[i][x].posX, bombGrid[i][x].posY, bombGrid[i][x].sizeX, bombGrid[i][x].sizeY);
- }
- if (bomb1.alive) {
- g.drawImage(img, bomb1.x, bomb1.y, bomb1.x+30, bomb1.y+30, bombCoord[0], bombCoord[1], bombCoord[0]+50, bombCoord[1]+50, null);
- }
- if (bomb2.alive) {
- g.drawImage(img, bomb2.x, bomb2.y, bomb2.x+30, bomb2.y+30, bombCoord[0], bombCoord[1], bombCoord[0]+50, bombCoord[1]+50, null);
- }
- g.setColor(Color.red);
- //if (bomb1.explosion) {
- for (int i = 0; i < flames.length; i++)
- g.fillRect(flames[i].posX, flames[i].posY, flames[i].sizeX, flames[i].sizeY);
- //}
- //if (bomb2.explosion) {
- for (int i = 0; i < flames1.length; i++)
- g.fillRect(flames1[i].posX, flames1[i].posY, flames1[i].sizeX, flames1[i].sizeY);
- //}
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement