1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.imageio.*;
import java.io.*;
import java.awt.geom.*;
import java.util.*;
public class Labyrinth extends JPanel implements MouseListener, MouseMotionListener {
JPanel sprite;
Area forme=new Area();
public Labyrinth() {
setBackground(Color.black);
creationLabyrinth();
sprite = new JPanel();
sprite.setBackground(Color.red);
sprite.setBounds(125,450,30,30);
sprite.addMouseListener(this);
setLayout(null);
add(sprite);
}
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g.create();
g2.setBackground(Color.black);
g2.clearRect(0,0,getWidth(),getHeight());
g2.setColor(Color.white);
g2.fill(forme);
}
public static void main(String[] args) {
JFrame f = new JFrame();
Labyrinth l = new Labyrinth();
f.setSize(650,650);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(l,BorderLayout.CENTER);
f.setVisible(true);
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
addMouseMotionListener(this);
sprite.removeMouseListener(this);
}
public void mouseMoved(MouseEvent e) {
boolean interception = false;
if(forme.contains(new Rectangle(e.getX()-15,e.getY()-15,30,30)))
sprite.setLocation(e.getX()-15,e.getY()-15);
}
public void mouseDragged(MouseEvent e) {
}
public void creationLabyrinth() {
ArrayList<Area> murs = new ArrayList<Area>();
Area rect;
rect = new Area(new Rectangle2D.Double(100,100,100,400));
murs.add(rect);
rect = new Area(new Rectangle2D.Double(200,100,100,100));
murs.add(rect);
rect = new Area(new Rectangle2D.Double(300,100,100,400));
murs.add(rect);
for (int i=0; i< murs.size(); i++)
forme.add(murs.get(i));
}
} |
Partager