add screen mode to auto clear screen between modes (#486)
This commit is contained in:
parent
57ab6d153d
commit
0198be6dda
@ -22,6 +22,13 @@ namespace _screen_internal {
|
||||
namespace brick {
|
||||
const textOffset = 4;
|
||||
const lineOffset = 2;
|
||||
enum ScreenMode {
|
||||
None,
|
||||
ShowLines,
|
||||
Image,
|
||||
Custom
|
||||
}
|
||||
let screenMode = ScreenMode.None;
|
||||
export let font = image.font8;
|
||||
|
||||
/**
|
||||
@ -50,6 +57,11 @@ namespace brick {
|
||||
//% help=brick/show-string
|
||||
//% line.min=1 line.max=10
|
||||
export function showString(text: string, line: number) {
|
||||
if (screenMode != ScreenMode.ShowLines) {
|
||||
screenMode = ScreenMode.ShowLines;
|
||||
screen.fill(0);
|
||||
}
|
||||
|
||||
// line indexing starts at 1.
|
||||
line = (line - 1) >> 0;
|
||||
const nlines = lineCount();
|
||||
@ -98,6 +110,7 @@ namespace brick {
|
||||
//% help=brick/show-image
|
||||
export function showImage(image: Image, duration: number = 400) {
|
||||
if (!image) return;
|
||||
screenMode = ScreenMode.Image;
|
||||
screen.fill(0);
|
||||
screen.drawImage(image, 0, 0);
|
||||
if (duration > 0)
|
||||
@ -111,6 +124,8 @@ namespace brick {
|
||||
//% help=brick/show-ports blockGap=8
|
||||
//% weight=10 group="Screen"
|
||||
export function showPorts() {
|
||||
screenMode = ScreenMode.Custom;
|
||||
|
||||
const col = 44;
|
||||
const lineHeight8 = image.font8.charHeight + 2;
|
||||
clearScreen();
|
||||
|
Loading…
Reference in New Issue
Block a user