Discuss Scratch
- Discussion Forums
- » Français
- » Mon projet considère que deux couleurs identiques sont différentes
        ![[RSS Feed] [RSS Feed]](//cdn.scratch.mit.edu/scratchr2/static/__5b3e40ec58a840b41702360e9891321b__//djangobb_forum/img/feed-icon-small.png)  
- IMAG0
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
Dans un jeu, j'ai deux endoits où la couleur 64 100 94 est utilisée. Or lorsque je prends la pipette pour prendre la couleur dans le bloc de détection de couleur sur le 1er endroit où elle est utilisée, la couleur est détectée pour le 1er endroit mais pas pour le deuxième. À l'inverse si je fait la même manipulation avec la couleur du deuxième endroit, c'est la couleur du deuxième endroit qui est détectée mais pas celle de la première. J'ai vérifié, les couleurs sont bien totalement identiques, c'est incompréhensible.
                        
                        
                    - EtoileDuCode
- 
                             Scratcher Scratcher
100+ posts
Mon projet considère que deux couleurs identiques sont différentes
Quel est le jeu ? Tu as l'URL ?
                        
                        
                    - IMAG0
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
Je voulais pas le publier tt de suite mais de toute façon le code est pas bien complexe, toutes les infos importantes sont là normalement.
                        
                        
                    - wilhelm43
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
Le détecteur de couleur Scratch fonctionne en faisant de grosses approximations sur les couleurs (tu as sûrement déjà entendu parler des 32 nuances de rouge, 32 de vert et 16 de bleu).
J'imagine que tu utilises le bloc
dans ce cas, il faut t'assurer que ta texture contienne cette couleur sur une zone de 2x2 pixels (même en vectoriel) et qu'elle ne soit pas en décalage avec la grille imaginaire de 2x2 pixels de l'éditeur (le centre de l'éditeur est l'intersection des deux axes centraux de la grille et non le milieu d'un pixel), ensuite, la taille du sprite peut influer sur le fonctionnement du bloc (tout comme les effets graphiques), vérifie qu'elle est au moins de 100% pour un pixel de 2x2.
                        
                        
                    J'imagine que tu utilises le bloc
<touching color [#c6e2ff] ?>
dans ce cas, il faut t'assurer que ta texture contienne cette couleur sur une zone de 2x2 pixels (même en vectoriel) et qu'elle ne soit pas en décalage avec la grille imaginaire de 2x2 pixels de l'éditeur (le centre de l'éditeur est l'intersection des deux axes centraux de la grille et non le milieu d'un pixel), ensuite, la taille du sprite peut influer sur le fonctionnement du bloc (tout comme les effets graphiques), vérifie qu'elle est au moins de 100% pour un pixel de 2x2.
- IMAG0
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
C'est du stylo.
                        
                        
                    - wilhelm43
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
On s'enfonce encore dans les nombreuses optimisations de Scratch alors (je peux te détailler une solution simple mais elle ne te plaira pas).
Est-ce que la détection est fonctionnelle sur TurboWarp, qui n'utilise pas le même algorithme ?
                        
                        
                    Est-ce que la détection est fonctionnelle sur TurboWarp, qui n'utilise pas le même algorithme ?
- IMAG0
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
La détection n'est pas fonctionnelle sur Turbowarp non plus. Je veux bien une solution “simple”
                        
                            Last edited by IMAG0 (Oct. 25, 2025 12:31:59)
- wilhelm43
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
Comment utilises-tu le stylo ?
                        
                        
                    - IMAG0
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
Ça fait des carrés, je vais essayer de te refaire le code
                        
                        
                    - wilhelm43
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
Explications : 
lorsque Scratch applique le stylo, il l'applique pour suivre les mouvements du sprite pixel par pixel.
Hors, certains mouvements ne sont pas rectilignes (par exemple, les changements de coordonnées brutaux, et les pas). Dans ce cas, la plupart du temps, les coordonnées des différents utilisations du stylo ne sont pas forcément rondes, ce qui implique que Scratch utilise le stylo sur les pixels concernés par intensité - distance (effet facilement observable) ; de plus, le stylo n'est pas carré mais ronds, d'où certains effets secondaires du même genre lors du traçage avec le stylo.
                        
                        
                    lorsque Scratch applique le stylo, il l'applique pour suivre les mouvements du sprite pixel par pixel.
Hors, certains mouvements ne sont pas rectilignes (par exemple, les changements de coordonnées brutaux, et les pas). Dans ce cas, la plupart du temps, les coordonnées des différents utilisations du stylo ne sont pas forcément rondes, ce qui implique que Scratch utilise le stylo sur les pixels concernés par intensité - distance (effet facilement observable) ; de plus, le stylo n'est pas carré mais ronds, d'où certains effets secondaires du même genre lors du traçage avec le stylo.
- IMAG0
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
Le code
                        
                        
                    définir draw (x1) (y1) (x2) (y2)
