Annonce

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


#1 2015-11-11 19:00:29 Lien vers différents programmes

Dembow
membre
Date d'inscription: 2014-05-08
Messages: 20

Lien vers différents programmes



Bonjour,

Suite à quelques recherches infructueuses je me tourne vers vous, je voulais savoir si il était possible de créer une interface comprenant des liens permettant d'ouvrir d'autre programmes réalisé avec processing.

Pour l'instant j'ai testé une solution avec des conditions "si je clique dans tel zone alors il se passe cela"

void setup (){
  size(1280, 1024);
}

void draw(){
  fill(0);
  noStroke();
  rect(10,10,50,50);

 
 if (mousePressed && mouseX > 10 && mouseX<60 && mouseY>10 && mouseY<60){
   rect(100,100,50,50);
 }
 }

Mais dans ce cas la réaction est juste le dessin d'un nouveau rectangle donc une ligne de code assez simple, or j'aimerais renvoyer vers une dizaine de programmes réaliser avec processing et recopier tous les codes suite à chaque condition "if" risque de me donner un programme à rallonge. J'aimerais donc savoir si il existe d'autre solutions ?

J'espère avoir été a peu près claire dans mes intentions si ce n'est pas le cas n'hésitez pas à me demander plus de précision.

En espérant vous lire bientôt,

Merci !

Hors ligne

 

#2 2015-11-11 21:02:14 Re : Lien vers différents programmes

jojolaglaise
membre
Lieu: Basse Normandie
Date d'inscription: 2014-04-20
Messages: 137
Site web

Re: Lien vers différents programmes



Voici une solution possible, en utilisant seulement que des fonctions:

void setup(){
  size(300, 300);
}

void draw(){
  zone(100, 100, 50, 50, 1);
  zone(250, 250, 20, 20, 2);
}

void zone(int x, int y, int l, int h, int n){
  rect(x, y, l, h);
  if(mousePressed){
    if(mouseX > x && mouseX < x + l 
      && mouseY > y && mouseY < y + h){
        if(n == 1){
          niveau1();
        } else {
          niveau2();
        }
      }
  }
}

void niveau1(){
  ellipse(200, 200, 100, 100);
}

void niveau2(){
  ellipse(50, 50, 100, 100);
}

Une fois ce code compris, si tu veux aller plus loin, tu pourrais peut etre regarder autour de la POO…

Dernière modification par jojolaglaise (2015-11-11 21:16:07)

Hors ligne

 

#3 2015-11-12 08:38:11 Re : Lien vers différents programmes

Dembow
membre
Date d'inscription: 2014-05-08
Messages: 20

Re: Lien vers différents programmes



Ok merci beaucoup pour ta réponse, tu peux m'éclaircir sur la "POO" ?
Et je suis tombé sur une fonction open() qui permettrait de renvoyer vers des appli externe mais plus moyen de le retrouver dans l'aide de processing, ça vous parle ? Parce que j'aimerais avoir la possibilité d'ouvrir des fichiers exe à partir de ces espèces de bouton, mais suite à mes recherches j'ai pas l'impression que processing soit la meilleure des solutions, des idées ? smile

Hors ligne

 

#4 2015-11-12 11:43:53 Re : Lien vers différents programmes

jojolaglaise
membre
Lieu: Basse Normandie
Date d'inscription: 2014-04-20
Messages: 137
Site web

Re: Lien vers différents programmes



Ah si tu veux ouvrir des sketchs Processing déjà compilés tu peux effectivement ouvrir des programmes avec la fonction exec() ou open(). On utilise exec() sous Mac et open() avec Windows. Ces deux fonctions permettent d'utiliser des commandes.

Sous mac par exemple (connais pas windows):

String[] commande = {"open", "Applications/Programme.app"};
          exec(commande);

Pense à modifier le lien du répertoire, ici "Applicaitons/Programme.app".

Sinon, je modifie un peu le code que je t'avais donné plus haut, ça te donnera peut-être des idées pour lancer différents sketchs depuis une seul programme…

void setup(){
  size(300, 300);
  frameRate(15);
}

void draw(){

  zone(0, 0, 50, 50, 0);
  zone(50, 0, 50, 50, 1);
  zone(100, 0, 50, 50, 2);
}

void zone(int x, int y, int l, int h, int sketch){
  
  rect(x, y, l, h); 
  
  if(mousePressed){
    if(mouseX > x && mouseX < x + l 
      && mouseY > y && mouseY < y + h){
        if(sketch == 0){
          sketch0();
        } else if(sketch == 1){
          sketch1();
        } else {
          sketch2();
        }
    }
  }
}

void sketch0(){
  background(255, 0, 0);
  ellipse(200, 200, 100, 100);
}

void sketch1(){
  background(0, 255, 0);
  ellipse(100, 250, 100, 100);
}

void sketch2(){
  background(0, 0, 255);
  line(0, 0, width, height);
}

Dernière modification par jojolaglaise (2015-11-12 11:45:50)

Hors ligne

 

#5 2015-11-12 11:54:47 Re : Lien vers différents programmes

Dembow
membre
Date d'inscription: 2014-05-08
Messages: 20

Re: Lien vers différents programmes



Ok la première solution correspond à un fragment de code que j'avais trouvé et correspondrait totalement à ce que je voulais faire et j'ai bien modifier le lien du répertoire et pourtant le message d'erreur suivant apparait : "Syntax error on token 'interface', Identifier expected", j'oublie quelque chose ?

Hors ligne

 

#6 2015-11-12 18:16:27 Re : Lien vers différents programmes

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

Re: Lien vers différents programmes



Bonsoir,

Pour la POO, voici un lien en français qui pose les bases :
http://www.flossmanualsfr.net/processin … les-objets

Sinon, je te conseille de fureter le site de Daniel Schiffman :
http://learningprocessing.com
Les exemples sont bien faits.

Si tu as des questions n'hésite pas à en poser sur ce forum qui est très actif.

Bon apprentissage

Hors ligne

 

#7 2015-11-12 21:57:37 Re : Lien vers différents programmes

Dembow
membre
Date d'inscription: 2014-05-08
Messages: 20

Re: Lien vers différents programmes



Ok merci pour la doc' je vais voir ce que je peux en tirer !

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024