Pantalla#

Introducción#

La clase screen se deriva de la clase base brain. Controla cómo el V5 Brain muestra texto, números y gráficos en su pantalla táctil, y cómo responde a la entrada táctil.

De forma predeterminada, la fuente para imprimir en el cerebro es pequeña monoespaciada que tiene 12 filas y 48 columnas.

Para el dibujo, la resolución del cerebro es de 480 x 240 píxeles.

La pantalla V5 Brain con líneas de cuadrícula rojas que muestra el diseño de 12 filas y 48 columnas en total. Las dimensiones de los píxeles son 479 de ancho por 239 de alto. La esquina superior izquierda comienza en (0,0) píxeles y la fila 1, columna 1, mientras que la esquina inferior derecha termina en (479, 239) píxeles y la fila 12, columna 48.

Acceso#

The screen class can be accessed by:

Brain.Screen

Observaciones#

  • El objeto screen lo proporciona el Cerebro. No se construye directamente.

  • Los proyectos utilizan un único objeto Brain global, por lo que las funciones de pantalla se denominan Brain.Screen.

Ejemplo#

/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */

// Create the V5 Brain
brain Brain = brain();

// Print text to the Brain screen
Brain.Screen.print("Hello!");

Funciones de los miembros#

La clase screen incluye las siguientes funciones miembro:

  • print — Imprime texto formateado, números o valores booleanos en la pantalla Brain.

  • setCursor — Mueve el cursor de texto a una fila y columna especificadas.

  • newLine: borra el resto de la línea actual y mueve el cursor a la siguiente línea.

  • clearLine: borra el resto de la línea actual o borra una línea especificada.

  • row — Devuelve la fila donde se imprimirá el texto.

  • column — Devuelve la columna donde se imprimirá el texto.

  • getStringHeight — Devuelve la altura de una cadena en píxeles utilizando la fuente actual.

  • getStringWidth — Devuelve el ancho de una cadena en píxeles utilizando la fuente actual.

  • printAt — Imprime texto formateado en una ubicación de píxeles x, y.

  • clearScreen: borra todos los dibujos y el texto de la pantalla Cerebro.

  • setFont — Establece la fuente utilizada para imprimir en la pantalla.

  • setPenWidth — Establece el grosor de las líneas dibujadas y los contornos de forma.

  • setPenColor: establece el color del texto, los píxeles, las líneas y los contornos de forma.

  • setFillColor — Establece el color de relleno para formas dibujadas y fondos de texto impreso.

  • setOrigin — Establece el origen utilizado para las coordenadas de la pantalla.

  • setClipRegion — Restringe la salida de la pantalla a una región rectangular.

  • drawPixel — Dibuja un píxel en una coordenada.

  • drawLine — Dibuja una línea entre dos puntos.

  • drawRectangle — Dibuja un rectángulo en una ubicación x, y con un tamaño especificado.

  • drawCircle — Dibuja un círculo en una ubicación x, y con un radio especificado.

  • drawImageFromFile — Dibuja una imagen de un archivo de tarjeta SD en la pantalla.

  • render: habilita el doble almacenamiento en búfer o representa el búfer posterior en la pantalla.

  • pressing — Devuelve si la pantalla se está presionando actualmente.

  • xPosition — Devuelve la coordenada x de la prensa de pantalla más reciente.

  • yPosition — Devuelve la coordenada y de la prensa de pantalla más reciente.

  • pressed — Registra una función de devolución de llamada para que se ejecute cuando se presiona la pantalla.

  • released: registra una función de devolución de llamada para que se ejecute cuando se libera la pantalla después de presionarla.

Before calling any screen member functions, a brain instance must be created, as shown below:

// Create the V5 Brain
brain Brain = brain();

print#

Muestra texto, números o valores booleanos en la pantalla V5 Brain.

Available Functions

1 — Imprime texto formateado usando literales de cadena o cadenas de estilo C de solo lectura.

void print(
    const char* format,
    ... );

2 — Imprime texto formateado utilizando matrices de caracteres modificables.

void print(
    char* format,
    ... );

Parameters

Parámetro

Tipo

Descripción

format

const char*

Una cadena de formato proporcionada como un literal de cadena o una cadena de estilo C de solo lectura (por ejemplo, “Score: %d”).

format

char*

Una cadena de formato proporcionada como una matriz de caracteres modificable.

…

Uno o más valores adicionales que se insertan en la cadena de formato, separados por comas.

Return Values

Esta función no devuelve un valor.

Notes
  • La salida comienza en la posición actual del cursor en la pantalla.

  • El texto impreso utiliza la fuente de la pantalla actual.

  • El texto impreso utiliza el color actual del bolígrafo.

  • El texto impreso con print se imprime con un fondo, y el color de fondo está determinado por el color de relleno actual.

  • Cuando se utiliza una cadena de formato, el número y los tipos de valores pasados deben coincidir con los especificadores de formato en la cadena.

Examples
// Display a message at the starting cursor
Brain.Screen.print("Hello, Robot!");

Una captura de pantalla del cerebro V5 que muestra Hello, Robot! impresa en la pantalla en la esquina superior izquierda en texto blanco.

setCursor#

Mueve el cursor a una fila y columna específicas en la pantalla Cerebro V5. La próxima llamada print comenzará a imprimirse en esa ubicación.