s'orienter à [90]
aller à x:(x1) y:(y1)
stylo en position d'écriture
mettre la taille du stylo à [1]
si <(peinture) = [1]> alors
mettre la couleur du stylo à (#001ff2)
mettre [drawing v] à [0]
répéter ([abs v] de ((y1)-(y2))) fois
stylo en position d'écriture
aller à x:(x1) y:((y1)-(drawing))
avancer de ((x2)-(x1)) pas
relever le stylo
si <(lettre [1] de ((y1)-(y2))) = [-] > alors
ajouter [-1] à [drawing v]
sinon
ajouter [1] à [drawing v]
end
end
end
- wilhelm43
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
Je me permets de le retoucher : 
                        
                            définir draw (x1) (y1) (x2) (y2)
si <(peinture) = [1]> alors
mettre la taille du stylo à ([5] / [4]) // toute fraction comprise entre 1 et 2 tout deux exclus
mettre la couleur du stylo à (#001ff2)
mettre [drawing v] à [0]
répéter ([1] + ([abs v] de ((y1) - (y2))::operators)) fois
aller à x:(x1) y:((y1) + (drawing))
stylo en position d'écriture
mettre x à (x2)
relever le stylo
ajouter (<(y1) < (y2) > - <(y2) < (y1) >) à [drawing v]
fin
fin
Last edited by wilhelm43 (Oct. 25, 2025 14:52:03)
- IMAG0
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
Je dois supprimer le bloc “s'orienter à” ? ok
Mon dessin a une légère transparence, si je répète trois fois le code c'est encore trop transparent et si je répète quatre fois le code, la détection ne fonctionne plus.
                        
                            Mon dessin a une légère transparence, si je répète trois fois le code c'est encore trop transparent et si je répète quatre fois le code, la détection ne fonctionne plus.
Last edited by IMAG0 (Oct. 25, 2025 14:34:03)
- wilhelm43
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
Essaye d'augmenter le rapport dans la division du bloc « mettre la taille du stylo à » juste pour déboguer (essaye avec plusieurs valeurs).
                        
                        
                    - IMAG0
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
Si je mets à 7.6 / 4 c'est encore trop transparent, si je mets à 7.7 / 4 la détection ne marche plus.
Après quelques tests, si je mets à 7.6395 / 4 c'est trop transparent et si je mets à 7.6396 / 4 la détection ne marche plus. Je peux encore continuer longtemps comme ça mais je ne pense pas qu'il y ait de possibilitées qui fonctionnent.
                        
                            Après quelques tests, si je mets à 7.6395 / 4 c'est trop transparent et si je mets à 7.6396 / 4 la détection ne marche plus. Je peux encore continuer longtemps comme ça mais je ne pense pas qu'il y ait de possibilitées qui fonctionnent.
Last edited by IMAG0 (Oct. 25, 2025 14:46:33)
- wilhelm43
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
D'accord
Puis-je avoir accès au script de détection de couleur aussi ?
Je me suis aussi permis de modifier légèrement le script pour corriger un effet indésirable et le rendre plus simple.
                        
                            Puis-je avoir accès au script de détection de couleur aussi ?
Je me suis aussi permis de modifier légèrement le script pour corriger un effet indésirable et le rendre plus simple.
Last edited by wilhelm43 (Oct. 25, 2025 14:52:40)
- IMAG0
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
Quand je reçois [next level v]
basculer sur le costume (costume 2 v)
mettre [peinture v] à [0] // un autre code permet de le mettre à 1, ce n'est pas là d'où vient le problème
répéter indéfiniment
répéter jusqu'à ce que <une condition un peu longue mais qui permet en gros d'arrêter le script lorsqu'il doit pas tourner>
si <<couleur (#0020f1) touchée ?> ou <couleur (#001f83) touchée ?>> alors // le code qui nous intéresse
aller à [pointeur de souris v]
end
... // d'autres codes pour d'autres détections
end
end
Last edited by IMAG0 (Oct. 25, 2025 15:06:45)
- wilhelm43
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
Quel est l'intérêt de mettre une boucle conditionnelle dans une boucle infinie  (utilise un simple si alors) ?
 (utilise un simple si alors) ?
Si le problème vient de mon message explications plus haut, je crains que l'on ne puisse le résoudre.
La solution à laquelle je pense est d'utiliser une hitbox virtuelle pour chaque carré affiché, mais cela nécessite l'utilisation d'une liste au préalable (et je sais que tu n'es pas fan de leur utilisation).
On part sur ça ?
                        
                             (utilise un simple si alors) ?
 (utilise un simple si alors) ?Si le problème vient de mon message explications plus haut, je crains que l'on ne puisse le résoudre.
La solution à laquelle je pense est d'utiliser une hitbox virtuelle pour chaque carré affiché, mais cela nécessite l'utilisation d'une liste au préalable (et je sais que tu n'es pas fan de leur utilisation).
On part sur ça ?
Last edited by wilhelm43 (Oct. 25, 2025 15:47:22)
- IMAG0
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
On peut toujours essayer
                        
                            Quel est l'intérêt de mettre une boucle conditionnelle dans une boucle infinie :/ (utilise un simple si alors) ?Je sais plus pk j'avais fait ça
Last edited by IMAG0 (Oct. 25, 2025 15:51:04)
- wilhelm43
- 
                             Scratcher Scratcher
1000+ posts
Mon projet considère que deux couleurs identiques sont différentes
Je dois te poser une question avant : le tracé se fait t-il de manière continue (à chaque itération du projet) ou seulement quand nécessaire ?
                        
                        
                    - Discussion Forums
- » Français
- 
            » Mon projet considère que deux couleurs identiques sont différentes ![[RSS Feed] [RSS Feed]](//cdn.scratch.mit.edu/scratchr2/static/__5b3e40ec58a840b41702360e9891321b__//djangobb_forum/img/feed-icon-small.png)  
![[RSS Feed] [RSS Feed]](http://cdn.scratch.mit.edu/scratchr2/static/__5b3e40ec58a840b41702360e9891321b__//djangobb_forum/img/feed-icon-small.png)


