Skärm#

Introduktion#

Klassen screen är härledd från basklassen brain. Den styr hur V5 Brain visar text, siffror och grafik på pekskärmen, och hur den reagerar på pekinmatning.

Som standard är teckensnittet för utskrift till Brain monospaced small vilket har 12 rader och 48 kolumner.

För att rita är hjärnans upplösning 480 x 240 pixlar.

V5 Brain-skärmen med röda rutnätslinjer som visar layouten med totalt 12 rader och 48 kolumner. Pixeldimensionerna är 479 breda och 239 höga. Det övre vänstra hörnet börjar vid (0,0) pixlar och rad 1, kolumn 1, medan det nedre högra hörnet slutar vid (479, 239) pixlar och rad 12, kolumn 48.

Tillträde#

Klassen screen kan nås genom:

Brain.Screen

Anteckningar#

  • Objektet screen tillhandahålls av hjärnan. Det är inte konstruerat direkt.

  • Projekt använder ett enda globalt Brain objekt, så skärmfunktioner anropas med Brain.Screen.

Exempel#

/* 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!");

Medlemsfunktioner#

Klassen screen innehåller följande medlemsfunktioner:

  • print — Skriver ut formaterad text, siffror eller booleska värden till hjärnskärmen.

  • setCursor — Flyttar textmarkören till en angiven rad och kolumn.

  • newLine — Rensar resten av den aktuella raden och flyttar markören till nästa rad.

  • clearLine — Rensar resten av den aktuella raden eller rensar en angiven rad.

  • row — Returnerar raden där texten ska skrivas ut.

  • column — Returnerar kolumnen där texten ska skrivas ut.

  • getStringHeight — Returnerar höjden på en sträng i pixlar med det aktuella teckensnittet.

  • getStringWidth — Returnerar bredden på en sträng i pixlar med det aktuella teckensnittet.

  • printAt — Skriver ut formaterad text vid en x-, y-pixelposition.

  • clearScreen — Tar bort alla teckningar och text från hjärnskärmen.

  • setFont — Anger vilket teckensnitt som används för utskrift på skärmen.

  • setPenWidth — Anger tjockleken på ritade linjer och formens konturer.

  • setPenColor — Ställer in färgen på text, pixlar, linjer och konturer.

  • setFillColor — Ställer in fyllningsfärgen för ritade former och utskrivna textbakgrunder.

  • setOrigin — Anger origo som används för skärmkoordinater.

  • setClipRegion — Begränsar skärmutdata till ett rektangulärt område.

  • drawPixel — Ritar en pixel vid en koordinat.

  • drawLine — Ritar en linje mellan två punkter.

  • drawRectangle — Ritar en rektangel vid en x-, y-position med en angiven storlek.

  • drawCircle — Ritar en cirkel vid en x-, y-position med en angiven radie.

  • drawImageFromFile — Ritar en bild från en SD-kortfil till skärmen.

  • render — Aktiverar dubbel buffring eller renderar bakbufferten till skärmen.

  • pressing — Returnerar om skärmen trycks ned för närvarande.

  • xPosition — Returnerar x-koordinaten för det senaste skärmtrycket.

  • yPosition — Returnerar y-koordinaten för det senaste skärmtrycket.

  • pressed — Registrerar en återuppringningsfunktion som körs när skärmen trycks ned.

  • released — Registrerar en återuppringningsfunktion som körs när skärmen släpps efter att ha tryckts ned.

Innan några screen medlemsfunktioner anropas måste en brain instans skapas, som visas nedan:

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

print#

Visar text, siffror eller booleska värden på V5 Brain-skärmen.

Available Functions

1 — Skriver ut formaterad text med hjälp av stränglitteraler eller skrivskyddade strängar i C-stil.

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

2 — Skriver ut formaterad text med hjälp av modifierbara teckenuppsättningar.

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

Parameters

Parameter

Typ

Beskrivning

format

const char*

En formatsträng som anges som en stränglitteral eller skrivskyddad C-sträng (till exempel “Score: %d”).

format

char*

En formatsträng som tillhandahålls som en modifierbar teckenmatris.

…

Ett eller flera ytterligare värden som infogas i formatsträngen, separerade med kommatecken.

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Output begins at the current cursor position on the screen.

  • Utskriven text använder det aktuella skärmteckensnittet

  • Tryckt text använder den aktuella pennfärgen

  • Text som skrivs ut med print skrivs alltid ut med en bakgrund, och bakgrundsfärgen bestäms av den aktuella fyllningsfärgen.

  • När en formatsträng används måste antalet och typerna av värden som skickas matcha formatspecificerare i strängen.

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

En skärmdump av V5-hjärnan som visar Hello, Robot! tryckt på skärmen i det övre vänstra hörnet med vit text.

setCursor#

Flyttar markören till en specifik rad och kolumn på V5 Brain-skärmen. Nästa print anrop börjar skriva ut på den platsen.

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

Parameters

Parameter

Typ

Beskrivning

row

int32_t

Raden att flytta markören till.

col

int32_t

Kolumnen att flytta markören till.

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Påverkar var efterföljande textutmatning börjar när print används.

  • Rader och kolumner baseras på nuvarande inställt skärmteckensnitt.

  • Standardteckensnittet (mono20) använder 12 rader och 48 kolumner.

  • Att anropa setCursor påverkar endast positionen för efterföljande textutmatning.

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

En skärmdump av V5-hjärnan som visar rad 3 kolumn 12 tryckt i den övre delen nära mitten av skärmen, på den positionen.

newLine#

Flyttar markören till början av nästa rad på hjärnskärmen.

Available Functions
void newLine();

Parameters

Den här funktionen accepterar inga parametrar.

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Om markören är mitt i en mening, kommer newLine att rensa resten av raden efter markören innan nästa rad flyttas.

  • Efter att ha anropat newLineplaceras markören vid den första kolumnen på nästa rad.

  • Markörposition och radnumrering ställs in med setCursor.

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

En skärmdump av V5 Brain-skärmen som visar två rader vit text i det övre vänstra hörnet. Den översta raden är rad 1 och den andra raden direkt under är rad 2.

clearLine#

Tar bort text från en rad på V5 Brain-skärmen.

Available Functions

1 — Tar bort resten av den aktuella raden från markörens position.

void clearLine();

2 — Rensar den angivna raden med den för närvarande konfigurerade fyllningsfärgen.

void clearLine(
    int number );

3 — Rensar den angivna raden med ett fördefinierat objekt eller ett anpassad färg-objekt.

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

4 — Rensar den angivna raden med ett hexadecimalt färgvärde.

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

5 — Rensar den angivna raden med ett nyansvärde.

void clearLine(
    int number,
    int hue );

Parameters

Parameter

Typ

Beskrivning

number

int

Radnumret som ska rensas. Radnumreringen börjar på 1.

color

const color&

Rensar raden med ett objekt med color färg. Fördefinierade färger inkluderar:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Detta kan också använda ett anpassat färgobjekt.

color

const char*

Rensar raden med ett hexadecimalt färgvärde (till exempel “#000000”).

hue

int

Rensar raden med ett heltal nyansvärde i intervallet 0–359, som representerar grader runt en färgcirkel.

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Att radera en rad ändrar inte markörens aktuella position.

  • Markörposition och radnumrering ställs in med setCursor.

  • Parametervärdet hue är baserat på ett cirkulärt färghjul, som visas nedan, där värden representerar grader runt hjulet (till exempel rött nära 0°, grönt nära 120° och blått nära 240°).

En färgcirkel som visar färgskalan från 0 till 359, där rött är 0, grönt är 120 och blått är 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#

Returnerar raden där texten ska skrivas ut på V5 Brain-skärmen.

Available Functions
int32_t row();

Parameters

Den här funktionen accepterar inga parametrar.

Return Values

Returnerar int32_t som representerar raden där texten ska skrivas ut.

Radnumreringen börjar på 1.

Notes
  • Markörens position är baserad på det aktuella skärmteckensnittet

  • Det returnerade värdet anger var nästa utskrivna resultat kommer att visas.

  • Radvärdet ändras när text skrivs ut eller när setCursor anropas.

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

En skärmdump av V5 Brain-skärmen som visar texten 3 i vitt i skärmens övre vänstra kvadrant, vid rad 3 kolumn 12.

column#

Returnerar kolumnen där texten ska skrivas ut på V5 Brain-skärmen.

Available Functions
int32_t column();

Parameters

Den här funktionen accepterar inga parametrar.

Return Values

Returnerar int32_t som representerar kolumnen där texten ska skrivas ut.

Kolumnnumreringen börjar på 1.

Notes
  • Markörens position är baserad på det aktuella skärmteckensnittet

  • Det returnerade värdet anger var nästa utskrivna resultat kommer att visas.

  • Kolumnvärdet ändras när text skrivs ut eller när setCursor anropas.

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

En skärmdump av V5 Brain-skärmen som visar texten 15 i vitt i skärmens övre vänstra kvadrant, vid rad 3 kolumn 15-positionen.

getStringHeight#

Returnerar höjden, i pixlar, på en sträng när den renderas på V5 Brain-skärmen.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Parameter

Typ

Beskrivning

cstr

const char*

Texten som ska mätas, angiven som en C-stilsträng (till exempel “Hello”).

Return Values

Returnerar ett int32_t som representerar strängens höjd i pixlar när den renderas på hjärnskärmen.

Notes
  • Den returnerade höjden beror på det för närvarande valda skärmteckensnittet

  • Den här funktionen mäter strängen utan att rita den på skärmen.

  • Den returnerade höjden återspeglar hur strängen skulle se ut när den skrivs ut.

getStringWidth#

Returnerar bredden, i pixlar, på en sträng när den renderas på V5 Brain-skärmen.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Parameter

Typ

Beskrivning

cstr

const char*

Texten som ska mätas, angiven som en C-stilsträng (till exempel “Hello”).

Return Values

Returnerar ett int32_t som representerar strängens bredd i pixlar när den renderas på hjärnskärmen.

Notes
  • Den returnerade bredden beror på för närvarande valda.

  • Den här funktionen mäter strängen utan att rita den på skärmen.

  • Den returnerade bredden återspeglar hur strängen skulle se ut när den skrivs ut.

printAt#

Skriver ut text, siffror eller booleska värden vid en specifik koordinat på V5 Brain-skärmen.

Available Functions

1 — Skriver ut formaterad utdata på den angivna pixelplatsen.

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

2 — Skriver ut formaterad utdata vid den angivna pixelplatsen och anger om textbakgrunden är ogenomskinlig eller transparent.

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

Parameters

Parameter

Typ

Beskrivning

x

int32_t

X-positionen att skriva ut från, refererad till skärmens origo.

y

int32_t

Y-positionen att skriva ut från, refererad till skärmens origo.

bOpaque

bool

Styr om den utskrivna texten ritas ogenomskinligt eller transparent:

  • true — Bakgrunden till den utskrivna texten fylls med aktuell fyllningsfärg.
  • false — Texten ritas transparent och bakgrunden fylls inte.

format

const char*

En formatsträng som styr vad som skrivs ut på skärmen (till exempel “Score: %d”).

…

Ett eller flera ytterligare värden som infogas i formatsträngen, separerade med kommatecken.

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Koordinaterna x och y är relativa till skärmens aktuella origo, vilket kan ändras med setOrigin.

  • Utskriven text använder det aktuella skärmteckensnittet

  • Tryckt text använder den aktuella pennfärgen

  • När en formatsträng används måste antalet och typerna av värden som skickas matcha formatspecificerare i strängen.

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

En skärmdump av V5 Brain-skärmen med vit text som läser Center, centrerad på skärmen.

clearScreen#

Raderar alla teckningar och text från hjärnskärmen och återställer markörens position till rad 1, kolumn 1.

Available Functions

1 — Rensar skärmen till svart.

void clearScreen();

2 — Rensar skärmen med ett fördefinierat eller anpassad färg objekt.

void clearScreen(
    const color& color );

3 — Rensar skärmen med ett hexadecimalt färgvärde.

void clearScreen(
    const char* color );

4 — Rensar skärmen med ett nyansvärde.

void clearScreen(
    int hue );

Parameters

Parameter

Typ

Beskrivning

color

const color&

Rensar skärmen med ett objekt med color färg. Fördefinierade färger inkluderar:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Detta kan också använda ett anpassat färgobjekt.

color

const char*

Rensar skärmen med ett hexadecimalt färgvärde representerat som en sträng (till exempel “#000000”).

hue

int

Rensar skärmen med ett heltal för nyans i intervallet 0–359, vilket representerar grader runt en färgcirkel.

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Parametervärdet hue är baserat på ett cirkulärt färghjul, som visas nedan, där värden representerar grader runt hjulet (till exempel rött nära 0°, grönt nära 120° och blått nära 240°).

En färgcirkel som visar färgskalan från 0 till 359, där rött är 0, grönt är 120 och blått är 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);

En skärmdump av V5 Brain-skärmen med hela det utskrivbara området i klarblått.

setFont#

Ställer in teckensnittet som används för text som visas på V5 Brain-skärmen.

Detta styr vilket teckensnitt som används för efterföljande textutmatning när skärmtextfunktioner som print används.

Available Functions
void setFont(
  fontType font );

Parameters

Parameter

Typ

Beskrivning

font

fontType

Sets the font to one of the following:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
  • fontType::cjk16 — Can print Chinese, Japanese, and Korean characters.
    • Simplified Chinese — Can be seen up to column 28.
    • Traditional Chinese — Can be seen up to column 28.
    • Japanese (Kanji) — Can be seen up to column 28.
    • Korean (Hangul) — Can be seen up to column 30.
These options are shown below.

Skärmdump av V5 Brain-skärmen med siffror och bokstäver tryckta i vitt i det övre vänstra hörnet i teckensnittet MONO 12. Den visar AZ på en rad, tvärs över ungefär en fjärdedel av skärmens bredd. I det nedre vänstra hörnet läses 80 kolumner och 20 rader.
mono12

Samma bild som den föregående, med teckensnittet Mono 15. Den visar AZ på en rad, över nästan halva skärmens bredd. I det nedre vänstra hörnet läser den 68 kolumner och 16 rader.
mono15

Samma bild som den föregående, med teckensnittet Mono 20. Den visar AZ på en rad, över nästan två tredjedelar av skärmens bredd. I det nedre vänstra hörnet visas 48 kolumner och 12 rader.
mono20

Samma bild som den föregående, med teckensnittet Mono 30. Den visar AZ på en rad, över nästan hela skärmens bredd. I det nedre vänstra hörnet visas 32 kolumner och 8 rader.
mono30

Samma bild som den föregående, med teckensnittet Mono 40. Den visar AX på en rad, som sträcker sig över skärmens bredd. I det nedre vänstra hörnet visas 24 kolumner och 6 rader.
mono40

Samma bild som den föregående, med teckensnittet Mono 60. Den visar AP på en rad, som sträcker sig över skärmens bredd. Längst ner indikerar den 16 kolumner och 4 rader.
mono60

Samma bild som den föregående, med teckensnittet Prop 20. Den visar AZ på en rad, över nästan två tredjedelar av skärmens bredd. I det nedre vänstra hörnet visas 48 kolumner och 12 rader.
prop20

Samma bild som den föregående, med teckensnittet Prop 30. Den visar AZ på en rad, nästan lika bred som skärmen. I det nedre vänstra hörnet visas 32 kolumner och 8 rader.
prop30

Samma bild som den föregående, med teckensnittet Prop 40. Den visar AU på en rad, som sträcker sig över hela skärmens bredd. I det nedre vänstra hörnet visas 24 kolumner och 6 rader.
prop40

Samma bild som den föregående, med Prop 60-typsnittet. Den visar AN på en rad, som sträcker sig över hela skärmens bredd. Längst ner visas 15 kolumner och 4 rader.
prop60

Samma bild som den föregående, med teckensnittet CJK 16. Den visar AZ på en rad, som sträcker sig över ungefär två tredjedelar av skärmen. De efterföljande raderna visar VEXcode på förenklad kinesiska, traditionell kinesiska, koreanska och japanska. Längst ner visas 43 kolumner och 12 rader.
fontType::cjk16

Return Values

Den här funktionen returnerar inget värde.

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

En skärmdump av V5 Brain-skärmen som visar vit text som läser VEX i större teckensnitt än standard, i det övre vänstra hörnet.


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

En skärmdump av V5 Brain-skärmen som visar texten "VEX机器人" med kinesiskt teckensnitt i det övre vänstra hörnet.

setPenWidth#

Anger tjockleken på ritade linjer och formens konturer.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Parameter

Typ

Beskrivning

width

uint32_t

Pennans bredd, i pixlar, från 0 till 32.

Return Values

Den här funktionen returnerar inget värde.

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

En skärmdump av V5 Brain-skärmen som visar en rektangel med tjocka kanter tryckta i skärmens övre vänstra kvadrant.

setPenColor#

Anger färgen på text, pixlar, linjer och konturer.

Available Functions

1 — Ställer in pennfärgen med ett fördefinierat objekt eller ett anpassad färg objekt.

void setPenColor(
    const color& color );

2 — Ställer in pennfärgen med ett hexadecimalt färgvärde.

void setPenColor(
    const char* color );

3 — Ställer in pennfärgen med hjälp av ett nyansvärde.

void setPenColor(
    int hue );

Parameters

Parameter

Typ

Beskrivning

color

const color&

Ställer in pennfärgen med ett objekt med color färger. Fördefinierade färger inkluderar:

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

color

const char*

Ställer in pennfärgen med ett hexadecimalt färgvärde som representeras som en sträng (till exempel “#FF0000”).

hue

int

Ställer in pennfärgen med ett heltalsnyansvärde i intervallet 0–359, vilket representerar grader runt en färgcirkel (till exempel är 0 rött, 120 är grönt och 240 är blått).

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Standardpennans färg i början av ett projekt är white.

  • Pennfärgen används för konturer av former (t.ex. med drawCircle eller drawRectangle), text och numerisk utdata (med print och printAt), och individuella pixlar som ritas med drawPixel.

  • Parametervärdet hue är baserat på ett cirkulärt färghjul, som visas nedan, där värden representerar grader runt hjulet (till exempel rött nära 0°, grönt nära 120° och blått nära 240°).

En färgcirkel som visar färgskalan från 0 till 359, där rött är 0, grönt är 120 och blått är 240.

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

En skärmdump av V5 Brain-skärmen som visar en rektangel ritad i orange i skärmens övre vänstra kvadrant.

setFillColor#

Anger fyllningsfärgen som används när former ritas.

Available Functions

1 — Ställer in fyllningsfärgen med ett fördefinierat objekt eller ett anpassad färg objekt.

void setFillColor(
    const color& color );

2 — Anger fyllningsfärgen med ett hexadecimalt färgvärde.

void setFillColor(
    const char* color );

3 — Ställer in fyllningsfärgen med ett nyansvärde.

void setFillColor(
    int hue );

Parameters

Parameter

Typ

Beskrivning

color

const color&

Ställer in fyllningsfärgen med ett objekt med värdet color Fördefinierade färger inkluderar:

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

color

const char*

Anger fyllningsfärgen med ett hexadecimalt färgvärde som representeras som en sträng (till exempel “#00FF00”).

hue

int

Ställer in fyllningsfärgen med ett heltal nyansvärde i intervallet 0–359, vilket representerar grader runt en färgcirkel (till exempel är 0 rött, 120 är grönt och 240 är blått).

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Standardfyllningsfärgen i början av ett projekt är black.

  • Fyllningsfärgen används för insidan av former (t.ex. med drawCircle eller drawRectangle).

  • Fyllningsfärgen används som bakgrundsfärg för utskriven text (t.ex. med print och printAt).

    • Om transparent används med tryckt text blir bakgrunden black.

  • Parametervärdet hue är baserat på ett cirkulärt färghjul, som visas nedan, där värden representerar grader runt hjulet (till exempel rött nära 0°, grönt nära 120° och blått nära 240°).

En färgcirkel som visar färgskalan från 0 till 359, där rött är 0, grönt är 120 och blått är 240.

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

En skärmdump av V5 Brain-skärmen som visar en rektangel fylld med lila i skärmens nedre vänstra kvadrant.

setOrigin#

Ställer in origo som används för ritning och koordinatbaserad utskrift på hjärnskärmen.

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

Parameters

Parameter

Typ

Beskrivning

x

int32_t

Ursprungs x-position i förhållande till det övre vänstra hörnet av hjärnskärmen från 0 till 479.

y

int32_t

Ursprungs y-positionen i förhållande till det övre vänstra hörnet av hjärnskärmen från 0 till 239.

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Standardorigo är skärmens övre vänstra hörn vid koordinaten (0, 0).

  • Ursprunget gäller för koordinatfunktioner som drawLine, drawRectangle, drawCircle och printAt.

  • Ursprunget förblir giltigt tills det ändras igen eller projektet återställs.

setClipRegion#

Definierar ett rektangulärt område på skärmen där alla ritningar och text begränsas. Innehåll utanför detta område visas inte.

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

Parameters

Parameter

Typ

Beskrivning

x

int

X-koordinaten för det övre vänstra hörnet av klippområdet, angiven som ett heltal från 0 till 479.

y

int

Y-koordinaten för det övre vänstra hörnet av klippområdet, angiven som ett heltal från 0 till 239.

width

int

Klippområdets bredd i pixlar, angivet som ett heltal från 0 till 479.

height

int

Höjden på klippområdet i pixlar, angiven som ett heltal från 0 till 239.

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Ritfunktioner körs fortfarande även om de faller utanför klippområdet, men endast delen innanför området är synlig.

  • Koordinaterna x och y är relativa till skärmens aktuella origo, vilket kan ändras med setOrigin.

  • Klippregionen gäller endast den aktuella tråden.

  • Att ställa in ett nytt klippområde ersätter alla tidigare inställda klippområden för den aktuella tråden.

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!");

En skärmdump av V5 Brains skärm med vit text som lyder Cut of med en heldragen röd fyrkant direkt under i den övre vänstra kvadranten, vilket återspeglar vad som skrivs ut i klippområdet.

drawPixel#

Ritar en pixel på V5 Brain-skärmen vid den valda x- och y-pixelpositionen.

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

Parameters

Parameter

Typ

Beskrivning

x

int

X-koordinaten där pixeln kommer att ritas, angiven som ett heltal från 0 till 479.

y

int

Y-koordinaten där pixeln kommer att ritas, angiven som ett heltal från 0 till 239.

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Pixlar ritas med den aktuella pennfärgen som är inställd med setPenColor.

  • Koordinaterna x och y är relativa till skärmens aktuella origo, vilket kan ställas in med setOrigin.

  • Om den angivna pixelplatsen ligger utanför skärmens gränser ritas inte pixeln.

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);

En skärmdump av V5 Brain-skärmen som visar ett sortiment av pixlar som visar hörnen på en kvadrat nära mitten av skärmen.

drawLine#

Ritar en rak linje som förbinder två punkter på V5 Brain-skärmen.

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

Parameters

Parameter

Typ

Beskrivning

x1

int

Linjens start-x-koordinat, angiven som ett heltal från 0 till 479.

y1

int

Linjens start-y-koordinat, angiven som ett heltal från 0 till 239.

x2

int

Linjens slutkoordinat x, angiven som ett heltal från 0 till 479.

y2

int

Linjens slutliga y-koordinat, angiven som ett heltal från 0 till 239.

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Linjer ritas med den aktuella pennfärgen som är inställd med setPenColor.

  • Linjens bredd bestäms av den aktuella pennbredden som är inställd med setPenWidth.

  • Koordinaterna x och y är relativa till skärmens aktuella origo, vilket kan ställas in med setOrigin.

  • Om någon del av linjen ligger utanför skärmens gränser ritas endast den synliga delen.

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

En skärmdump av V5 Brain-skärmen visar en tunn diagonal linje över mitten, från det övre vänstra hörnet till det nedre högra hörnet.

drawRectangle#

Ritar en rektangel på V5 Brain-skärmen vid den angivna positionen och storleken.

Available Functions

1 — Ritar och fyller en rektangel med den för närvarande konfigurerade fyllningsfärgen.

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

2 — Ritar och fyller en rektangel med ett fördefinierat objekt eller ett anpassad färg objekt.

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

3 — Ritar och fyller en rektangel med ett hexadecimalt färgvärde.

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

4 — Ritar och fyller en rektangel med ett nyansvärde.

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

Parameters

Parameter

Typ

Beskrivning

x

int

X-koordinaten för rektangelns övre vänstra hörn, angiven som ett heltal från 0 till 479.

y

int

Y-koordinaten för rektangelns övre vänstra hörn, angiven som ett heltal från 0 till 239.

width

int

Rektangelns bredd, angiven som ett heltal från 0 till 479.

height

int

Rektangelns höjd, angiven som ett heltal från 0 till 239.

color

const color&

Fyller rektangeln med ett objekt med color färg. Fördefinierade färger inkluderar:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Detta kan också använda ett anpassat färgobjekt.

color

const char*

Fyller rektangeln med ett hexadecimalt färgvärde (till exempel “#FF0000”).

hue

int

Fyller rektangeln med ett nyansvärde i intervallet 0–359.

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Rektangelns kontur ritas med den aktuella pennfärgen som är inställd med setPenColor.

  • Konturtjockleken bestäms av den aktuella pennbredden som är inställd med setPenWidth.

  • När ingen parameter color anges fylls rektangelns insida med den aktuella fyllningsfärgen som är inställd med setFillColor.

  • Koordinaterna x och y är relativa till skärmens aktuella origo, vilket kan ändras med setOrigin.

  • Om någon del av rektangeln ligger utanför skärmens gränser ritas endast den synliga delen.

  • Parametervärdet hue är baserat på ett cirkulärt färghjul, som visas nedan, där värden representerar grader runt hjulet (till exempel rött nära 0°, grönt nära 120° och blått nära 240°).

En färgcirkel som visar färgskalan från 0 till 359, där rött är 0, grönt är 120 och blått är 240.

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

En skärmdump av V5 Brains skärm visar en rektangel med en tunn vit kant tryckt i den övre vänstra kvadranten.

drawCircle#

Ritar en cirkel på V5 Brain-skärmen vid den angivna positionen och radien.

Available Functions

1 — Ritar och fyller en cirkel med den för närvarande konfigurerade fyllningsfärgen.

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

2 — Ritar och fyller en cirkel med hjälp av ett fördefinierat eller anpassad färg objekt.

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

3 — Ritar och fyller en cirkel med ett hexadecimalt färgvärde.

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

4 — Ritar och fyller en cirkel med ett nyansvärde.

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

Parameters

Parameter

Typ

Beskrivning

x

int

X-koordinaten för cirkelns centrum, angiven som ett heltal från 0 till 479.

y

int

Y-koordinaten för cirkelns centrum, angiven som ett heltal från 0 till 239.

radius

int

Cirkelns radie, angiven som ett heltal från 0 till 239 pixlar.

color

const color&

Fyller cirkeln med ett objekt med color färg. Fördefinierade färger inkluderar:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Detta kan också använda ett anpassat färgobjekt.

color

const char*

Fyller cirkeln med ett hexadecimalt färgvärde (till exempel “#FF0000”).

hue

int

Fyller cirkeln med ett nyansvärde i intervallet 0–359.

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Cirkelkonturen ritas med den aktuella pennfärgen som är inställd med setPenColor.

  • Konturtjockleken bestäms av den aktuella pennbredden som är inställd med setPenWidth.

  • När ingen parameter color anges fylls cirkelns insida med den aktuella fyllningsfärgen som är inställd med setFillColor.

  • Koordinaterna x och y är relativa till skärmens aktuella origo, vilket kan ändras med setOrigin.

  • Parametervärdet hue är baserat på ett cirkulärt färghjul, som visas nedan, där värden representerar grader runt hjulet (till exempel rött nära 0°, grönt nära 120° och blått nära 240°).

En färgcirkel som visar färgskalan från 0 till 359, där rött är 0, grönt är 120 och blått är 240.

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

En skärmdump av V5 Brain-skärmen visar en cirkel med en tunn vit kant ritad i mitten.

drawImageFromFile#

Ritar en bild på V5 Brain-skärmen med hjälp av en bildfil som är lagrad på SD-kortet.

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

Parameters

Parameter

Typ

Beskrivning

name

const char*

Filnamnet på bilden på SD-kortet. Filen måste ha filändelsen .bmp eller .png.

x

int

X-koordinaten, i pixlar från 0 till 479, vid vilken bildens vänstra kant kommer att ritas.

y

int

Y-koordinaten, i pixlar från 0 till 239, vid vilken bildens övre kant kommer att ritas.

Return Values

Returnerar ett booleskt värde som anger om bilden ritades:

  • true — Bilden laddades och ritades på skärmen.
  • false — Bilden kunde inte ritas (till exempel om filen inte finns eller är ogiltig).

Notes
  • Bildformat som stöds är .bmp och .png.

  • Bildfilens storlek får inte överstiga 512 KB

    • 8-bitars RLE-kodning rekommenderas för att minimera filstorleken.

  • De maximala bilddimensionerna som stöds är storleken på hjärnskärmen (cirka 479 x 239 pixlar).

  • Koordinaterna x och y är relativa till skärmens aktuella origo, vilket kan ändras med setOrigin.

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

render#

Aktiverar dubbel buffring för hjärnans skärm. När den väl anropats kommer inga ritfunktioner (som text, former eller bilder) att visas omedelbart under resten av projektet. Istället visas uppdateringar bara när rendering render render

Available Functions

1 — Aktiverar dubbel buffring eller återger bakbufferten på skärmen.

bool render();

2 — Renderar bakbufferten till skärmen med kontroll över vertikal synkronisering och valfri schemaläggningskörning.

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

Parameters

Parameter

Typ

Beskrivning

bVsyncWait

bool

​

  • true — Vänta på skärmens vertikala uppdatering innan rendering för att minska visuell tearing.
  • false — Vänta inte på skärmens vertikala uppdatering innan rendering.

bRunScheduler

bool

Valfritt.

  • true (standard) — Tillåt bakgrundsuppgifter att köras medan du väntar på rendering.
  • false — Tillåt inte bakgrundsuppgifter att köras medan du väntar på rendering.

Return Values

Returnerar ett booleskt värde som anger om de sparade ritningarna i bufferten har renderats på skärmen:

  • true — Ritningarna har renderats på skärmen.
  • false — Ritningarna kunde inte renderas på skärmen.
  • Notes
    • Att anropa render kräver att render används för resten av projektet.

    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#

Rapporterar om V5 Brain-skärmen trycks ned för närvarande.

Available Functions
bool pressing();

Parameters

Den här funktionen accepterar inga parametrar.

Return Values

Returnerar ett booleskt värde som anger skärmens aktuella nedtryckta tillstånd:true — Skärmen trycks för närvarande. eller false — Skärmen trycks inte.

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#

Returnerar x-koordinaten för det senaste trycket på V5 Brain-skärmen.

Available Functions
int32_t xPosition();

Parameters

Den här funktionen accepterar inga parametrar.

Return Values

Returnerar int32_t som representerar x-koordinaten, i pixlar från 0 till 479, för det senaste skärmtrycket.

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#

Returnerar y-koordinaten för det senaste trycket på V5 Brain-skärmen.

Available Functions
int32_t yPosition();

Parameters

Den här funktionen accepterar inga parametrar.

Return Values

Returnerar int32_t som representerar y-koordinaten, i pixlar från 0 till 239, för det senaste skärmtrycket.

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#

Registrerar en funktion som ska anropas när V5 Brain-skärmen trycks ned.

Available Functions

1 — Anropar en funktion när skärmen trycks ned.

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

2 — Anropar en funktion när skärmen trycks ner och skickar ett användardefinierat argument till återanropsfunktionen.

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

Parameters

Parameter

Typ

Beskrivning

callback

void (*)(void)

En funktion som anropas när skärmen trycks ned.

callback

void ()(void)

En funktion som anropas när skärmen trycks ner och tar emot ett användardefinierat argument.

arg

void*

Ett användardefinierat värde som skickas till callback-funktionen när skärmen trycks ned.

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Återuppringningsfunktionen körs varje gång hjärnskärmen trycks ned.

  • Endast en återuppringningsfunktion kan registreras åt gången; om du anropar pressed igen ersätts den föregående återuppringningen.

  • Återanropsfunktionen måste returnera void.

Examples

Definiera callback-funktionen (utanför 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);
}

Registrera återuppringningen inuti 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#

Registrerar en funktion som ska anropas när V5 Brain-skärmen släpps efter att ha tryckts ned.

Available Functions

1 — Anropar en funktion när skärmen släpps efter att ha tryckts ned.

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

2 — Anropar en funktion när skärmen släpps efter att ha tryckts ner och skickar ett användardefinierat argument till återanropsfunktionen.

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

Parameters

Parameter

Typ

Beskrivning

callback

void (*)(void)

En funktion som anropas när skärmen släpps efter att ha tryckts ned.

callback

void ()(void)

En funktion som anropas när skärmen släpps efter att ha tryckts ner och tar emot ett användardefinierat argument.

arg

void*

Ett användardefinierat värde som skickas till callback-funktionen när skärmen släpps efter att ha tryckts ned.

Return Values

Den här funktionen returnerar inget värde.

Notes
  • Återuppringningsfunktionen körs varje gång hjärnskärmen släpps efter att ha tryckts ned.

  • Endast en återuppringningsfunktion kan registreras åt gången; om released igen ersätts den föregående återuppringningen.

  • Återanropsfunktionen måste returnera void.

Examples

Definiera callback-funktionen (utanför 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);
}

Registrera återuppringningen inuti 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);
  }
}