/* * La marseillaise * (cc-pd) 03.03.2008 Douglas Edric Stanley * The following code is public domain */ String paroles = "Allons enfants de la Patrie, / Le jour de gloire est arrivŽ ! / Contre nous de la tyrannie, / L'Žtendard sanglant est levŽ, / L'Žtendard sanglant est levŽ, / Entendez-vous dans les campagnes / Mugir ces fŽroces soldats ? / Ils viennent jusque dans vos bras / Egorger vos fils, vos compagnes ! / Aux armes, citoyens / Formez vos bataillons / Marchons, marchons ! / Qu'un sang impur / Abreuve nos sillons ! / Que veut cette horde d'esclaves, / De tra”tres, de rois conjurŽs ? / Pour qui ces ignobles entraves, / Ces fers ds longtemps prŽparŽs ? / Ces fers ds longtemps prŽparŽs ? / Franais, pour nous, ah ! quel outrage / Quels transports il doit exciter ! / C'est nous qu'on ose mŽditer / De rendre ˆ l'antique esclavage ! / Aux armes, citoyens / Formez vos bataillons / Marchons, marchons ! / Qu'un sang impur / Abreuve nos sillons ! / Quoi ! des cohortes Žtrangres / Feraient la loi dans nos foyers ! / Quoi ! ces phalanges mercenaires / Terrasseraient nos fiers guerriers ! / Terrasseraient nos fiers guerriers ! / Grand Dieu ! par des mains encha”nŽes / Nos fronts sous le joug se ploieraient / De vils despotes deviendraient / Les ma”tres de nos destinŽes ! / Aux armes, citoyens / Formez vos bataillons / Marchons, marchons ! / Qu'un sang impur / Abreuve nos sillons ! / Tremblez, tyrans et vous perfides / L'opprobre de tous les partis, / Tremblez ! vos projets parricides / Vont enfin recevoir leurs prix ! / Vont enfin recevoir leurs prix ! / Tout est soldat pour vous combattre, / S'ils tombent, nos jeunes hŽros, / La terre en produit de nouveaux, / Contre vous tout prets ˆ se battre ! / Aux armes, citoyens / Formez vos bataillons / Marchons, marchons ! / Qu'un sang impur / Abreuve nos sillons ! / Franais, en guerriers magnanimes, / Portez ou retenez vos coups ! / Epargnez ces tristes victimes, / A regret s'armant contre nous. / A regret s'armant contre nous. / Mais ces despotes sanguinaires, / Mais ces complices de BouillŽ, / Tous ces tigres qui, sans pitiŽ, / DŽchirent le sein de leur mre ! / Aux armes, citoyens / Formez vos bataillons / Marchons, marchons ! / Qu'un sang impur / Abreuve nos sillons ! / Amour sacrŽ de la Patrie, / Conduis, soutiens nos bras vengeurs / LibertŽ, LibertŽ chŽrie, / Combats avec tes dŽfenseurs ! / Combats avec tes dŽfenseurs ! / Sous nos drapeaux que la victoire / Accoure ˆ tes m‰les accents, / Que tes ennemis expirants / Voient ton triomphe et notre gloire ! / Aux armes, citoyens / Formez vos bataillons / Marchons, marchons ! / Qu'un sang impur / Abreuve nos sillons ! / Nous entrerons dans la carrire / Quand nos a”nŽs n'y seront plus, / Nous y trouverons leur poussire / Et la trace de leurs vertus / Et la trace de leurs vertus / Bien moins jaloux de leur survivre / Que de partager leur cercueil, / Nous aurons le sublime orgueil / De les venger ou de les suivre / Aux armes, citoyens / Formez vos bataillons / Marchons, marchons ! / Qu'un sang impur / Abreuve nos sillons !"; int index = 0; long millisecondes; void setup() { size(512,512); frameRate(60); // color mode colorMode(HSB,127,127,127); noStroke(); noSmooth(); background(0,0,127); millisecondes = millis(); // afficher le premier caractre afficher(); } void draw() { // si on est active, afficher le caractre actuel if (next()) afficher(); } boolean next() { // si on est trop loin, Žteindre if (index >= paroles.length()) return(false); // voir o on en est pour le temps long delta = millis() - millisecondes; // chercher la vitesse de ce caractre int vitesse = 0; if (paroles.charAt(index) == ' ') vitesse = 240; if (paroles.charAt(index) == '/') vitesse = 600; // voir si assez de temps ˆ ŽcoulŽ if (delta < vitesse) return(false); // se souvenir pour la prochaine fois millisecondes = millis(); // avancer if (++index < paroles.length()) return(true); // si on est trop loin, Žteindre return(false); } void afficher() { /* int x = caractere * 8; int y = ligne * 8; */ int x = (index % 64) * 8; int y = (index / 64) * 8; char lettre = paroles.charAt(index); fill(int(lettre)%128, 127, 127); rect(x, y, 7, 7); }