This scanner works ONLY IF the scanned thing is a single opaque thing and not a transcluent thing on top of something, because that adds some inaccuracies that I didn't calculate. Color resolution settings: low = same number of color bands as in @Geotale's scanner, but the borders are distributed unevenly better = adds 1 scan pass that detects the borders that @Geotale's scanner uses high = adds 3 more scan passes that increase the resolution to 121 distinct values for R/G (largest gap=5) and 62 distinct values for B (largest gap = 8)
This one acually uses binary search - it always tests at most 8 options (2*2*2 for R/G/B), with no exceptions! The way this works is that the overlay isn't exactly black, so the scanner can divide colors like this: ├───────────────┤ ───────┬───────── ───┬───────┬───── ─┬───┬───┬───┬─── ┌─┬─┬─┬─┬─┬─┬─┬─┐ instead of this, which is what previous binary search scanners did: ├───────────────┤ ┌───────┬───────┐ ┌───┬───┬───┬───┐ ┌─┬─┬─┬─┬─┬─┬─┬─┐ There is a simulation of the detected colors if you go to the (not finished) "slideshow" sprite and click on the custom blocks with broadcast blocks below them. Credits: - For images, see the comment in the Stage/backdrop. - @Geotale's project and 's video for some ideas - Scratch's source code that I used to derive the formulas for the "inaccuracies" for the opaque sprite's case. Links are near the top edges of the last 3 costumes of the "slideshow" sprite