debut du programme
Nous avons commencé le programme ayant au départ un carré noir créé précédemment.
Nous avons essayé de créer la ligne pointillée composée de rectangle qui doit se situer au centre du rectangle à la verticale.
Nous avons utilisé le codage suivant :
for(int i=0;i
rect(i,00,5,5);
Mais la ligne à pointillés était tout en haut du carré et se trouvait à l'horizontale.
Pour mettre la ligne à la verticale, il faut remplacer le «i» par un «j» dans la ligne de code précédente. Puis pour centrer, il faut modifier les coordonnés du rectangle.
On obtient:
Le code en est là :
Ensuite, nous allons essayer de mettre deux compteurs de part et d'autre de la ligne à pointillés.
Nous ne trouvons pas comment les mettre en place!
28 janvier 2015:
Matthieu a commencé à réaliser un compteur qui ressemble à ceci:
Et le code est le suivant:
Paul a réalisé une balle qui rebondit, en voici une image:
Le code:
int deplacementX, deplacementY;
int x, y;
void setup() {
size(400,400);
x = 200;
y = 200;
deplacementX = 5;
deplacementY = -3;
noStroke();
fill(0,0,0,255);
}
void draw() {
nettoyer();
bouger();
rebondir();
dessiner();
}
void nettoyer() {
background(#F2F2F2);
}
void rebondir() {
if (x > width) {
deplacementX = -5;
}
if (x < 0) {
deplacementX = 5;
}
if (y > width) {
deplacementY = -3;
}
if (y < 0) {
deplacementY = 3;
}
}
void bouger() {
x = x + deplacementX;
y = y + deplacementY;
}
void dessiner() {
rect(x,y,15,15);
}
Paul a décidé de créer un autre rectangle avec différentes dimensions car l'ancien était beaucoup trop petit :
{
rect(25,60,550,1); //ligne de limite du cadre du haut
rect(25,550,550,1); //ligne de limite du cadre du bas
rect(25,60,1,491); //ligne de limite du cadre de gauche
rect(575,60,1,491); //ligne de limite du cadre de droite
}
Pour créer le palet du joueur un il a fallu faire :
void rectj1(){
rect(xrectj1,yrectj1,4,80); //coordonnées et valeurs palet du joueur 1
}
Puis pour le joueur deux :
void rectj2(){
rect(xrectj2,yrectj2,4,80); //coordonnées et valeures palet du joueur 2
}
Pour créer la balle on la définit comme ca :
void dessiner()
{
ellipse(x,y,10,10); //ellipse qui représente la balle
}
Pour déplacer la balle :
{
x=x+deplacementX; //permet d'ajouter au x de la balle la valeur de son déplacement sur l'axe des X
y=y+deplacementY; //permet d'ajouter au x de la balle la valeur de son déplacement sur l'axe des X
Déplacement palet de gauche :
yrectj1 = (mouseY); //le rectangle du palet du joueur 1 se déplace sur l'axe des Y (donc de bas en haut) grâce au curseur de la souris
(DEPLACEMENT SOURIS)
}
PARTIE DEPLACEMENT AVEC LE CLAVIER DU PALET DE DROITE J2 :
void keyPressed() {
if (keyPressed) { //keyPressed est la fonction utilisée si une touche du clavier est pressée
if (key == 'z') { //si la touche Z est pressée :
yrectj2=yrectj2-20; //le palet du joueur 2 monte par rapport à la fenetre
if(yrectj2 <= 55) //si le y du palet du joueur 2 atteind la limite du cadre du haut :
{
yrectj2=yrectj2+40; //le palet du joueur B s'immobilise
}
} else if (key == 's') { //si la touche S est pressée :
yrectj2=yrectj2+20; //le palet du joueur 2 descend par rapport à la fenetre
if(yrectj2 >= 475) //si le y du palet du joueur 2 atteind la limite du cadre du bas :
{
yrectj2=yrectj2-40; //le palet du joueur 2 s'immobilise
}
}
}
}
Matthieu a ensuite cherché a savoir comment faire rebondir la balle sur les limites, nous étions bloqué sur cette partie. Afin de réussir à faire cela il a réalisé le code suivant :
REBONDISSEMENT AUX LIMITES (ajout du score au compteur)
void rebondir()
{
if (x > 570 && deplacementX >0) {deplacementX = -deplacementX; nbpointJA=nbpointJA+1;} /*si le x de la balle est supérieur à 570(la ligne du cadre de droite qui représente la ligne de but du joueur 2)
alors la balle se déplace dans son sens inverse et le joueur A gagne un point dans son compteur*/
if (x < 30 && deplacementX < 0) {deplacementX = -deplacementX; nbpointJB=nbpointJB+1;} /*si le x de la balle est inférieure à 30(la ligne du cadre de gauche qui représente la ligne de but du joueur 1)
alors la balle se déplace dans son sens inverse (:elle rebondit) et le joueur B gagne un point dans son compteur*/
if( (y > 545 && deplacementY >0) || (y < 70 && deplacementY < 0)) {deplacementY = -deplacementY; } /*si le y de la balle atteint 545(la ligne de limite du cadre du bas) ou si elle atteint 70(la ligne de limite
du cadre du haut) alors la balle se déplace dans son sens inverse : elle rebondit*/
}
Grace à ce code Matthieu a également pu incrémenter 1 au score du joueur A ou du joueur B lorsque la balle dépasse le palet d'un des joueurs et qu'elle touche les limites du cadre droite ou gauche.
Ensuite afin de faire rebondir la balle sur les deux palets des joueurs Matthieu a réalisé le code suivant :
REBONDISSEMENT SUR PALET : 5)
if (x
du y du rectangle du joueur 1 ET SI le y de la balle se situe en dessous du y de la fin du rectangle du joueur 1 */
{
deplacementX = -deplacementX; //le déplacement sur l'axe des X de la balle prend la valeur inverse => la balle change de direction horizontale
}
if (x>xrectj2-5 && y>yrectj2 && y
du y du rectangle du joueur 1 ET SI le y de la balle se situe en dessous du y de la fin du rectangle du joueur 2 */
{
deplacementX = -deplacementX; //le déplacement sur l'axe des X de la balle prend la valeur inverse => la balle change de direction horizontale
}
Louis : 1. Faire afficher un compteur :
void compteur()
{
text("pointJA",50,50); //affiche le texte qui réprésente le compteur de point du joueur A
text("pointJB",450,50); //affiche le texte qui réprésente le compteur de point du joueur B
text(nbpointJA,100,50); //affiche la valeur qui représente le nombre de point du joueur A
text(nbpointJB,500,50); //affiche la valeur qui représente le nombre de point du joueur A
2. Fin de la "partie" avec la balle qui s'arrête puis le message "FINI" s'affiche:
if(nbpointJA==11 || nbpointJB==11) //limite (11 points) des compteurs pour que un des 2 joueurs gagne la partie
{
deplacementX=0; //si la limite de point est atteinte , le déplacement sur l'axe des X de la balle devient nul : la balle s'arrete
deplacementY=0; //Pareil pour le déplacement sur l'axe des Y pour la balle
text("FINI",300,300); //ce texte s'affiche en fin de partie