diff --git a/libs/core/_locales/core-jsdoc-strings.json b/libs/core/_locales/core-jsdoc-strings.json index b3dc1c6d..21dd525d 100644 --- a/libs/core/_locales/core-jsdoc-strings.json +++ b/libs/core/_locales/core-jsdoc-strings.json @@ -28,6 +28,7 @@ "brick.buttonLeft": "Left button on the EV3 Brick.", "brick.buttonRight": "Right button on the EV3 Brick.", "brick.buttonUp": "Up button on the EV3 Brick.", + "brick.clearScreen": "Clears the screen", "brick.lightPattern": "Pattern block.", "brick.lightPattern|param|pattern": "the lights pattern to use. eg: LightsPattern.Green", "brick.print": "Show text on the screen.", diff --git a/libs/core/_locales/core-strings.json b/libs/core/_locales/core-strings.json index 4fc48b38..a90db42f 100644 --- a/libs/core/_locales/core-strings.json +++ b/libs/core/_locales/core-strings.json @@ -34,11 +34,12 @@ "brick.buttonLeft|block": "left", "brick.buttonRight|block": "right", "brick.buttonUp|block": "up", + "brick.clearScreen|block": "`icons.brickDisplay` clear screen", "brick.lightPattern|block": "%pattern", "brick.print|block": "`icons.brickDisplay` print %text| at x: %x| y: %y", "brick.setPixel|block": "`icons.brickDisplay` set pixel %on| at x: %x| y: %y", "brick.setStatusLight|block": "set `icons.brickButtons` to %pattern=led_pattern", - "brick.showImage|block": "`icons.brickDisplay` show image %image=scren_image_picker", + "brick.showImage|block": "`icons.brickDisplay` show image %image=screen_image_picker", "brick|block": "brick", "control.raiseEvent|block": "raise event|from %src|with value %value", "control|block": "control", diff --git a/libs/core/screen.ts b/libs/core/screen.ts index d0582d92..bee19974 100644 --- a/libs/core/screen.ts +++ b/libs/core/screen.ts @@ -63,16 +63,16 @@ namespace brick { firstChar: 32, // source https://github.com/lancaster-university/microbit-dal/blob/master/source/core/MicroBitFont.cpp data: hex` -0000000000 0202020002 0a0a000000 0a1f0a1f0a 0e130e190e 1309041219 0609060916 0202000000 0402020204 -0204040402 000a040a00 00040e0400 0000000402 00000e0000 0000000200 1008040201 0609090906 040604040e -070806010f 0f08040906 0c0a091f08 1f010f100f 08040e110e 1f08040201 0e110e110e 0e110e0402 0002000200 -0004000402 0804020408 000e000e00 0204080402 0e110c0004 0e11151906 06090f0909 0709070907 0e0101010e -0709090907 0f0107010f 0f01070101 0e0119110e 09090f0909 0702020207 1f08080906 0905030509 010101010f -111b151111 1113151911 0609090906 0709070101 060909060c 0709070911 0e01060807 1f04040404 0909090906 -1111110a04 1111151b11 0909060909 110a040404 0f0402010f 0e0202020e 0102040810 0e0808080e 040a000000 -000000001f 0204000000 000e09091e 0101070907 000e01010e 08080e090e 060907010e 0c02070202 0e090e0806 -0101070909 0200020202 0800080806 0105030509 020202020c 001b151111 0007090909 0006090906 0007090701 -000e090e08 000e010101 000c020403 02020e021c 000909091e 0011110a04 001111151b 0009060609 00110a0403 +0000000000 0202020002 0a0a000000 0a1f0a1f0a 0e130e190e 1309041219 0609060916 0202000000 0402020204 +0204040402 000a040a00 00040e0400 0000000402 00000e0000 0000000200 1008040201 0609090906 040604040e +070806010f 0f08040906 0c0a091f08 1f010f100f 08040e110e 1f08040201 0e110e110e 0e110e0402 0002000200 +0004000402 0804020408 000e000e00 0204080402 0e110c0004 0e11151906 06090f0909 0709070907 0e0101010e +0709090907 0f0107010f 0f01070101 0e0119110e 09090f0909 0702020207 1f08080906 0905030509 010101010f +111b151111 1113151911 0609090906 0709070101 060909060c 0709070911 0e01060807 1f04040404 0909090906 +1111110a04 1111151b11 0909060909 110a040404 0f0402010f 0e0202020e 0102040810 0e0808080e 040a000000 +000000001f 0204000000 000e09091e 0101070907 000e01010e 08080e090e 060907010e 0c02070202 0e090e0806 +0101070909 0200020202 0800080806 0105030509 020202020c 001b151111 0007090909 0006090906 0007090701 +000e090e08 000e010101 000c020403 02020e021c 000909091e 0011110a04 001111151b 0009060609 00110a0403 000f04020f 0c0406040c 0202020202 0302060203 0000061800 ` } @@ -137,7 +137,7 @@ namespace brick { * Shows an image on screen * @param image image to draw */ - //% blockId=screen_show_image block="`icons.brickDisplay` show image %image=scren_image_picker" + //% blockId=screen_show_image block="`icons.brickDisplay` show image %image=screen_image_picker" //% weight=95 group="Screen" blockGap=8 export function showImage(image: Image, delay: number = 400) { if (!image) return; @@ -151,7 +151,7 @@ namespace brick { * An image * @param image the image */ - //% blockId=scren_image_picker block="%image" shim=TD_ID + //% blockId=screen_image_picker block="%image" shim=TD_ID //% image.fieldEditor="imagedropdown" //% image.fieldOptions.columns=6 //% image.fieldOptions.hasSearchBar=true @@ -159,7 +159,16 @@ namespace brick { export function _imagePicker(image: Image): Image { return image; } - + + /** + * Clears the screen + */ + //% blockId=screen_clear_screen block="`icons.brickDisplay` clear screen" + //% weight=94 group="Screen" blockGap=8 + export function clearScreen() { + screen.clear(); + } + export function drawRect(x: number, y: number, w: number, h: number, mode = Draw.Normal) { x |= 0; y |= 0; diff --git a/sim/state/screen.ts b/sim/state/screen.ts index 572046bc..2ceaa428 100644 --- a/sim/state/screen.ts +++ b/sim/state/screen.ts @@ -30,6 +30,7 @@ namespace pxsim { clear() { for (let i = 0; i < this.points.length; ++i) this.points[i] = 0; + this.shouldUpdate = true; } blitLineCore(x: number, y: number, w: number, buf: RefBuffer, mode: Draw, offset = 0) {