Pour voir si un point est en collision avec une forme grise, je fais un get(x,y), et je compare la valeur avec le gris de la forme :
color c = get(int(positionx), int(positiony)); println(hex(c)); if (hex(c)=="FF0A0A0A") { println(int(positionx)+" "+int(positiony)+" "+hex(c)); vitessex = -vitessex; vitessey = -vitessey; positionx -=vitessex; positiony -=vitessey; }
Le premier println du code hexa marche bien dans la console, qui affiche FF0A0A0A quand le point passe sur la forme grise, mais rien ne se passe, le IF n'est jamais vrai...
Une idée du pourquoi ?
Hors ligne
Bonsoir,
Attention "FF0A0A0A" est chaîne de caractères, pour comparer des chaînes de caractères, il est préférable d'utiliser la méthode de comparaison de la classe String : equals()
https://processing.org/reference/String_equals_.html
Donc, tu devrais écrire :
if (hex(c).equals("FF0A0A0A")) {
Si tu souhaites plus de renseignement sur ton erreur :
http://thecodersbreakfast.net/index.php … es-en-java
Hors ligne
ok cela marche parfaitement. Et merci pour l'approfondissement sur l'erreur.
Hors ligne