Available Functions
void setCursor(
  int32_t row, 
  int32_t col );

Parameters

Parámetro

Tipo

Descripción

row

int32_t

La fila a la que mover el cursor.

col

int32_t

La columna a la que mover el cursor.

Return Values

Esta función no devuelve un valor.

Notes
  • Afecta dónde comienza la salida de texto posterior cuando se usa print.

  • Las filas y columnas se basan en la fuente de pantalla establecida actualmente.

  • La fuente predeterminada (mono20) utiliza 12 filas y 48 columnas.

  • Llamar a setCursor afecta solo a la posición de la salida de texto posterior.

Examples
// Display text starting at Row 3 Column 12
Brain.Screen.setCursor(3, 12);
Brain.Screen.print("Row 3, Column 12");

Una captura de pantalla del Cerebro V5 que muestra la Fila 3 Columna 12 impresa en la parte superior cerca del centro de la pantalla, en esa posición.

newLine#

Mueve el cursor al comienzo de la siguiente fila en la pantalla Cerebro.

Available Functions
void newLine();

Parameters

Esta función no acepta ningún parámetro.

Return Values

Esta función no devuelve un valor.

Notes
  • Si el cursor está en el medio de una oración, newLine borrará el resto de la fila después del cursor antes de pasar a la siguiente fila.

  • Después de llamar a newLine, el cursor se coloca en la primera columna de la siguiente línea.

  • La posición del cursor y la numeración de las filas se establecen mediante setCursor.

Examples
// Display two lines of text
Brain.Screen.print("Line 1");
Brain.Screen.newLine();
Brain.Screen.print("Line 2");

Una captura de pantalla de la pantalla V5 Brain que muestra dos líneas de texto blanco en la esquina superior izquierda. La línea superior dice Línea 1, y la segunda línea directamente debajo dice Línea 2.

clearLine#

Borra el texto de una fila en la pantalla Cerebro V5.

Available Functions

1 — Borra el resto de la línea actual de la posición del cursor.

void clearLine();

2 — Borra la fila especificada con el color de relleno configurado actualmente.

void clearLine(
    int number );

3 — Borra la fila especificada con un objeto predefinido o custom color.

void clearLine(
    int          number,
    const color& color );

4 — Borra la fila especificada con un valor de color hexadecimal.

void clearLine(
    int         number,
    const char* color );

5 — Borra la fila especificada con un valor de tono.

void clearLine(
    int number,
    int hue );

Parameters

Parámetro

Tipo

Descripción

number

int

El número de fila a borrar. La numeración de filas comienza en 1.

color

const color&

Borra la fila usando un objeto de color color Los colores predefinidos incluyen:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
También se puede usar un objeto de color personalizado.

color

const char*

