inversion de sens du jeu
This commit is contained in:
@@ -44,6 +44,7 @@ public class CampagneAutoroute {
|
||||
|
||||
jeu.prochainBonusScore = 100 + jeu.random.nextInt(36);
|
||||
jeu.prochainMalusScore = 100 + jeu.random.nextInt(46);
|
||||
jeu.prochainInversionScore = 150 + jeu.random.nextInt(100);
|
||||
|
||||
jeu.layout.show(jeu.conteneurPrincipal, "JEU");
|
||||
jeu.ecran.setFocusable(true);
|
||||
|
||||
@@ -46,6 +46,7 @@ public class CampagneEspace {
|
||||
|
||||
jeu.prochainBonusScore = 100 + jeu.random.nextInt(26);
|
||||
jeu.prochainMalusScore = 100 + jeu.random.nextInt(26);
|
||||
jeu.prochainInversionScore = 150 + jeu.random.nextInt(100);
|
||||
|
||||
jeu.layout.show(jeu.conteneurPrincipal, "JEU");
|
||||
jeu.ecran.setFocusable(true);
|
||||
|
||||
@@ -47,6 +47,7 @@ public class CampagneOcean {
|
||||
|
||||
jeuPrincipal.prochainBonusScore = 100 + jeuPrincipal.random.nextInt(26);
|
||||
jeuPrincipal.prochainMalusScore = 100 + jeuPrincipal.random.nextInt(26);
|
||||
jeuPrincipal.prochainInversionScore = 150 + jeuPrincipal.random.nextInt(100);
|
||||
|
||||
jeuPrincipal.layout.show(jeuPrincipal.conteneurPrincipal, "JEU");
|
||||
jeuPrincipal.ecran.setFocusable(true);
|
||||
|
||||
29
src/linea/Inversion.java
Normal file
29
src/linea/Inversion.java
Normal file
@@ -0,0 +1,29 @@
|
||||
package linea;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Graphics;
|
||||
|
||||
public class Inversion extends ObjetGraphique {
|
||||
|
||||
private int largeur = 20;
|
||||
private int hauteur = 20;
|
||||
private double vitesseDefilement;
|
||||
|
||||
public Inversion(double x, double y, double vitesse) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.vitesseDefilement = vitesse;
|
||||
this.couleur = new Color(128, 0, 255);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void Afficher(Graphics g) {
|
||||
g.setColor(this.couleur);
|
||||
g.fillRect((int)x, (int)y, largeur, hauteur);
|
||||
}
|
||||
|
||||
@Override
|
||||
void Animer() {
|
||||
this.x -= vitesseDefilement;
|
||||
}
|
||||
}
|
||||
@@ -32,6 +32,10 @@ public class Jeu implements KeyListener, ActionListener {
|
||||
protected Random random = new Random();
|
||||
protected int prochainBonusScore;
|
||||
protected int prochainMalusScore;
|
||||
protected int prochainInversionScore;
|
||||
protected boolean inversionActive = false;
|
||||
protected int inversionTimer = 0;
|
||||
|
||||
|
||||
protected int utilisateurIdConnecte = -1;
|
||||
protected String identifiantUtilisateurConnecte;
|
||||
@@ -177,6 +181,7 @@ public class Jeu implements KeyListener, ActionListener {
|
||||
|
||||
this.prochainBonusScore = 100 + random.nextInt(36);
|
||||
this.prochainMalusScore = 100 + random.nextInt(46);
|
||||
this.prochainInversionScore = 500 + random.nextInt(200);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -215,9 +220,26 @@ public class Jeu implements KeyListener, ActionListener {
|
||||
}
|
||||
}
|
||||
|
||||
if (score == prochainInversionScore) {
|
||||
double xSpawn = 810;
|
||||
double yLigne = laligne.getHauteurLigneA(xSpawn);
|
||||
if (yLigne != -1) {
|
||||
ecran.ajouterObjet(new Inversion(xSpawn, yLigne - 10, laligne.vitesseDefilement));
|
||||
prochainInversionScore = score + 250 + random.nextInt(150);
|
||||
}
|
||||
}
|
||||
|
||||
if (inversionActive) {
|
||||
inversionTimer--;
|
||||
laligne.vitesseDefilement = -Math.abs(laligne.vitesseDefilement);
|
||||
if (inversionTimer <= 0) {
|
||||
inversionActive = false;
|
||||
laligne.vitesseDefilement = Math.abs(laligne.vitesseDefilement);
|
||||
}
|
||||
}
|
||||
for (int i = ecran.listeObjets.size() - 1; i >= 0; i--) {
|
||||
ObjetGraphique obj = ecran.listeObjets.get(i);
|
||||
if (obj instanceof Bonus || obj instanceof Malus) {
|
||||
if (obj instanceof Bonus || obj instanceof Malus || obj instanceof Inversion) {
|
||||
double itemLargeur = 20.0;
|
||||
double itemHauteur = 20.0;
|
||||
|
||||
@@ -238,12 +260,15 @@ public class Jeu implements KeyListener, ActionListener {
|
||||
double newRayon = demiCercleAvant.getRayon() + 3;
|
||||
demiCercleAvant.setRayon(newRayon);
|
||||
demiCercleArriere.setRayon(newRayon);
|
||||
} else {
|
||||
} else if(obj instanceof Malus){
|
||||
double newRayon = demiCercleAvant.getRayon() - 3;
|
||||
if (newRayon < 10)
|
||||
newRayon = 10;
|
||||
demiCercleAvant.setRayon(newRayon);
|
||||
demiCercleArriere.setRayon(newRayon);
|
||||
} else if(obj instanceof Inversion){
|
||||
inversionActive = true;
|
||||
inversionTimer = 75 + random.nextInt(50);
|
||||
}
|
||||
ecran.listeObjets.remove(i);
|
||||
}
|
||||
@@ -260,7 +285,7 @@ public class Jeu implements KeyListener, ActionListener {
|
||||
if (!modeInvincible) gameOver();
|
||||
}
|
||||
} else {
|
||||
victoire();
|
||||
if (!inversionActive) victoire();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user