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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
public class TestCanvas extends GameCanvas {
public static final int Z_indice = 0;
public static final int Q_indice = 1;
public static final int S_indice = 2;
public static final int D_indice = 3;
public static final int Espace_indice = 4;
private static final long serialVersionUID = 1L;
int width,height,cmptE,intervE;
ArrayList<Projectile> projectiles;
ArrayList<Entite> ennemies;
Vaisseau v;
Level monde;
Timer timer;
int[][] decor;
GameManager gm;
boolean wait;
KeyListener key;
MouseListener mouse;
protected TestCanvas(GameManager g){
wait=false;
gm=g;
intervE=48;
cmptE=intervE;
decor=new int[21][40];
v=new Vaisseau(200,200,this);
ennemies=new ArrayList<Entite>();
ennemies.add(new Ennemy(800,200,20,30,-3,this,10,100));
projectiles=new ArrayList<Projectile>();
width=800;
height=400;
setSize(getWidth(), getHeight());
setBackground(Color.blue);
setActif(true);
setFocusable(true);
mouse=new MouseListener(){
public void mouseClicked(MouseEvent arg0) {}
public void mouseEntered(MouseEvent arg0) {
setActif(true);
}
public void mouseExited(MouseEvent arg0) {
setActif(false);
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent arg0) {}
};
this.addMouseListener(mouse);
key=new KeyListener(){
public void keyPressed(KeyEvent e) {
if(e.getKeyChar()=='z'){
v.setTouche(Z_indice, true);
}
else if(e.getKeyChar()=='q'){
v.setTouche(Q_indice, true);
}
else if(e.getKeyChar()=='s'){
v.setTouche(S_indice, true);
}
else if(e.getKeyChar()=='d'){
v.setTouche(D_indice, true);
}
else if(e.getKeyChar()==' '){
v.setTouche(Espace_indice, true);
wait=true;
}
}
public void keyReleased(KeyEvent e) {
if(e.getKeyChar()=='z'){
v.setTouche(Z_indice, false);
}
else if(e.getKeyChar()=='q'){
v.setTouche(Q_indice, false);
}
else if(e.getKeyChar()=='s'){
v.setTouche(S_indice, false);
}
else if(e.getKeyChar()=='d'){
v.setTouche(D_indice, false);
}
else if(e.getKeyChar()==' '){
v.setTouche(Espace_indice, false);
}
}
public void keyTyped(KeyEvent e) {}
};
this.addKeyListener(key);
timer = new Timer();
timer.purge();
timer.schedule(new TimerTask(){
public void run(){
if(getActif()&&wait){
TestCanvas.this.actions();
TestCanvas.this.collisions();
TestCanvas.this.repaint();
if(cmptE==0){
cmptE=intervE;
ennemies.add(new Ennemy(800,(int)(Math.random()*370.0),20,30,-3,TestCanvas.this,10,100));
}
else{
cmptE--;
}
}
}
},0,40);
}
public void paintComponent(Graphics g) {
int i;
Graphics2D graph=(Graphics2D)g;
graph.setBackground(Color.black);
graph.clearRect(0, 0, 800,400);
v.paint(graph);
if(v.isAlive()){
for(i=projectiles.size()-1;i>-1;i--)
if(projectiles.get(i).isAlive()){
projectiles.get(i).paint(graph);
}
else
projectiles.remove(i);
for(i=ennemies.size()-1;i>-1;i--)
if(ennemies.get(i).isAlive()){
ennemies.get(i).paint(graph);
}
else
ennemies.remove(i);
}
else{
setActif(false);
timer.cancel();
removeKeyListener(key);
removeMouseListener(mouse);
ennemies.clear();
projectiles.clear();
setFocusable(false);
gm.end();
}
}
} |
Partager