diff --git a/libs/color-sensor/color.ts b/libs/color-sensor/color.ts index 90105692..9883b0d8 100644 --- a/libs/color-sensor/color.ts +++ b/libs/color-sensor/color.ts @@ -179,6 +179,22 @@ namespace sensors { return this.getNumber(NumberFormat.UInt8LE, 0) } + /** + * Checks the color is being detected + * @param color the color to detect + */ + //% help=sensors/color-sensor/is-color-detected + //% block="is **color sensor** %this|detected|%color=colorEnumPicker" + //% blockId=colorisColorDetectedDetected + //% parts="colorsensor" + //% blockNamespace=sensors + //% this.fieldEditor="ports" + //% weight=99 blockGap=8 + //% group="Color Sensor" + isColorDetected(color: number) { + return this.color() == color; + } + /** * Get the current raw rgb values as an array from the color sensor. * @param sensor the color sensor to query the request diff --git a/libs/color-sensor/docs/reference/sensors/color-sensor/is-color-detected.md b/libs/color-sensor/docs/reference/sensors/color-sensor/is-color-detected.md new file mode 100644 index 00000000..0fe7d900 --- /dev/null +++ b/libs/color-sensor/docs/reference/sensors/color-sensor/is-color-detected.md @@ -0,0 +1,30 @@ +# Is Color Detected + +Checks the color is detected + +```sig +let b = sensors.color1.isColorDetected(ColorSensorColor.Blue) +``` + +The [color](/reference/sensors/color) you choose to look for is one of the colors that the sensor can detect. If you want to use colors for tracking, it's best to use a color that is the same or very close to the ones the sensor detects. + +## Parameters + +* **color**: the [color](/reference/sensors/color) to watch for. + +## Example + +Wait for the sensor to see ``blue``. Then, show an expression on the screen. + +```blocks +brick.showString("Waiting for blue", 1) +while(!sensors.color1.isColorDetected(ColorSensorColor.Blue)) { + pause(20) +} +brick.clearScreen() +brick.showImage(images.expressionsSick) +``` + +## See also + +[on color detected](/reference/sensors/color-sensor/on-color-detected), [color](/reference/sensors/color) \ No newline at end of file