CODE

31/01/2019

Vous pouvez retrouver ici le code intégrale de notre programme.

String page = "menu";

//réinitialisation millis()

int T0;

//int deplacementBx, deplacementBy;

//int Bx, By;

ArrayList<Balle> balles;

//Balle B;

//Balle Bonus;

// Dimension aire de jeu

float AireDX, AireDY;

float deplacementAireDX;

int RaqX, RaqY, RaqDX, RaqDY;

int vie;

int level;

int score;

int bestScore;

boolean bonus;

//Création d'un objet (variable) de la classe Table.

Table table;

class Balle {

int Px, Py, Vx, Vy;

int Dx, Dy;

String type;

Balle(int px, int py, int vx, int vy, String _type) {

Px = px;

Py = py;

Vx = vx;

Vy = vy;

Dx = 25;

Dy = 25;

type = _type;

}

boolean bouger() {

Px = Px + Vx;

Py = Py + Vy;

if (Px < 20) {

return false;

} else {

return true;

}

}

void dessiner() {

if (type == "normal") {

fill(#F21414);

}

if (type == "bonus") {

fill(#10E80E);

}

ellipse(Px, Py, Dx, Dy);

}

void gere_rebond() {

if (Px > AireDX - Dx/2) {

Vx = -Vx;

Px = int(AireDX - Dx/2);

}

if (Px < Dx/2) {

Vx = -Vx;

}

if (Py < Dy/2) {

Vy = -Vy;

}

if (Py > AireDY-Dy/2) {

Vy = -Vy;

}

if (Px<RaqX+RaqDX+Dx/2 && Py>RaqY && Py<RaqY+RaqDY && Vx<0) {

Vx = -Vx;

score = score + 1;

//bonus = true;

}

}

}

void setup() {

size(1265, 950);

background (0);

RaqX = 15;

RaqY = 60;

vie = 3;

RaqDX = 30;

RaqDY = 130;

AireDX =1265;

AireDY=950;

T0 = millis();

deplacementAireDX = -0.5;

score = 0;

bonus = false;

level = 1;

balles = new ArrayList<Balle>();

balles.add(new Balle(500, 500, 8, 5, "normal"));

//on charge dans la variable table le fichier csv(comma separated values) nommé "bestScore.csv".

//"header" signifie que les colonnes du tableau en format CSV ont des noms

table = loadTable("bestScore.csv", "header");

bestScore = table.getInt(0, 0);

}

void draw() {

if (page=="menu") {

draw_menu();

}

if (page=="jeu") {

draw_jeu();

}

if (page=="GameOver") {

draw_GameOver();

}

if (page=="TransitionLevel") {

draw_TransitionLevel();

}

}

void draw_menu() {

background(0);

fill(#FFFFFF);

textSize(40);

text("P.O.N.G.", 575, 100);

text("President Of National Game company", 300, 200);

text("PLAY", 605, 503);

text("Try to pass all 3 levels and become the P.O.N.G.", 200, 700);

noFill();

stroke(#E00000);

rect(550, 50, 200, 75);

noFill();

stroke(#E00000);

rect(550, 450, 200, 75);

noFill();

stroke(#E00000);

if (mousePressed) {

if (mouseX >550)

if (mouseY >450)

if (mouseX <750)

if (mouseY <525) {

page = "jeu";

}

}

}

void draw_jeu() {

nettoyer();

rebondir();

bouger();

dessinerMur();

Score();

dessiner();

BougerMur();

if (score % 4 == 2) {

if (bonus) {

balles.add(new Balle(600, 600, 15, 10, "bonus"));

RaqDY = RaqDY + 30;

bonus = false;

}

}

else {

bonus = true;

}

if (AireDX<633 && level == 1) {

level = 2;

page = "TransitionLevel";

AireDX = 1265;

for (int i = 0; i < balles.size(); i++) {

balles.remove(i);

}

balles.add(new Balle(500, 500, 15, 8, "normal"));

}

if (AireDX<633 && level == 2) {

level = 3;

page = "TransitionLevel";

AireDX = 1265;

for (int i = 0; i < balles.size(); i++) {

balles.remove(i);

}

balles.add(new Balle(500, 500, 17, 10, "normal"));

RaqDY = 100;

}

if (AireDX<633 && level == 3) {

background(0);

textSize(50);

text("You Win", 500, 450);

if (mousePressed) {

page = "menu";

setup();

}

}

}

void nettoyer() {

background(0);

}

void dessiner() {

// Dessine la raquette

fill(#FFFFFF);

rect(RaqX, RaqY, RaqDX, RaqDY);

// Dessine les balles

for (int i = 0; i < balles.size(); i++) {

Balle B = balles.get(i);

B.dessiner();

}

// Dessine les vies

fill(#FFFFFF);

if (vie == 3) {

ellipse(1200, 30, 25, 25);

ellipse(1150, 30, 25, 25);

ellipse(1100, 30, 25, 25);

}

if (vie == 2) {

ellipse(1200, 30, 25, 25);

ellipse(1150, 30, 25, 25);

}

if (vie == 1) {

ellipse(1200, 30, 25, 25);

}

//dessine level

if (level == 1) {

textSize(50);

text("level 1", 565, 50);

}

if (level == 2) {

text("level 2", 565, 50);

}

if (level == 3) {

text("level 3", 565, 50);

}

}

void bouger() {

for (int i = 0; i < balles.size(); i++) {

Balle B = balles.get(i);

boolean en_jeu = B.bouger();

if (en_jeu == false) {

if (B.type == "normal") {

vie = vie-1;

if (vie > 0 && level == 1) {

balles.add(new Balle(500, 500, 8, 5, "normal"));

}

if (vie > 0 && level == 2) {

balles.add(new Balle(500, 500, 15, 8, "normal"));

}

if (vie > 0 && level == 3) {

balles.add(new Balle(500, 500, 17, 10, "normal"));

}

if (vie == 0) {

page = "GameOver";

//on entre dans la table à la ligne 0 et à la colonne 0 la variable bestScore

table.setInt(0, 0, bestScore);

//on enregistre la table avec la nouvelle valeur de la variable bestScore

saveTable(table, "data/bestScore.csv");

}

}

if (B.type == "bonus") {

RaqDY = RaqDY - 30;

}

balles.remove(i);

}

}

RaqY = (mouseY) - RaqDY/2;

}

void rebondir() {

for (int i = 0; i < balles.size(); i++) {

Balle B = balles.get(i);

B.gere_rebond();

}

}

void BougerMur() {

AireDX = AireDX + deplacementAireDX;

}

void dessinerMur() {

fill (200);

rect (AireDX, 0, AireDX, AireDY);

}

void Score() {

textSize (40);

fill (255);

text ("score : "+str(score), 1050, 100);

text("best score : " + str(bestScore), 950, 150);

if (score > bestScore) {

bestScore = score;

}

}

void draw_GameOver() {

background(0);

textSize(50);

fill(#F21414);

text("GameOver", 500, 450);

textSize(20);

fill(#0D36FA);

text("(click to display the menu)", 497, 650);

if (mousePressed) {

page = "menu";

setup();

}

}

void draw_TransitionLevel() {

background(0);

textSize(50);

fill(#F21414);

text("Level " + level, 550, 450);

textSize(20);

fill(#0D36FA);

text("(click for next level)", 535, 550);

if (mousePressed) {

page = "jeu";

}

}

© 2018 Le site d'ISN de Julien et Louis. Tous droits réservés.
Optimisé par Webnode
Créez votre site web gratuitement ! Ce site internet a été réalisé avec Webnode. Créez le votre gratuitement aujourd'hui ! Commencer