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 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
| public ConteneurJeu(int level) {
this.difficulté = level;
apparitionMonstre.schedule(new ApparitionMonstres(monstreJeu, this), 0, 8500 - (level * 1500));
mouvementElements.schedule(new MouvElements(this, monstreJeu, missileJeu, explosionJeu), 0, 2860 - 5 * 565);
System.out.println("vfvedvedr : " + level);
}
/**
* méthode pour créer le vaisseau du jeu et le placer en bas de l'écran de jeu
* @param g support pour créer le vaisseau
*/
private void creationVaisseau(Graphics g){
if (vaisseau == null){
vaisseau = new Vaisseau(this, g.getClipWidth() / 2, g.getClipHeight() - 30);
}
}
/**
* méthode ayant pour rôle de mettre en place tous les éléments graphique du jeu
* @param g pour réaliser les différents éléments du jeu
*/
protected void paint(Graphics g) {
// création du vaisseau contrôler par le vaisseau
creationVaisseau(g);
// mise en place de l'image de fond
g.drawImage(RessourcesJeu.chargImgFond(this), 0, 0, Graphics.LEFT | Graphics.TOP);
// affichage du vaisseau
g.setColor(255, 255, 255);
g.drawImage(vaisseau.getImageVaisseau(), vaisseau.getAbsX(), vaisseau.getOrdY(), Graphics.HCENTER | Graphics.TOP);
// parcours du vector contenant les missiles pour les afficher
// récuperation de tous les missiles
List = missileJeu.elements();
// tant que la liste contient un missile, on réalise les traitements
while (List.hasMoreElements()) {
// extraction d'un missile de la liste
Missile missile = (Missile) List.nextElement();
// affichage du missile
g.drawImage(missile.getImageMissile(), missile.getAbsX(), missile.getOrdY(), Graphics.HCENTER | Graphics.BOTTOM);
}
// parcours du vector contenant les monstres pour les afficher
// récuperation de tous les monstres
List = monstreJeu.elements();
// tant que la liste contient un monstre, on réalise les traitements
while (List.hasMoreElements()) {
// extraction d'un monstre de la liste
AbstractMonstre monstre = (AbstractMonstre) List.nextElement();
g.drawImage(monstre.getImageMonstre(), monstre.getAbsX(), monstre.getOrdY(),
Graphics.HCENTER | Graphics.VCENTER);
}
// création d'une barre d'affichage pour le score et le nombre de vies
g.setColor(0, 0, 0);
g.fillRect(0, 0, g.getClipWidth(), 20);
// compteur pour le score
g.setColor(200, 200, 200);
g.drawString("Score : " + BaseJeu.getInstanceBaseJeu().getScoreJeu(), 0, 0, Graphics.TOP | Graphics.LEFT);
// lorsque le joueur a perdu toutes ses vies
if (BaseJeu.getInstanceBaseJeu().getNbVieJeu() < 0) {
// les deux timers sont arrêtés et les commandes désactivées
activeCommandes = false;
apparitionMonstre.cancel();
mouvementElements.cancel();
// partie terminée
g.drawString("Game Over", g.getClipWidth(), 0, Graphics.TOP | Graphics.RIGHT);
} else {
g.drawString("Vies : " + BaseJeu.getInstanceBaseJeu().getNbVieJeu(), g.getClipWidth(), 0,
Graphics.TOP | Graphics.RIGHT);
}
// parcours du vector contenant les explosions pour les afficher en cas
// de destruction d'un monstre, puis leurs suppressions toute de suite après
// pour ne pas qu'elle reste longtemps sur l'écran de jeu
// récuperation de toutes les explosions
List = explosionJeu.elements();
// tant que la liste contient une explosion, on réalise les traitements
while (List.hasMoreElements()) {
// extraction d'une explosion de la liste
Explosion explosion = (Explosion) List.nextElement();
// affichage de l'explosion
g.drawImage(explosion.getImageExplosion(), explosion.getAbsX(), explosion.getOrdY(),
Graphics.HCENTER | Graphics.VCENTER);
// suppression de l'explosion
explosionJeu.removeElement(explosion);
}
}
/**
* méthode pour la gestion des évènements générés par le biais du clavier
* @param touchePressée représente la touche du clavier préssée
*/
protected void keyPressed (int touchePressée) {
// si les commandes sont bien activées
if (activeCommandes = true) {
// selon la touche préssée, une action précise se déclanche
switch (touchePressée) {
// la touche 4 servira à déplacer le vaiseau de 10 pixels vers la gauche
case KEY_NUM4 :
vaisseau.deplacGauche(11);
break;
// la touche 6 servira à déplacer le vaiseau de 10 pixels vers la droite
case KEY_NUM6 :
vaisseau.deplacDroite(11);
break;
// la touche 5 servira à lancer un missile
case KEY_NUM5 :
// ajoute d'un missile dans le Vector à la position où se trouve le vaisseau
missileJeu.addElement(new Missile(this, vaisseau.getAbsX(), vaisseau.getOrdY()));
break;
case KEY_NUM2 :
/** ici je voudrais bien retourner sur le menu lorsqu'on presse sur la touche 2 **/
//MenuPrincipal.getMenuPrinc().getDisplay();
//MenuPrincipal.getMenuPrinc().MAJ_Ecran(MenuPrincipal.getMenuPrinc().MenuPause);
//MenuPrincipal.getMenuPrinc().MAJ_Ecran(MenuPrincipal.getMenuPrinc().getListPause());
//mp.getMenuPrinc().getListPause();
break;
}
// actualisation de l'affichage
repaint();
}
} |
Partager