Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2016-02-09 20:09:32 Programmation orientée objet et clignotement

Tonerica
nouveau membre
Date d'inscription: 2016-02-09
Messages: 2

Programmation orientée objet et clignotement



Bonsoir,

j'ai un projet à réaliser pour un cours sur Processing et je dois obligatoirement utiliser la POO pour animer divers éléments.

J'ai déjà codé plusieurs éléments mais je dois ajouter deux quadrilatères animés et je voulais les faire clignoter. Le problème c'est que je ne sais pas comment faire, je pars donc de zéro pour ce morceau de code.

Merci d'avance pour l'aide smile

Dernière modification par Tonerica (2016-02-09 20:09:58)

Hors ligne

 

#2 2016-02-09 23:16:20 Re : Programmation orientée objet et clignotement

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: Programmation orientée objet et clignotement



Bonsoir Tonerica,

Ta question n'est pas très précise smile
Peut-être que tu pourrais poster le code que tu as déjà pour que l'on puisse voir comment en ajouter, un clignotement ça consiste en général à changer la couleur de l'objet une fois par affichage, ou une fois tous les X affichages selon la vitesse que tu souhaites, dans ce cas tu peux créer une variable booléenne dans ton objet et la faire basculer avec frameCount et modulo avec un truc comme ça

if (frameCount%10 == 0) { // pour une fois toutes les 10 frames
  clignotement = !clignotement;
}

if (clignotement) {
  fill(0);
} else {
  fill(255);
}

Hors ligne

 

#3 2016-02-10 18:15:27 Re : Programmation orientée objet et clignotement

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Programmation orientée objet et clignotement



Pour poursuivre l'idée d'emoc, tu peux intégrer ta variable clignotement dans ta classe. Tu peux aussi initialiser deux autres variables de vitesse et de début du clignotement. Ainsi si tu as deux quadrilatère avec la même vitesse de clignotement, tu peux les déphaser.

Quadrilatere q1, q2;

void setup() {
  size(800, 600);
  q1 = new Quadrilatere(100, 100, 200, 80, 250, 200, 120, 180, 10, 0, color(255, 0, 0));
  q2 = new Quadrilatere(300, 300, 450, 320, 550, 400, 280, 400, 20, 5, color(0, 255, 0));
}

void draw() {
  background(255);
  q1.affichage();
  q2.affichage();
}

class Quadrilatere {
  int vitesse;
  int debut;
  int x1, y1, x2, y2, x3, y3, x4, y4;
  color couleur;
  boolean clignotement;
  
  Quadrilatere(int _x1, int _y1, int _x2, int _y2, int _x3, int _y3, int _x4, int _y4, int v, int d, color c) {
    x1 = _x1;
    y1 = _y1;
    x2 = _x2;
    y2 = _y2;
    x3 = _x3;
    y3 = _y3;
    x4 = _x4;
    y4 = _y4;
    couleur = c;
    vitesse = v;
    debut = d;
    clignotement = true;
  }
  
  void affichage() {
    if ((frameCount - debut) % vitesse == 0) {
        clignotement = !clignotement;
    }
    if (clignotement) {
      fill(couleur);
    } else {
      fill(255);
    }
    quad(x1, y1, x2, y2, x3, y3, x4, y4);
  }
}

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024