bonjour tous le monde
je galérè depuis quelque temps déjà. Sur le site de processing il y a une exemple de over rect qui fonctionne très bien d ailleurs en gros le carre change de couleur quand la souris arrive dessus pour la sélection
mais ce que j ai besoin ses que quand la souris n est pas sur le carrer,sélectionne, et si il est sur le carrer, sélectionne pas
voici le code de processing
int rectX, rectY; // Position of square button int circleX, circleY; // Position of circle button int rectSize = 90; // Diameter of rect int circleSize = 93; // Diameter of circle color rectColor, circleColor, baseColor; color rectHighlight, circleHighlight; color currentColor; boolean rectOver = false; boolean circleOver = false; void setup() { size(640, 360); rectColor = color(0); rectHighlight = color(51); circleColor = color(255); circleHighlight = color(204); baseColor = color(102); currentColor = baseColor; circleX = width/2+circleSize/2+10; circleY = height/2; rectX = width/2-rectSize-10; rectY = height/2-rectSize/2; ellipseMode(CENTER); } void draw() { update(mouseX, mouseY); background(currentColor); if (rectOver) { fill(rectHighlight); } else { fill(rectColor); } stroke(255); rect(rectX, rectY, rectSize, rectSize); if (circleOver) { fill(circleHighlight); } else { fill(circleColor); } stroke(0); ellipse(circleX, circleY, circleSize, circleSize); } void update(int x, int y) { if ( overCircle(circleX, circleY, circleSize) ) { circleOver = true; rectOver = false; } else if ( overRect(rectX, rectY, rectSize, rectSize) ) { rectOver = true; circleOver = false; } else { circleOver = rectOver = false; } } void mousePressed() { if (circleOver) { currentColor = circleColor; } if (rectOver) { currentColor = rectColor; } } boolean overRect(int x, int y, int width, int height) { if (mouseX >= x && mouseX <= x+width && mouseY >= y && mouseY <= y+height) { return true; } else { return false; } } boolean overCircle(int x, int y, int diameter) { float disX = x - mouseX; float disY = y - mouseY; if (sqrt(sq(disX) + sq(disY)) < diameter/2 ) { return true; } else { return false; } }
merci d avance
a+
Hors ligne
Pardon mais j'ai un peu du mal à saisir ton problème, tu pourrais être plus clair ?
Hors ligne
Oui...
Je crois que le plus dur n'est pas de te répondre mais de comprendre ta question...
Si tu veux inverser le comportement du rollover sur le carré, il te suffit d'inverser les booléens en "return". Soit :
boolean overRect(int x, int y, int width, int height) { if (mouseX >= x && mouseX <= x+width && mouseY >= y && mouseY <= y+height) { return false; } else { return true; } }
Mais je ne suis vraiment pas sûr de répondre à ton pb...
Dernière modification par Olivier (2013-09-13 14:00:40)
Hors ligne
salut a tous
je suis désoler si je me suis mal exprimer je ferais attention la prochaine fois
mais merci olivier ses en plein sa que je voulais faire quand je pense que s étais juste sa
je cherchais beaucoup trop loin
merci
a+
Hors ligne