Borra la fila utilizando un valor de color hexadecimal (por ejemplo, “#000000”).

hue

int

Borra la fila utilizando un valor de tono entero en el rango de 0359, que representa grados alrededor de una rueda de color.

Return Values

Esta función no devuelve un valor.

Notes
  • Borrar una línea no cambia la posición actual del cursor.

  • La posición del cursor y la numeración de las filas se establecen mediante setCursor.

  • El valor del parámetro hue se basa en una rueda de color circular, como se muestra a continuación, donde los valores representan grados alrededor de la rueda (por ejemplo, rojo cerca de 0°, verde cerca de 120° y azul cerca de 240°).

Una rueda de colores que muestra el rango de colores de 0 a 359, donde rojo es 0, verde es 120 y azul es 240.

Examples
// Display text on two rows
Brain.Screen.print("This text stays");
Brain.Screen.newLine();
Brain.Screen.print("This disappears");

// Wait 3 seconds before clearing row 2
wait(3, seconds);
Brain.Screen.clearLine(2);

row#

Devuelve la fila donde se imprimirá el texto en la pantalla V5 Brain.

Available Functions
int32_t row();

Parameters

Esta función no acepta ningún parámetro.

Return Values

Devuelve un int32_t que representa la fila donde se imprimirá el texto.

La numeración de filas comienza en 1.

Notes
  • La posición del cursor se basa en la fuente de la pantalla actual.

  • El valor devuelto indica dónde aparecerá la siguiente salida impresa.

  • El valor de la fila cambia cuando se imprime texto o cuando se llama a setCursor.

Examples
// Display the cursor's current row
Brain.Screen.setCursor(3, 12);
Brain.Screen.print(Brain.Screen.row());

Una captura de pantalla de la pantalla V5 Brain que muestra el texto 3 en blanco en el cuadrante superior izquierdo de la pantalla, en la posición de la columna 12 de la fila 3.

column#

Devuelve la columna donde se imprimirá el texto en la pantalla V5 Brain.

Available Functions
int32_t column();

Parameters

Esta función no acepta ningún parámetro.

Return Values

Devuelve un int32_t que representa la columna donde se imprimirá el texto.

La numeración de columnas comienza en 1.

Notes
  • La posición del cursor se basa en la fuente de la pantalla actual.

  • El valor devuelto indica dónde aparecerá la siguiente salida impresa.

  • El valor de la columna cambia cuando se imprime texto o cuando se llama a setCursor.

Examples
// Display the cursor's current column
Brain.Screen.setCursor(5, 15);
Brain.Screen.print(Brain.Screen.column());

Una captura de pantalla de la pantalla V5 Brain que muestra el texto 15 en blanco en el cuadrante superior izquierdo de la pantalla, en la posición 15 de la columna de la fila 3.

getStringHeight#

Devuelve la altura, en píxeles, de una cadena cuando se representa en la pantalla V5 Brain.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Parámetro

Tipo

Descripción

cstr

const char*

El texto a medir, proporcionado como una cadena de estilo C (por ejemplo, “Hello”).

Return Values

Devuelve un int32_t que representa la altura de la cadena en píxeles cuando se representa en la pantalla Cerebro.

Notes
  • La altura devuelta depende de la fuente de pantalla seleccionada actualmente.

  • Esta función mide la cadena sin dibujarla en la pantalla.

  • La altura devuelta refleja cómo aparecería la cadena cuando se imprima.

getStringWidth#

Devuelve el ancho, en píxeles, de una cadena cuando se representa en la pantalla V5 Brain.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Parámetro

Tipo

Descripción

cstr

const char*

El texto a medir, proporcionado como una cadena de estilo C (por ejemplo, “Hello”).

Return Values

Devuelve un int32_t que representa el ancho de la cadena en píxeles cuando se representa en la pantalla Cerebro.

Notes
  • El ancho devuelto depende de la fuente de pantalla seleccionada actualmente.

  • Esta función mide la cadena sin dibujarla en la pantalla.

  • El ancho devuelto refleja cómo aparecería la cadena cuando se imprima.

printAt#

Imprime texto, números o valores booleanos en una coordenada específica en la pantalla V5 Brain.

Available Functions

1 — Imprime la salida formateada en la ubicación de píxel especificada.

void printAt(
    int32_t    x,
    int32_t    y,
    const char* format,
    ... );

2 — Imprime la salida formateada en la ubicación de píxel especificada y establece si el fondo del texto es opaco o transparente.

void printAt(
    int32_t    x,
    int32_t    y,
    bool       bOpaque,
    const char* format,
    ... );

Parameters

Parámetro

Tipo

Descripción

x

int32_t

La posición x para imprimir, referenciada al origen de la pantalla.

y

int32_t

La posición y para imprimir, referenciada al origen de la pantalla.

bOpaque

bool

Controla si el texto impreso se dibuja de forma opaca o transparente:

  • true — El fondo del texto impreso se rellena con el color de relleno actual.
  • false — El texto se dibuja de forma transparente y el fondo no se rellena.

format

const char*

Una cadena de formato que controla lo que se imprime en la pantalla (por ejemplo, “Score: %d”).

…

Uno o más valores adicionales que se insertan en la cadena de formato, separados por comas.

Return Values

Esta función no devuelve un valor.

Notes Examples
// Print "Center" at the center of the screen
Brain.Screen.printAt(220, 120, "Center");

Una captura de pantalla de la pantalla Cerebro V5 con texto blanco que dice Centro, centrado en la pantalla.

clearScreen#

Borra todos los dibujos y el texto de la pantalla Cerebro y restablece la posición del cursor a la fila 1, columna 1.

Available Functions

1 — Borra la pantalla a negro.

void clearScreen();

2 — Borra la pantalla con un objeto predefinido o custom color.

void clearScreen(
    const color& color );

3 — Borra la pantalla con un valor de color hexadecimal.

void clearScreen(
    const char* color );

4 — Borra la pantalla con un valor de tono.

void clearScreen(
    int hue );

Parameters

Parámetro

Tipo

Descripción

color

const color&

Borra la pantalla usando un objeto de color color Los colores predefinidos incluyen:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
También puede usar un objeto de color personalizado.

color

const char*

Borra la pantalla utilizando un valor de color hexadecimal representado como una cadena (por ejemplo, “#000000”).

hue

int

Borra la pantalla utilizando un valor de tono entero en el rango de 0359, que representa grados alrededor de una rueda de color.

Return Values

Esta función no devuelve un valor.

Notes
  • El valor del parámetro hue se basa en una rueda de color circular, como se muestra a continuación, donde los valores representan grados alrededor de la rueda (por ejemplo, rojo cerca de 0°, verde cerca de 120° y azul cerca de 240°).

Una rueda de colores que muestra el rango de colores de 0 a 359, donde rojo es 0, verde es 120 y azul es 240.

Examples
// Clear screen after 2 seconds
Brain.Screen.print("VEXcode");
wait(2, seconds);
Brain.Screen.clearScreen();


// Clear screen to blue after 2 seconds
Brain.Screen.print("VEXcode");
wait(2, seconds);
Brain.Screen.clearScreen(blue);

Una captura de pantalla de la pantalla V5 Brain con toda el área imprimible de color azul brillante.

setFont#

Establece la fuente utilizada para el texto que se muestra en la pantalla V5 Brain.

Esto controla la fuente aplicada a la salida de texto posterior cuando se utilizan funciones de texto de pantalla como print.

Available Functions
void setFont(
  fontType font );

Parameters

Parámetro

Tipo

Descripción

font

fontType

Establece la fuente en una de las siguientes:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop60
  • prop20
  • prop30
  • prop40
  • fontType::cjk16 cjk16 — Puede imprimir caracteres chinos, japoneses y coreanos.
    • Chino simplificado: se puede ver hasta la columna 28.
    • Chino tradicional: se puede ver hasta la columna 28.
    • Japonés (Kanji) — Se puede ver hasta la columna 28.
    • Coreano (hangul): se puede ver hasta la columna 30.
Estas opciones se muestran a continuación.

Captura de pantalla TA de la pantalla V5 Brain con números y letras impresas en blanco en la esquina superior izquierda en fuente MONO 12. Muestra de la A a la Z en una línea, en aproximadamente una cuarta parte del ancho de la pantalla. En la esquina inferior izquierda se leen 80 columnas y 20 filas.
mono12

La misma imagen que la anterior, con fuente Mono 15. Muestra de la A a la Z en una línea, a lo largo de casi la mitad del ancho de la pantalla. En la esquina inferior izquierda se lee 68 columnas y 16 filas.
mono15

La misma imagen que la anterior, con fuente Mono 20. Muestra de la A a la Z en una línea, en casi dos tercios del ancho de la pantalla. En la esquina inferior izquierda se lee 48 columnas y 12 filas.
mono20

La misma imagen que la anterior, con fuente Mono 30. Muestra de la A a la Z en una línea, en casi todo el ancho de la pantalla. En la esquina inferior izquierda se leen 32 columnas y 8 filas.
mono30

La misma imagen que la anterior, con fuente Mono 40. Muestra A-X en una línea, que abarca el ancho de la pantalla. En la esquina inferior izquierda se leen 24 columnas y 6 filas.
mono40

La misma imagen que la anterior, con fuente Mono 60. Muestra A-P en una línea, que abarca el ancho de la pantalla. En la parte inferior indica 16 columnas y 4 filas.
mono60

La misma imagen que la anterior, con la fuente de la Propuesta 20. Muestra de la A a la Z en una línea, en casi dos tercios del ancho de la pantalla. En la esquina inferior izquierda se lee 48 columnas y 12 filas.
prop20

La misma imagen que la anterior, con fuente de la Propuesta 30. Muestra de la A a la Z en una línea, que abarca casi el ancho de la pantalla. En la esquina inferior izquierda se leen 32 columnas y 8 filas.
prop30

La misma imagen que la anterior, con fuente de la Propuesta 40. Muestra A-U en una línea, que abarca el ancho de la pantalla. En la esquina inferior izquierda se leen 24 columnas y 6 filas.
prop40

La misma imagen que la anterior, con la fuente de la Propuesta 60. Muestra A-N en una línea, que abarca el ancho de la pantalla. En la parte inferior se lee 15 columnas y 4 filas.
prop60

La misma imagen que la anterior, con fuente CJK 16. Muestra de la A a la Z en una línea, que abarca aproximadamente dos tercios de la pantalla. Las líneas posteriores leen VEXcode en chino simplificado, chino tradicional, coreano y japonés. En la parte inferior se leen 43 columnas y 12 filas.
fontType::cjk16

Return Values

Esta función no devuelve un valor.

Examples
// Print larger text
Brain.Screen.setFont(mono40);
Brain.Screen.print("VEX");

Una captura de pantalla de la pantalla V5 Brain que muestra texto blanco que dice VEX en una fuente más grande que la predeterminada, en la esquina superior izquierda.


// Print in Chinese
Brain.Screen.setFont(fontType::cjk16);
Brain.Screen.print("VEX机器人");

Una captura de pantalla de la pantalla V5 Brain que muestra el texto机器人 "VEX" en fuente china en la esquina superior izquierda.

setPenWidth#

Establece el grosor de las líneas dibujadas y los contornos de forma.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Parámetro

Tipo

Descripción

width

uint32_t

El ancho del lápiz, en píxeles, de 0 a 32.

Return Values

Esta función no devuelve un valor.

Notes Examples
// Draw a rectangle with a pen width of 10
Brain.Screen.setPenWidth(10);
Brain.Screen.drawRectangle(50, 50, 130, 60);

Una captura de pantalla de la pantalla V5 Brain que muestra un rectángulo con bordes gruesos impresos en el cuadrante superior izquierdo de la pantalla.

setPenColor#

Establece el color del texto, los píxeles, las líneas y los contornos de forma.

Available Functions

1 — Establece el color del bolígrafo mediante un objeto predefinido o color personalizado.

void setPenColor(
    const color& color );

2 — Establece el color del bolígrafo utilizando un valor de color hexadecimal.

void setPenColor(
    const char* color );

3 — Establece el color del bolígrafo utilizando un valor de tono.

void setPenColor(
    int hue );

Parameters

Parámetro

Tipo

Descripción

color

const color&

Establece el color del lápiz usando un objeto de color color Los colores predefinidos incluyen:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent

color

const char*

Establece el color del lápiz utilizando un valor de color hexadecimal representado como una cadena (por ejemplo, “#FF0000”).

hue

int

Establece el color del lápiz usando un valor de tono entero en el rango 0–359, que representa grados alrededor de una rueda de color (por ejemplo, 0 es rojo, 120 es verde y 240 es azul).

Return Values

Esta función no devuelve un valor.

Notes
  • El color predeterminado de la pluma al comienzo de un proyecto es el white.

  • El color del bolígrafo se utiliza para contornos de formas (como con drawCircle o drawRectangle), texto y salida numérica (con print y printAt), y píxeles individuales dibujados con drawPixel.

  • El valor del parámetro hue se basa en una rueda de color circular, como se muestra a continuación, donde los valores representan grados alrededor de la rueda (por ejemplo, rojo cerca de 0°, verde cerca de 120° y azul cerca de 240°).

Una rueda de colores que muestra el rango de colores de 0 a 359, donde rojo es 0, verde es 120 y azul es 240.

Examples
// Draw a rectangle with orange borders
Brain.Screen.setPenColor(orange);
Brain.Screen.drawRectangle(50, 50, 130, 60);

Una captura de pantalla de la pantalla V5 Brain que muestra un rectángulo dibujado en naranja en el cuadrante superior izquierdo de la pantalla.

setFillColor#

Establece el color de relleno utilizado cuando se dibujan formas.

Available Functions

1 — Establece el color de relleno usando un objeto predefinido o custom color.

void setFillColor(
    const color& color );

2 — Establece el color de relleno utilizando un valor de color hexadecimal.

void setFillColor(
    const char* color );

3 — Establece el color de relleno usando un valor de tono.

void setFillColor(
    int hue );

Parameters

Parámetro

Tipo

Descripción

color

const color&

Establece el color de relleno usando un objeto de color color Los colores predefinidos incluyen:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent

color

const char*

Establece el color de relleno utilizando un valor de color hexadecimal representado como una cadena (por ejemplo, “#00FF00”).

hue

int

Establece el color de relleno usando un valor de tono entero en el rango 0–359, que representa grados alrededor de una rueda de color (por ejemplo, 0 es rojo, 120 es verde y 240 es azul).

Return Values

Esta función no devuelve un valor.

Notes
  • El color de relleno predeterminado al comienzo de un proyecto es black.

  • El color de relleno se utiliza para el interior de las formas (como con drawCircle o drawRectangle).

  • El color de relleno se utiliza como color de fondo para el texto impreso (como con print y printAt).

    • Si se utiliza transparent con texto impreso, el fondo será black.

  • El valor del parámetro hue se basa en una rueda de color circular, como se muestra a continuación, donde los valores representan grados alrededor de la rueda (por ejemplo, rojo cerca de 0°, verde cerca de 120° y azul cerca de 240°).

Una rueda de colores que muestra el rango de colores de 0 a 359, donde rojo es 0, verde es 120 y azul es 240.

Examples
// Draw a rectangle filled with purple
  Brain.Screen.setFillColor(purple);
  Brain.Screen.drawRectangle(50, 100, 130, 60);

Una captura de pantalla de la pantalla V5 Brain que muestra un rectángulo lleno de púrpura en el cuadrante inferior izquierdo de la pantalla.

setOrigin#

Establece el origen utilizado para el dibujo y la impresión basada en coordenadas en la pantalla Brain.

Available Functions
void setOrigin(
  int32_t x,
  int32_t y );

Parameters

Parámetro

Tipo

Descripción

x

int32_t

La posición x del origen en relación con la esquina superior izquierda de la pantalla Cerebro de 0 a 479.

y

int32_t

La posición y del origen en relación con la esquina superior izquierda de la pantalla Cerebro de 0 a 239.

Return Values

Esta función no devuelve un valor.

Notes
  • El origen predeterminado es la esquina superior izquierda de la pantalla en la coordenada (0, 0).

  • El origen se aplica a funciones de coordenadas como drawLine, drawRectangle, drawCircle, y printAt.

  • El origen permanece vigente hasta que se cambie de nuevo o se restablezca el proyecto.

setClipRegion#

Define un área rectangular en la pantalla donde se confinarán todos los dibujos y el texto. No se mostrará ningún contenido fuera de esta región.

Available Functions
void setClipRegion(
  int x,
  int y,
  int width,
  int height );

Parameters

Parámetro

Tipo

Descripción

x

int

La coordenada x de la esquina superior izquierda de la región del clip, dada como un número entero de 0 a 479.

y

int

La coordenada y de la esquina superior izquierda de la región del clip, dada como un número entero de 0 a 239.

width

int

El ancho de la región del clip en píxeles, dado como un número entero de 0 a 479.

height

int

La altura de la región del clip en píxeles, dada como un número entero de 0 a 239.

Return Values

Esta función no devuelve un valor.

Notes
  • Las funciones de dibujo aún se ejecutan incluso si caen fuera de la región del clip, pero solo la parte dentro de la región es visible.

  • Las coordenadas x e y son relativas al origen actual de la pantalla, que se puede cambiar utilizando setOrigin.

  • La región de clip se aplica solo al subproceso actual.

  • Establecer una nueva región de clip reemplaza cualquier región de clip establecida previamente para el subproceso actual.

Examples
// Restrict text and drawings to a specific region
Brain.Screen.setClipRegion(0, 0, 120, 120);
Brain.Screen.drawRectangle(60, 60, 100, 100, red);
Brain.Screen.printAt(60, 60, "Cut off!");

Una captura de pantalla de la pantalla del cerebro V5 con texto blanco que dice Corte de con un cuadrado rojo sólido directamente debajo de él en el cuadrante superior izquierdo, reflejando lo que está impreso dentro de la región del clip.

drawPixel#

Dibuja un píxel en la pantalla V5 Brain en la ubicación de píxeles x e y seleccionada.

Available Functions
void drawPixel(
  int x,
  int y );

Parameters

Parámetro

Tipo

Descripción

x

int

La coordenada x donde se dibujará el píxel, dada como un número entero de 0 a 479.

y

int

La coordenada y donde se dibujará el píxel, dada como un número entero de 0 a 239.

Return Values

Esta función no devuelve un valor.

Notes
  • Los píxeles se dibujan utilizando el color del lápiz actual configurado con setPenColor.

  • Las coordenadas x e y son relativas al origen actual de la pantalla, que se puede configurar utilizando setOrigin.

  • Si la ubicación de píxel especificada está fuera de los límites de la pantalla, el píxel no se dibuja.

Examples
// Draw the pixels marking the corners of a square
Brain.Screen.drawPixel(250, 100);
Brain.Screen.drawPixel(275, 100);
Brain.Screen.drawPixel(250, 125);
Brain.Screen.drawPixel(275, 125);

Una captura de pantalla de la pantalla V5 Brain que muestra una variedad de píxeles que muestran las esquinas de un cuadrado cerca del centro de la pantalla.

drawLine#

Dibuja una línea recta que conecta dos puntos en la pantalla V5 Brain.

Available Functions
void drawLine(
  int x1,
  int y1,
  int x2,
  int y2 );

Parameters

Parámetro

Tipo

Descripción

x1

int

La coordenada x inicial de la línea, dada como un número entero de 0 a 479.

y1

int

La coordenada y inicial de la línea, dada como un número entero de 0 a 239.

x2

int

La coordenada x final de la línea, dada como un número entero de 0 a 479.

y2

int

La coordenada y final de la línea, dada como un número entero de 0 a 239.

Return Values

Esta función no devuelve un valor.

Notes
  • Las líneas se dibujan utilizando el color de pluma actual configurado con setPenColor.

  • El ancho de la línea está determinado por el ancho actual del bolígrafo establecido con setPenWidth.

  • Las coordenadas x e y son relativas al origen actual de la pantalla, que se puede configurar utilizando setOrigin.

  • Si alguna parte de la línea se encuentra fuera de los límites de la pantalla, solo se dibuja la parte visible.

Examples
// Draw a line from the top left to bottom right of the screen
Brain.Screen.drawLine(0, 0, 479, 239);

Una captura de pantalla de la pantalla V5 Brain muestra una delgada línea diagonal a través del centro, desde la esquina superior izquierda hasta la esquina inferior derecha.

drawRectangle#

Dibuja un rectángulo en la pantalla V5 Brain en la posición y el tamaño especificados.

Available Functions

1 — Dibuja y rellena un rectángulo con el color de relleno configurado actualmente.

void drawRectangle(
    int x,
    int y,
    int width,
    int height );

2 — Dibuja y rellena un rectángulo con un objeto predefinido o custom color.

void drawRectangle(
    int           x,
    int           y,
    int           width,
    int           height,
    const color&  color );

3 — Dibuja y rellena un rectángulo con un valor de color hexadecimal.

void drawRectangle(
    int           x,
    int           y,
    int           width,
    int           height,
    const char*   color );

4 — Dibuja y rellena un rectángulo con un valor de tono.

void drawRectangle(
    int x,
    int y,
    int width,
    int height,
    int hue );

Parameters

Parámetro

Tipo

Descripción

x

int

La coordenada x de la esquina superior izquierda del rectángulo, dada como un número entero de 0 a 479.

y

int

La coordenada y de la esquina superior izquierda del rectángulo, dada como un número entero de 0 a 239.

width

int

El ancho del rectángulo, dado como un número entero de 0 a 479.

height

int

La altura del rectángulo, dada como un número entero de 0 a 239.

color

const color&

Rellena el rectángulo usando un objeto de color color Los colores predefinidos incluyen:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
También se puede usar un objeto de color personalizado.

color

const char*

Rellena el rectángulo con un valor de color hexadecimal (por ejemplo, “#FF0000”).

hue

int

Rellena el rectángulo utilizando un valor de tono en el rango de 0a359.

Return Values

Esta función no devuelve un valor.

Notes
  • El contorno del rectángulo se dibuja utilizando el color del bolígrafo actual establecido con setPenColor.

  • El grosor del contorno está determinado por el ancho actual del bolígrafo establecido con setPenWidth.

  • Cuando no se proporciona ningún parámetro de color, el interior del rectángulo se rellena utilizando el conjunto de colores de relleno actual con setFillColor.

  • Las coordenadas x e y son relativas al origen actual de la pantalla, que se puede cambiar utilizando setOrigin.

  • Si alguna parte del rectángulo se encuentra fuera de los límites de la pantalla, solo se dibuja la parte visible.

  • El valor del parámetro hue se basa en una rueda de color circular, como se muestra a continuación, donde los valores representan grados alrededor de la rueda (por ejemplo, rojo cerca de 0°, verde cerca de 120° y azul cerca de 240°).

Una rueda de colores que muestra el rango de colores de 0 a 359, donde rojo es 0, verde es 120 y azul es 240.

Examples
// Draw a rectangle on the screen
Brain.Screen.drawRectangle(50, 50, 130, 60);

Una captura de pantalla de la pantalla del V5 Brain muestra un rectángulo con un delgado borde blanco impreso en el cuadrante superior izquierdo.

drawCircle#

Dibuja un círculo en la pantalla V5 Brain en la posición y el radio especificados.

Available Functions

1 — Dibuja y rellena un círculo con el color de relleno configurado actualmente.

void drawCircle(
    int x,
    int y,
    int radius );

2 — Dibuja y rellena un círculo con un objeto predefinido o color personalizado.

void drawCircle(
    int           x,
    int           y,
    int           radius,
    const color&  color );

3 — Dibuja y rellena un círculo con un valor de color hexadecimal.

void drawCircle(
    int           x,
    int           y,
    int           radius,
    const char*   color );

4 — Dibuja y rellena un círculo con un valor de tono.

void drawCircle(
    int x,
    int y,
    int radius,
    int hue );

Parameters

Parámetro

Tipo

Descripción

x

int

La coordenada x del centro del círculo, dada como un número entero de 0 a 479.

y

int

La coordenada y del centro del círculo, dada como un número entero de 0 a 239.

radius

int

El radio del círculo, dado como un número entero de 0 a 239 píxeles.

color

const color&

Rellena el círculo usando un objeto de color color Los colores predefinidos incluyen:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
También se puede usar un objeto de color personalizado.

color

const char*

Rellena el círculo con un valor de color hexadecimal (por ejemplo, “#FF0000”).

hue

int

Rellena el círculo usando un valor de tono en el rango de 0a359.

Return Values

Esta función no devuelve un valor.

Notes
  • El contorno del círculo se dibuja utilizando el color del bolígrafo actual establecido con setPenColor.

  • El grosor del contorno está determinado por el ancho actual del bolígrafo establecido con setPenWidth.

  • Cuando no se proporciona ningún parámetro de color, el interior del círculo se rellena utilizando el conjunto de colores de relleno actual con setFillColor.

  • Las coordenadas x e y son relativas al origen actual de la pantalla, que se puede cambiar utilizando setOrigin.

  • El valor del parámetro hue se basa en una rueda de color circular, como se muestra a continuación, donde los valores representan grados alrededor de la rueda (por ejemplo, rojo cerca de 0°, verde cerca de 120° y azul cerca de 240°).

Una rueda de colores que muestra el rango de colores de 0 a 359, donde rojo es 0, verde es 120 y azul es 240.

Examples
// Draw a circle on the screen
Brain.Screen.drawCircle(240, 120, 40);

Una captura de pantalla de la pantalla V5 Brain muestra un círculo con un delgado borde blanco dibujado en el centro.

drawImageFromFile#

Dibuja una imagen en la pantalla V5 Brain utilizando un archivo de imagen almacenado en la tarjeta SD.

Available Functions
bool drawImageFromFile(
  const char* name,
  int x,
  int y );

Parameters

Parámetro

Tipo

Descripción

name

const char*

El nombre de archivo de la imagen en la tarjeta SD. El archivo debe tener una extensión .bmp o .png.

x

int

La coordenada x, en píxeles de 0 a 479, en la que se dibujará el borde izquierdo de la imagen.

y

int

La coordenada y, en píxeles de 0 a 239, en la que se dibujará el borde superior de la imagen.

Return Values

Devuelve un booleano que indica si la imagen se dibujó correctamente:

  • true — La imagen se cargó y dibujó correctamente en la pantalla.
  • false — La imagen no se pudo dibujar (por ejemplo, si el archivo no existe o no es válido).

Notes
  • Los formatos de imagen admitidos son .bmp y .png.

  • El tamaño del archivo de imagen no debe exceder los 512 KB.

    • Se recomienda la codificación RLE de 8 bits para minimizar el tamaño del archivo.

  • Las dimensiones máximas de imagen admitidas son del tamaño de la pantalla Brain (aproximadamente 479 x 239 píxeles).

  • Las coordenadas x e y son relativas al origen actual de la pantalla, que se puede cambiar utilizando setOrigin.

Examples
// Draw a bmp file on the Brain's screen at coordinate 0, 0
Brain.Screen.drawImageFromFile("test_image.bmp", 0, 0);

render#

Habilita el doble búfer para la pantalla del cerebro. Una vez activada, las funciones de dibujo (como texto, formas o imágenes) ya no aparecerán inmediatamente durante el resto del proyecto. En su lugar, las actualizaciones solo se mostrarán cuando se vuelva a usar la renderización render 1). Esto permite actualizaciones de pantalla más fluidas y controladas, pero implica que no se verá nada hasta que se use la renderización render.

Available Functions

1 — Habilita el búfer doble o representa el búfer posterior en la pantalla.

bool render();

2 — Renderiza el búfer posterior a la pantalla con control sobre el comportamiento de sincronización vertical y la ejecución opcional del programador.

bool render(
    bool bVsyncWait,
    bool bRunScheduler = true );

Parameters

Parámetro

Tipo

Descripción

bVsyncWait

bool

​

  • true — Espere a que la pantalla se actualice verticalmente antes de renderizar para reducir el desgarro visual.
  • false — No espere a que la pantalla se actualice verticalmente antes de renderizar.

bRunScheduler

bool

Opcional.

  • true (predeterminado) — Permitir que las tareas en segundo plano se ejecuten mientras se espera para renderizar.
  • false — No permitir que las tareas en segundo plano se ejecuten mientras se espera para renderizar.

Return Values

Devuelve un booleano que indica si los dibujos guardados en el búfer se representaron correctamente en la pantalla:

  • true — Los dibujos se representaron correctamente en la pantalla.
  • false — Los dibujos no se pudieron representar en la pantalla.
  • Notes
    • Llamar render requerirá que se utilice render para el resto del proyecto.

    Examples
    Brain.Screen.render();
    
    // Draw text to the back buffer
    Brain.Screen.print("Render later...");
    
    // Wait for a screen press to render drawings
    while (!Brain.Screen.pressing()) {
      wait(20, msec);
    }
    Brain.Screen.render();
    
    

pressing#

Informa si la pantalla V5 Brain se está presionando actualmente.

Available Functions
bool pressing();

Parameters

Esta función no acepta ningún parámetro.

Return Values

Devuelve un booleano que indica el estado presionado actual de la pantalla:true — La pantalla se está presionando actualmente. o false — La pantalla no se está presionando.

Examples
// Change the screen's color after it's pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.setFillColor(green);
Brain.Screen.drawRectangle(0, 0, 479, 239);


// Display different messages after the screen is pressed
while (!Brain.Screen.pressing()) {
  wait(5, msec);
}
Brain.Screen.print("First message!");
Brain.Screen.newLine();

// Lift finger to press the screen again
while (Brain.Screen.pressing()) {
  wait(5, msec);
}
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}
Brain.Screen.print("Second message!");
Brain.Screen.newLine();

xPosition#

Devuelve la coordenada x de la última pulsación en la pantalla V5 Brain.

Available Functions
int32_t xPosition();

Parameters

Esta función no acepta ningún parámetro.

Return Values

Devuelve un int32_t que representa la coordenada x, en píxeles de 0 a 479, de la última prensa de pantalla.

Examples
// Display a circle where the screen is pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.drawCircle(Brain.Screen.xPosition(), Brain.Screen.yPosition(), 20, white);

yPosition#

Devuelve la coordenada y de la última pulsación en la pantalla V5 Brain.

Available Functions
int32_t yPosition();

Parameters

Esta función no acepta ningún parámetro.

Return Values

Devuelve un int32_t que representa la coordenada y, en píxeles de 0 a 239, de la última prensa de pantalla.

Examples
// Display a circle where the screen is pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.drawCircle(Brain.Screen.xPosition(), Brain.Screen.yPosition(), 20, white);

pressed#

Registra una función que se llamará cuando se presione la pantalla V5 Brain.

Available Functions

1 — Llama a una función cuando se presiona la pantalla.

void pressed(
    void (*callback)(void)
);

2 — Llama a una función cuando se presiona la pantalla y pasa un argumento definido por el usuario a la función de devolución de llamada.

void pressed(
    void (*callback)(void*),
    void* arg );

Parameters

Parámetro

Tipo

Descripción

callback

void (*)(void)

Una función que se llama cuando se presiona la pantalla.

callback

void ()(void)

Una función que se llama cuando se presiona la pantalla y recibe un argumento definido por el usuario.

arg

void*

Un valor definido por el usuario que se pasa a la función de devolución de llamada cuando se presiona la pantalla.

Return Values

Esta función no devuelve un valor.

Notes
  • La función de devolución de llamada se ejecuta cada vez que se presiona la pantalla Cerebro.

  • Solo se puede registrar una función de devolución de llamada a la vez; la llamada pressed nuevamente reemplaza la devolución de llamada anterior.

  • La función de devolución de llamada debe devolver void.

Examples

Defina la función de devolución de llamada (fuera de int main())

// Tracks how many times the screen is pressed.
void onScreenPressed(void* arg) {
  int* count = (int*)arg;
  (*count)++;

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Pressed %d times", *count);
}

Registrar la devolución de llamada dentro de int main()

int main() {
  int pressCount = 0;

  // Register the callback and pass a value to update.
  Brain.Screen.pressed(onScreenPressed, &pressCount);

  while (true) {
    wait(20, msec);
  }
}

released#

Registra una función que se llamará cuando se libere la pantalla V5 Brain después de presionarla.

Available Functions

1 — Llama a una función cuando se libera la pantalla después de presionarla.

void released(
    void (*callback)(void)
);

2 — Llama a una función cuando se libera la pantalla después de presionarla y pasa un argumento definido por el usuario a la función de devolución de llamada.

void released(
    void (*callback)(void*),
    void* arg );

Parameters

Parámetro

Tipo

Descripción

callback

void (*)(void)

Una función que se llama cuando la pantalla se libera después de ser presionada.

callback

void ()(void)

Una función que se llama cuando se libera la pantalla después de presionarla y recibe un argumento definido por el usuario.

arg

void*

Un valor definido por el usuario que se pasa a la función de devolución de llamada cuando se libera la pantalla después de presionarla.

Return Values

Esta función no devuelve un valor.

Notes
  • La función de devolución de llamada se ejecuta cada vez que se libera la pantalla Brain después de presionarla.

  • Solo se puede registrar una función de devolución de llamada a la vez; la llamada released nuevamente reemplaza la devolución de llamada anterior.

  • La función de devolución de llamada debe devolver void.

Examples

Defina la función de devolución de llamada (fuera de int main())

// Tracks how many times the screen is released.
void onScreenReleased(void* arg) {
  int* count = (int*)arg;
  (*count)++;

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Released %d times", *count);
}

Registrar la devolución de llamada dentro de int main()

int main() {
  int releaseCount = 0;

  // Register the callback and pass a value to update.
  Brain.Screen.released(onScreenReleased, &releaseCount);

  while (true) {
    wait(20, msec);
  }
}