Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
68
Добавлен:
18.12.2017
Размер:
5.12 Кб
Скачать
package Lab7;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;

public class MyShooting extends JFrame {
private JPanel contentPane;
private JButton buttonCancel;
private JButton buttonstart;
private JPanel game_panel;
private JLabel lab;
int a1, a2,v1,v2;
public int x1=0;
public int y1=400;
public MyShooting() {
setContentPane(contentPane);
game_panel.setLayout(null);
BufferedImage img = null;
try {
int H = game_panel.getHeight();
int w = 60;
int x = 0; int y = w;
img = ImageIO.read(new File("C:\\Users\\Eugenia\\Desktop\\МП\\5 семестр\\Основы Java\\Labs\\src\\bird.png"));
Image im = img.getScaledInstance(w, w, Image.SCALE_SMOOTH);

l1 = new JLabel(new ImageIcon(im));
l1.setSize(w,w); l1.setLocation(x,H-y);
game_panel.add(l1);

l2 = new JLabel(new ImageIcon(im));
l2.setSize(w,w); l2.setLocation(x,H-y);
game_panel.add(l2);

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



buttonstart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { onStart(); }
});

buttonCancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCancel();
}
});
// call onCancel() when cross is clicked
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
onCancel();
}
});
// call onCancel() on ESCAPE
contentPane.registerKeyboardAction(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCancel();
}
}, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
}
JLabel l1, l2;
Game b1, b2;

public void stopFlight(JLabel winner) {
if (b1 != null) b1.interrupt();
if (b2 != null) b2.interrupt();
if (winner == l1) {
setIconToLabel(l2, true);
game_panel.setBackground(new Color(239, 194, 183));
lab.setText("Первая птица упала раньше");
} else {
setIconToLabel(l1, true);
lab.setText("Вторая птица упала раньше");
game_panel.setBackground(new Color(189, 255, 168));
}

}

public void setIconToLabel(JLabel l, boolean isDead){
BufferedImage img = null;
try {
int w = 60;
if (l == l1) { // Первая птица
if (isDead) {
img = ImageIO.read(new File("C:\\Users\\Eugenia\\Desktop\\МП\\5 семестр\\Основы Java\\Labs\\src\\deadbird.png"));
} else {
img = ImageIO.read(new File("C:\\Users\\Eugenia\\Desktop\\МП\\5 семестр\\Основы Java\\Labs\\src\\bird.png"));
}
}else { // Вторая
if (isDead) {
img = ImageIO.read(new File("C:\\Users\\Eugenia\\Desktop\\МП\\5 семестр\\Основы Java\\Labs\\src\\deadbird2.png"));
} else {
img = ImageIO.read(new File("C:\\Users\\Eugenia\\Desktop\\МП\\5 семестр\\Основы Java\\Labs\\src\\bird2.png"));
}
}
Image im = img.getScaledInstance(w, w, Image.SCALE_SMOOTH);
l.setIcon(new ImageIcon(im));
}catch (IOException ex) {
ex.printStackTrace();
}
}

private void onStart() {
lab.setText("Полетели...");
if (b1 != null) b1.interrupt();
if (b2 != null) b2.interrupt();

setIconToLabel(l1, false);
setIconToLabel(l2, false);

int H = game_panel.getHeight();

int d = new Random().nextInt(50);
int b = new Random().nextInt(50);
b1 = new Game(1, 100 + b, 30 + d, 0, 0, l1, H);
b1.onFinish = (ev) -> { stopFlight((JLabel)ev.getSource()); };

d = new Random().nextInt(50);
b = new Random().nextInt(50);
b2 = new Game(1, 100 + b, 30 + d, 0, 0, l2, H);
b2.onFinish = (ev) -> { stopFlight((JLabel)ev.getSource()); };


b1.start();
b2.start();


}

private void onCancel() {
// add your code here if necessary
dispose();
}

public static MyShooting form;

public static void main(String[] args) {
form = new MyShooting();
form.pack();
form.setVisible(true);
//System.exit(0);
}


}
Соседние файлы в папке Lab7