Bildschirm#

Einführung#

Die Klasse screen ist von der Basisklasse brain abgeleitet. Sie steuert, wie das V5 Brain Text, Zahlen und Grafiken auf seinem Touchscreen anzeigt und wie es auf Berührungseingaben reagiert.

Standardmäßig wird für den Druck auf Brain die Schriftart monospaced small verwendet, die 12 Zeilen und 48 Spalten hat.

Für Zeichenaufgaben beträgt die Auflösung des Brain 480 x 240 Pixel.

Der V5 Brain-Bildschirm mit roten Gitterlinien zeigt das Layout von insgesamt 12 Zeilen und 48 Spalten. Die Pixelabmessungen betragen 479 Pixel Breite und 239 Pixel Höhe. Die obere linke Ecke beginnt bei (0,0) Pixel und Zeile 1, Spalte 1, während die untere rechte Ecke bei (479, 239) Pixel und Zeile 12, Spalte 48 endet.

Zugang#

Auf die Klasse screen kann zugegriffen werden durch:

Brain.Screen

Anmerkungen#

  • Das Objekt screen wird vom Gehirn bereitgestellt. Es wird nicht direkt konstruiert.

  • Projekte verwenden ein einziges globales Brain Objekt, daher werden Bildschirmfunktionen mit Brain.Screen aufgerufen.

Beispiel#

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

Mitgliedsfunktionen#

Die Klasse screen umfasst die folgenden Memberfunktionen:

  • print — Gibt formatierten Text, Zahlen oder boolesche Werte auf dem Brain-Bildschirm aus.

  • setCursor — Verschiebt den Textcursor in eine angegebene Zeile und Spalte.

  • newLine — Löscht den Rest der aktuellen Zeile und bewegt den Cursor in die nächste Zeile.

  • clearLine — Löscht den Rest der aktuellen Zeile oder löscht eine angegebene Zeile.

  • row — Gibt die Zeile zurück, in der der Text gedruckt werden soll.

  • column — Gibt die Spalte zurück, in der der Text gedruckt werden soll.

  • getStringHeight — Gibt die Höhe einer Zeichenkette in Pixeln unter Verwendung der aktuellen Schriftart zurück.

  • getStringWidth — Gibt die Breite einer Zeichenkette in Pixeln unter Verwendung der aktuellen Schriftart zurück.

  • printAt — Gibt formatierten Text an einer x, y Pixelposition aus.

  • clearScreen — Löscht alle Zeichnungen und Texte vom Brain-Bildschirm.

  • setFont — Legt die Schriftart fest, die für die Bildschirmausgabe verwendet wird.

  • setPenWidth — Legt die Dicke der gezeichneten Linien und Formumrisse fest.

  • setPenColor — Legt die Farbe von Text, Pixeln, Linien und Formumrissen fest.

  • setFillColor — Legt die Füllfarbe für gezeichnete Formen und gedruckte Texthintergründe fest.

  • setOrigin — Legt den Ursprung für die Bildschirmkoordinaten fest.

  • setClipRegion — Beschränkt die Bildschirmausgabe auf einen rechteckigen Bereich.

  • drawPixel — Zeichnet ein Pixel an einer Koordinate.

  • drawLine — Zeichnet eine Linie zwischen zwei Punkten.

  • drawRectangle — Zeichnet ein Rechteck an einer x, y Position mit einer festgelegten Größe.

  • drawCircle — Zeichnet einen Kreis an einer x, y Position mit einem angegebenen Radius.

  • drawImageFromFile — Zeichnet ein Bild aus einer SD-Kartendatei auf den Bildschirm.

  • render — Aktiviert die Doppelpufferung oder gibt den Backbuffer auf dem Bildschirm aus.

  • pressing — Gibt zurück, ob der Bildschirm gerade gedrückt wird.

  • xPosition — Gibt die x-Koordinate des letzten Bildschirm-Touches zurück.

  • yPosition — Gibt die y-Koordinate des letzten Bildschirm-Touches zurück.

  • pressed — Registriert eine Rückruffunktion, die beim Drücken des Bildschirms ausgeführt wird.

  • released — Registriert eine Callback-Funktion, die ausgeführt wird, wenn der Bildschirm nach dem Drücken losgelassen wird.

Bevor screen Memberfunktionen aufgerufen werden, muss eine brain Instanz erstellt werden, wie unten gezeigt:

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

print#

Zeigt Text, Zahlen oder boolesche Werte auf dem V5 Brain-Bildschirm an.

Available Functions

1 — Gibt formatierten Text mithilfe von Zeichenkettenliteralen oder schreibgeschützten C-Zeichenketten aus.

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

2 — Gibt formatierten Text mithilfe veränderbarer Zeichenarrays aus.

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

Parameters

Parameter

Typ

Beschreibung

format

const char*

Eine Formatzeichenkette, die als Zeichenkettenliteral oder als schreibgeschützte Zeichenkette im C-Stil angegeben wird (z. B. “Score: %d”).

format

char*

Eine Formatzeichenkette, die als veränderbares Zeichenarray bereitgestellt wird.

…

Ein oder mehrere zusätzliche Werte, die durch Kommas getrennt in die Formatzeichenfolge eingefügt werden.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Ausgabe beginnt an der Cursorposition auf dem Bildschirm.

  • Der gedruckte Text verwendet die Bildschirmschriftart.

  • Gedruckter Text verwendet die aktuelle Stiftfarbe .

  • Text, der mit print gedruckt wird, wird immer mit einem Hintergrund gedruckt, wobei die Hintergrundfarbe durch die aktuelle Füllfarbe bestimmt wird.

  • Bei Verwendung einer Formatzeichenfolge müssen die Anzahl und die Typen der übergebenen Werte mit den Formatbezeichnern in der Zeichenfolge übereinstimmen.

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

Ein Screenshot des V5 Brain, der in weißer Schrift in der oberen linken Ecke des Bildschirms „Hallo, Roboter!“ anzeigt.

setCursor#

Bewegt den Cursor zu einer bestimmten Zeile und Spalte auf dem V5 Brain-Bildschirm. Der nächste Aufruf von print beginnt die Ausgabe an dieser Position.

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

Parameters

Parameter

Typ

Beschreibung

row

int32_t

Die Zeile, in die der Cursor bewegt werden soll.

col

int32_t

Die Spalte, in die der Cursor bewegt werden soll.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Beeinflusst, wo die nachfolgende Textausgabe beginnt, wenn print verwendet wird.

  • Zeilen und Spalten basieren auf der aktuell eingestellten Bildschirmschriftart.

  • Die Standardschriftart (mono20) verwendet 12 Zeilen und 48 Spalten.

  • Der Aufruf von setCursor beeinflusst nur die Position der nachfolgenden Textausgabe.

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

Ein Screenshot des V5 Brain, der Zeile 3, Spalte 12 im oberen Bereich nahe der Bildschirmmitte an dieser Position anzeigt.

newLine#

Bewegt den Cursor an den Anfang der nächsten Zeile auf dem Gehirn-Bildschirm.

Available Functions
void newLine();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Befindet sich der Cursor mitten in einem Satz, löscht newLine den Rest der Zeile nach dem Cursor, bevor zur nächsten Zeile gewechselt wird.

  • Nach dem Aufruf von newLinewird der Cursor in der ersten Spalte der nächsten Zeile positioniert.

  • Die Cursorposition und die Zeilennummerierung werden mit setCursor festgelegt.

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

Ein Screenshot des V5 Brain-Bildschirms mit zwei Zeilen weißem Text in der oberen linken Ecke. Die obere Zeile lautet „Zeile 1“, die zweite Zeile direkt darunter „Zeile 2“.

clearLine#

Löscht Text aus einer Zeile auf dem V5 Brain-Bildschirm.

Available Functions

1 — Löscht den Rest der aktuellen Zeile ab der Cursorposition.

void clearLine();

2 — Löscht die angegebene Zeile mit der aktuell konfigurierten Füllfarbe.

void clearLine(
    int number );

3 — Löscht die angegebene Zeile mithilfe eines vordefinierten oder benutzerdefinierten Farbobjekts.

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

4 — Löscht die angegebene Zeile mithilfe eines hexadezimalen Farbwerts.

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

5 — Löscht die angegebene Zeile anhand eines Farbtonwerts.

void clearLine(
    int number,
    int hue );

Parameters

Parameter

Typ

Beschreibung

number

int

Die zu löschende Zeilennummer. Die Zeilennummerierung beginnt bei 1.

color

const color&

Löscht die Zeile mit einem color Objekt. Vordefinierte Farben sind:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Es kann auch ein benutzerdefiniertes Farbobjekt verwendet werden.

color

const char*

Löscht die Zeile mithilfe eines hexadezimalen Farbwerts (z. B. “#000000”).

hue

int

Löscht die Zeile mit einem ganzzahligen Farbtonwert im Bereich 0–359, der Grad auf einem Farbkreis darstellt.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Das Löschen einer Zeile ändert die aktuelle Cursorposition nicht.

  • Die Cursorposition und die Zeilennummerierung werden mit setCursor festgelegt.

  • Der Parameterwert hue basiert auf einem kreisförmigen Farbkreis, wie unten dargestellt, wobei die Werte Gradzahlen auf dem Kreis darstellen (zum Beispiel Rot nahe 0°, Grün nahe 120° und Blau nahe 240°).

Ein Farbrad, das den Farbbereich von 0 bis 359 zeigt, wobei Rot 0, Grün 120 und Blau 240 ist.

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#

Gibt die Zeile zurück, in der der Text auf dem V5 Brain-Bildschirm ausgegeben werden soll.

Available Functions
int32_t row();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt einen int32_t zurück, der die Zeile darstellt, in der der Text ausgegeben wird.

Die Zeilennummerierung beginnt bei 1.

Notes
  • Die Cursorposition basiert auf der Bildschirmschriftart.

  • Der zurückgegebene Wert gibt an, wo die nächste Ausgabe erscheinen wird.

  • Der Zeilenwert ändert sich, wenn Text gedruckt wird oder wenn setCursor aufgerufen wird.

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

Ein Screenshot des V5 Brain-Bildschirms, der den Text 3 in Weiß im oberen linken Quadranten des Bildschirms, in Zeile 3, Spalte 12, zeigt.

column#

Gibt die Spalte zurück, in der der Text auf dem V5 Brain-Bildschirm ausgegeben wird.

Available Functions
int32_t column();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt einen int32_t zurück, der die Spalte darstellt, in der der Text ausgegeben werden soll.

Die Spaltennummerierung beginnt bei 1.

Notes
  • Die Cursorposition basiert auf der Bildschirmschriftart.

  • Der zurückgegebene Wert gibt an, wo die nächste Ausgabe erscheinen wird.

  • Der Spaltenwert ändert sich, wenn Text gedruckt wird oder wenn setCursor aufgerufen wird.

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

Ein Screenshot des V5 Brain-Bildschirms, der den Text 15 in Weiß im oberen linken Quadranten des Bildschirms, in Zeile 3, Spalte 15, zeigt.

getStringHeight#

Gibt die Höhe eines Strings in Pixeln zurück, wenn dieser auf dem V5 Brain-Bildschirm gerendert wird.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Parameter

Typ

Beschreibung

cstr

const char*

Der zu messende Text wird als C-Style-String angegeben (zum Beispiel “Hello”).

Return Values

Gibt einen int32_t zurück, der die Höhe der Zeichenkette in Pixeln bei der Darstellung auf dem Brain-Bildschirm repräsentiert.

Notes
  • Die zurückgegebene Höhe hängt von aktuell ausgewählten Bildschirmschriftart ab.

  • Diese Funktion misst die Zeichenkette, ohne sie auf dem Bildschirm darzustellen.

  • Die zurückgegebene Höhe gibt an, wie die Zeichenkette beim Drucken aussehen würde.

getStringWidth#

Gibt die Breite einer Zeichenkette in Pixeln zurück, wenn sie auf dem V5 Brain-Bildschirm gerendert wird.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Parameter

Typ

Beschreibung

cstr

const char*

Der zu messende Text wird als C-Style-String angegeben (zum Beispiel “Hello”).

Return Values

Gibt einen int32_t zurück, der die Breite der Zeichenkette in Pixeln bei der Darstellung auf dem Brain-Bildschirm repräsentiert.

Notes
  • Die zurückgegebene Breite hängt von aktuell ausgewählten ab.

  • Diese Funktion misst die Zeichenkette, ohne sie auf dem Bildschirm darzustellen.

  • Die zurückgegebene Breite gibt an, wie die Zeichenkette beim Drucken aussehen würde.

printAt#

Gibt Text, Zahlen oder boolesche Werte an einer bestimmten Koordinate auf dem V5 Brain-Bildschirm aus.

Available Functions

1 — Gibt formatierte Ausgabe an der angegebenen Pixelposition aus.

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

2 — Gibt formatierten Text an der angegebenen Pixelposition aus und legt fest, ob der Texthintergrund deckend oder transparent ist.

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

Parameters

Parameter

Typ

Beschreibung

x

int32_t

Die x-Position, an der gedruckt werden soll, bezogen auf den Bildschirmursprung.

y

int32_t

Die y-Position, an der gedruckt werden soll, bezogen auf den Bildschirmursprung.

bOpaque

bool

Steuert, ob der gedruckte Text deckend oder transparent dargestellt wird:

  • true — Der Hintergrund des gedruckten Textes wird mit der aktuellen Füllfarbe gefüllt.
  • false — Der Text wird transparent dargestellt und der Hintergrund ist nicht gefüllt.

format

const char*

Eine Formatzeichenfolge, die steuert, was auf dem Bildschirm ausgegeben wird (zum Beispiel “Score: %d”).

…

Ein oder mehrere zusätzliche Werte, die durch Kommas getrennt in die Formatzeichenfolge eingefügt werden.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Koordinaten x und y beziehen sich auf den aktuellen Bildschirmursprung, der mit setOrigin geändert werden kann.

  • Der gedruckte Text verwendet die Bildschirmschriftart.

  • Gedruckter Text verwendet die aktuelle Stiftfarbe .

  • Bei Verwendung einer Formatzeichenfolge müssen die Anzahl und die Typen der übergebenen Werte mit den Formatbezeichnern in der Zeichenfolge übereinstimmen.

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

Ein Screenshot des V5 Brain-Bildschirms mit weißem Text, der „Center“ anzeigt und mittig auf dem Bildschirm platziert ist.

clearScreen#

Löscht alle Zeichnungen und Texte vom Brain-Bildschirm und setzt die Cursorposition auf Zeile 1, Spalte 1 zurück.

Available Functions

1 — Der Bildschirm wird schwarz.

void clearScreen();

2 — Löscht den Bildschirm mithilfe eines vordefinierten oder benutzerdefinierten Farbobjekts.

void clearScreen(
    const color& color );

3 — Löscht den Bildschirm mithilfe eines hexadezimalen Farbwerts.

void clearScreen(
    const char* color );

4 — Löscht den Bildschirm mithilfe eines Farbtonwerts.

void clearScreen(
    int hue );

Parameters

Parameter

Typ

Beschreibung

color

const color&

Löscht den Bildschirm mit einem color Objekt. Vordefinierte Farben sind:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Es kann auch ein benutzerdefiniertes Farbobjekt verwendet werden.

color

const char*

Löscht den Bildschirm mit einem hexadezimalen Farbwert, der als Zeichenkette dargestellt wird (z. B. “#000000”).

hue

int

Löscht den Bildschirm mit einem ganzzahligen Farbtonwert im Bereich 0–359, der Grad auf einem Farbkreis darstellt.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Der Parameterwert hue basiert auf einem kreisförmigen Farbkreis, wie unten dargestellt, wobei die Werte Gradzahlen auf dem Kreis darstellen (zum Beispiel Rot nahe 0°, Grün nahe 120° und Blau nahe 240°).

Ein Farbrad, das den Farbbereich von 0 bis 359 zeigt, wobei Rot 0, Grün 120 und Blau 240 ist.

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

Ein Screenshot des V5 Brain-Bildschirms, bei dem der gesamte druckbare Bereich hellblau ist.

setFont#

Legt die Schriftart für den auf dem V5 Brain-Bildschirm angezeigten Text fest.

Dies steuert die Schriftart, die bei der Verwendung von Bildschirmtextfunktionen wie print auf die nachfolgende Textausgabe angewendet wird.

Available Functions
void setFont(
  fontType font );

Parameters

Parameter

Typ

Beschreibung

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.

TA-Screenshot des V5 Brain-Bildschirms mit weißen Zahlen und Buchstaben in MONO 12-Schriftart in der oberen linken Ecke. AZ wird einzeilig angezeigt und erstreckt sich über etwa ein Viertel der Bildschirmbreite. In der unteren linken Ecke steht „80 Spalten und 20 Zeilen“.
mono12

Dasselbe Bild wie das vorherige, jedoch mit der Schriftart Mono 15. Es zeigt AZ in einer Zeile, fast über die halbe Bildschirmbreite. In der unteren linken Ecke steht 68 Spalten und 16 Zeilen.
mono15

Dasselbe Bild wie das vorherige, jedoch mit der Schriftart Mono 20. Es zeigt AZ in einer Zeile, die sich über fast zwei Drittel der Bildschirmbreite erstreckt. In der unteren linken Ecke steht 48 Spalten und 12 Zeilen.
mono20

Dasselbe Bild wie das vorherige, jedoch mit der Schriftart Mono 30. Es zeigt AZ in einer Zeile, fast über die gesamte Bildschirmbreite. In der unteren linken Ecke steht 32 Spalten und 8 Zeilen.
mono30

Dasselbe Bild wie das vorherige, jedoch mit der Schriftart Mono 40. Es zeigt AX in einer Zeile, die sich über die gesamte Bildschirmbreite erstreckt. In der unteren linken Ecke steht 24 Spalten und 6 Zeilen.
mono40

Dasselbe Bild wie das vorherige, jedoch mit der Schriftart Mono 60. Es zeigt AP in einer Zeile, die sich über die gesamte Bildschirmbreite erstreckt. Unten werden 16 Spalten und 4 Zeilen angezeigt.
mono60

Dasselbe Bild wie das vorherige, jedoch mit Prop-20-Schriftart. Es zeigt AZ in einer Zeile, die sich über fast zwei Drittel der Bildschirmbreite erstreckt. In der unteren linken Ecke steht 48 Spalten und 12 Zeilen.
prop20

Dasselbe Bild wie das vorherige, jedoch mit Prop-30-Schriftart. Es zeigt AZ in einer Zeile, die sich fast über die gesamte Bildschirmbreite erstreckt. In der unteren linken Ecke steht 32 Spalten und 8 Zeilen.
prop30

Dasselbe Bild wie das vorherige, jedoch mit Prop-40-Schriftart. Es zeigt „AU“ in einer Zeile über die gesamte Bildschirmbreite. In der unteren linken Ecke steht „24 Spalten und 6 Zeilen“.
prop40

Dasselbe Bild wie das vorherige, jedoch mit Prop-60-Schriftart. Es zeigt „AN“ in einer Zeile, die sich über die gesamte Bildschirmbreite erstreckt. Unten steht „15 Spalten und 4 Zeilen“.
prop60

Dasselbe Bild wie das vorherige, jedoch mit CJK-16-Schriftart. Es zeigt AZ in einer Zeile, die etwa zwei Drittel des Bildschirms einnimmt. In den folgenden Zeilen steht VEXcode in vereinfachtem Chinesisch, traditionellem Chinesisch, Koreanisch und Japanisch. Unten steht „43 Spalten und 12 Zeilen“.
fontType::cjk16

Return Values

Diese Funktion gibt keinen Wert zurück.

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

Ein Screenshot des V5 Brain-Bildschirms, der in der oberen linken Ecke weißen Text mit der Aufschrift „VEX“ in größerer Schriftart als der Standardschrift zeigt.


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

Ein Screenshot des V5 Brain-Bildschirms, der den Text "VEX机器人" in chinesischer Schrift in der oberen linken Ecke zeigt.

setPenWidth#

Legt die Strichstärke und Konturstärke von gezeichneten Linien fest.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Parameter

Typ

Beschreibung

width

uint32_t

Die Stiftbreite in Pixeln, von 0 bis 32.

Return Values

Diese Funktion gibt keinen Wert zurück.

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

Ein Screenshot des V5 Brain-Bildschirms, der ein Rechteck mit dicken Rändern im oberen linken Quadranten des Bildschirms zeigt.

setPenColor#

Legt die Farbe von Text, Pixeln, Linien und Formkonturen fest.

Available Functions

1 — Legt die Stiftfarbe mithilfe eines vordefinierten oder benutzerdefinierten Farbobjekts fest.

void setPenColor(
    const color& color );

2 — Legt die Stiftfarbe mithilfe eines hexadezimalen Farbwerts fest.

void setPenColor(
    const char* color );

3 — Legt die Stiftfarbe mithilfe eines Farbtonwerts fest.

void setPenColor(
    int hue );

Parameters

Parameter

Typ

Beschreibung

color

const color&

Legt die Stiftfarbe mithilfe eines color Objekts fest. Vordefinierte Farben:

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

color

const char*

Legt die Stiftfarbe mithilfe eines hexadezimalen Farbwerts fest, der als Zeichenkette dargestellt wird (zum Beispiel “#FF0000”).

hue

int

Die Stiftfarbe wird mithilfe eines ganzzahligen Farbtonwerts im Bereich 0–359eingestellt, der Gradzahlen auf einem Farbkreis darstellt (zum Beispiel ist 0 rot, 120 grün und 240 blau).

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Standardstiftfarbe zu Beginn eines Projekts ist white.

  • Die Stiftfarbe wird für Umrisse von Formen (z. B. mit drawCircle oder drawRectangle), Text- und numerische Ausgaben (mit print und printAt) sowie für einzelne Pixel verwendet, die mit drawPixel gezeichnet werden.

  • Der Parameterwert hue basiert auf einem kreisförmigen Farbkreis, wie unten dargestellt, wobei die Werte Gradzahlen auf dem Kreis darstellen (zum Beispiel Rot nahe 0°, Grün nahe 120° und Blau nahe 240°).

Ein Farbrad, das den Farbbereich von 0 bis 359 zeigt, wobei Rot 0, Grün 120 und Blau 240 ist.

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

Ein Screenshot des V5 Brain-Bildschirms, der ein orangefarbenes Rechteck im oberen linken Quadranten des Bildschirms zeigt.

setFillColor#

Legt die Füllfarbe fest, die beim Zeichnen von Formen verwendet wird.

Available Functions

1 — Legt die Füllfarbe mithilfe eines vordefinierten oder benutzerdefinierten Farbobjekts fest.

void setFillColor(
    const color& color );

2 — Legt die Füllfarbe mithilfe eines hexadezimalen Farbwerts fest.

void setFillColor(
    const char* color );

3 — Legt die Füllfarbe mithilfe eines Farbtonwerts fest.

void setFillColor(
    int hue );

Parameters

Parameter

Typ

Beschreibung

color

const color&

Legt die Füllfarbe mithilfe eines color Objekts fest. Vordefinierte Farben:

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

color

const char*

Legt die Füllfarbe mithilfe eines hexadezimalen Farbwerts fest, der als Zeichenkette dargestellt wird (z. B. “#00FF00”).

hue

int

Legt die Füllfarbe mithilfe eines ganzzahligen Farbtonwerts im Bereich 0–359fest, der Grad auf einem Farbkreis darstellt (zum Beispiel ist 0 rot, 120 grün und 240 blau).

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Standardfüllfarbe zu Beginn eines Projekts ist black.

  • Die Füllfarbe wird für das Innere von Formen verwendet (z. B. mit drawCircle oder drawRectangle).

  • Die Füllfarbe wird als Hintergrundfarbe für gedruckten Text verwendet (z. B. bei print und printAt).

    • Bei Verwendung von transparent mit gedrucktem Text wird der Hintergrund black sein.

  • Der Parameterwert hue basiert auf einem kreisförmigen Farbkreis, wie unten dargestellt, wobei die Werte Gradzahlen auf dem Kreis darstellen (zum Beispiel Rot nahe 0°, Grün nahe 120° und Blau nahe 240°).

Ein Farbrad, das den Farbbereich von 0 bis 359 zeigt, wobei Rot 0, Grün 120 und Blau 240 ist.

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

Ein Screenshot des V5 Brain-Bildschirms, der ein violett gefülltes Rechteck im unteren linken Quadranten des Bildschirms zeigt.

setOrigin#

Legt den Ursprung fest, der für das Zeichnen und koordinatenbasierte Drucken auf dem Brain-Bildschirm verwendet wird.

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

Parameters

Parameter

Typ

Beschreibung

x

int32_t

Die x-Position des Ursprungs relativ zur oberen linken Ecke des Gehirnbildschirms von 0 bis 479.

y

int32_t

Die y-Position des Ursprungs relativ zur oberen linken Ecke des Gehirn-Bildschirms von 0 bis 239.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Der Standardursprung ist die obere linke Ecke des Bildschirms an der Koordinate (0, 0).

  • Der Ursprung gilt für Koordinatenfunktionen wie drawLine, drawRectangle, drawCircle und printAt.

  • Der Ursprung bleibt so lange aktiv, bis er erneut geändert oder das Projekt zurückgesetzt wird.

setClipRegion#

Definiert einen rechteckigen Bereich auf dem Bildschirm, in dem alle Zeichnungen und Texte angezeigt werden. Inhalte außerhalb dieses Bereichs werden nicht angezeigt.

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

Parameters

Parameter

Typ

Beschreibung

x

int

Die x-Koordinate der oberen linken Ecke des Clip-Bereichs, angegeben als ganze Zahl von 0 bis 479.

y

int

Die y-Koordinate der oberen linken Ecke des Clip-Bereichs, angegeben als ganze Zahl von 0 bis 239.

width

int

Die Breite des Clipping-Bereichs in Pixeln, angegeben als ganze Zahl von 0 bis 479.

height

int

Die Höhe des Clipping-Bereichs in Pixeln, angegeben als ganze Zahl von 0 bis 239.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Zeichenfunktionen werden auch dann ausgeführt, wenn sie außerhalb des Clipping-Bereichs liegen, aber nur der Teil innerhalb des Bereichs ist sichtbar.

  • Die Koordinaten x und y beziehen sich auf den aktuellen Bildschirmursprung, der mit setOrigin geändert werden kann.

  • Der Clip-Bereich gilt nur für den aktuellen Thread.

  • Das Festlegen eines neuen Clipbereichs ersetzt jeden zuvor festgelegten Clipbereich für den aktuellen Thread.

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

Ein Screenshot des V5 Brain-Bildschirms mit weißem Text, der "Cut of" anzeigt, und einem roten Quadrat direkt darunter im oberen linken Quadranten, das den Inhalt des Clip-Bereichs widerspiegelt.

drawPixel#

Zeichnet einen Pixel auf dem V5 Brain-Bildschirm an der ausgewählten x- und y-Pixelposition.

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

Parameters

Parameter

Typ

Beschreibung

x

int

Die x-Koordinate, an der das Pixel gezeichnet werden soll, angegeben als ganze Zahl von 0 bis 479.

y

int

Die y-Koordinate, an der das Pixel gezeichnet werden soll, angegeben als ganze Zahl von 0 bis 239.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Pixel werden mit der aktuellen Stiftfarbe gezeichnet, die mit setPenColor festgelegt wird.

  • Die Koordinaten x und y beziehen sich auf den aktuellen Bildschirmursprung, der mit setOrigin festgelegt werden kann.

  • Wenn die angegebene Pixelposition außerhalb der Bildschirmgrenzen liegt, wird das Pixel nicht gezeichnet.

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

Ein Screenshot des V5 Brain-Bildschirms, der eine Ansammlung von Pixeln zeigt, die die Ecken eines Quadrats nahe der Bildschirmmitte darstellen.

drawLine#

Zeichnet eine gerade Linie, die zwei Punkte auf dem V5 Brain-Bildschirm verbindet.

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

Parameters

Parameter

Typ

Beschreibung

x1

int

Die Start-x-Koordinate der Geraden, angegeben als ganze Zahl von 0 bis 479.

y1

int

Die Start-y-Koordinate der Geraden, angegeben als ganze Zahl von 0 bis 239.

x2

int

Die End-x-Koordinate der Geraden, angegeben als ganze Zahl von 0 bis 479.

y2

int

Die y-Endkoordinate der Geraden, angegeben als ganze Zahl von 0 bis 239.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Linien werden mit der aktuell mit setPenColor festgelegten Stiftfarbe gezeichnet.

  • Die Linienbreite wird durch die aktuelle Stiftbreite bestimmt, die mit setPenWidth eingestellt wird.

  • Die Koordinaten x und y beziehen sich auf den aktuellen Bildschirmursprung, der mit setOrigin festgelegt werden kann.

  • Wenn ein Teil der Linie außerhalb des Bildschirmbereichs liegt, wird nur der sichtbare Teil gezeichnet.

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

Ein Screenshot des V5 Brain-Bildschirms zeigt eine dünne diagonale Linie quer durch die Mitte, von der oberen linken Ecke zur unteren rechten Ecke.

drawRectangle#

Zeichnet ein Rechteck an der angegebenen Position und Größe auf dem V5 Brain-Bildschirm.

Available Functions

1 — Zeichnet und füllt ein Rechteck mit der aktuell konfigurierten Füllfarbe.

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

2 — Zeichnet und füllt ein Rechteck mit einem vordefinierten oder benutzerdefinierten Farbe Objekt.

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

3 — Zeichnet und füllt ein Rechteck unter Verwendung eines hexadezimalen Farbwertes.

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

4 — Zeichnet und füllt ein Rechteck unter Verwendung eines Farbtonwertes.

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

Parameters

Parameter

Typ

Beschreibung

x

int

Die x-Koordinate der oberen linken Ecke des Rechtecks, angegeben als ganze Zahl von 0 bis 479.

y

int

Die y-Koordinate der oberen linken Ecke des Rechtecks, angegeben als ganze Zahl von 0 bis 239.

width

int

Die Breite des Rechtecks, angegeben als ganze Zahl von 0 bis 479.

height

int

Die Höhe des Rechtecks, angegeben als ganze Zahl von 0 bis 239.

color

const color&

Füllt das Rechteck mit einem color Objekt. Vordefinierte Farben sind:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Es kann auch ein benutzerdefiniertes Farbobjekt verwendet werden.

color

const char*

Füllt das Rechteck mit einem hexadezimalen Farbwert (z. B. “#FF0000”).

hue

int

Füllt das Rechteck mit einem Farbtonwert im Bereich 0–359.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Rechteckkontur wird mit der aktuellen Stiftfarbe gezeichnet, die mit setPenColor festgelegt ist.

  • Die Konturstärke wird durch die aktuelle Stiftbreite bestimmt, die mit setPenWidth festgelegt wird.

  • Wird kein color Parameter angegeben, wird das Innere des Rechtecks ​​mit der aktuell mit setFillColor festgelegten Füllfarbe gefüllt.

  • Die Koordinaten x und y beziehen sich auf den aktuellen Bildschirmursprung, der mit setOrigin geändert werden kann.

  • Wenn ein Teil des Rechtecks ​​außerhalb der Bildschirmgrenzen liegt, wird nur der sichtbare Teil gezeichnet.

  • Der Parameterwert hue basiert auf einem kreisförmigen Farbkreis, wie unten dargestellt, wobei die Werte Gradzahlen auf dem Kreis darstellen (zum Beispiel Rot nahe 0°, Grün nahe 120° und Blau nahe 240°).

Ein Farbrad, das den Farbbereich von 0 bis 359 zeigt, wobei Rot 0, Grün 120 und Blau 240 ist.

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

Ein Screenshot des Bildschirms des V5 Brain zeigt ein Rechteck mit einem dünnen weißen Rand im oberen linken Quadranten.

drawCircle#

Zeichnet einen Kreis auf dem V5 Brain-Bildschirm an der angegebenen Position und mit dem angegebenen Radius.

Available Functions

1 — Zeichnet und füllt einen Kreis mit der aktuell konfigurierten Füllfarbe.

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

2 — Zeichnet und füllt einen Kreis mit einem vordefinierten oder benutzerdefinierten Farbe Objekt.

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

3 — Zeichnet und füllt einen Kreis unter Verwendung eines hexadezimalen Farbwertes.

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

4 — Zeichnet und füllt einen Kreis unter Verwendung eines Farbtonwertes.

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

Parameters

Parameter

Typ

Beschreibung

x

int

Die x-Koordinate des Mittelpunkts des Kreises, angegeben als ganze Zahl von 0 bis 479.

y

int

Die y-Koordinate des Mittelpunkts des Kreises, angegeben als ganze Zahl von 0 bis 239.

radius

int

Der Radius des Kreises, angegeben als ganze Zahl von 0 bis 239 Pixeln.

color

const color&

Füllt den Kreis mit einem color Objekt. Vordefinierte Farben sind:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Es kann auch ein benutzerdefiniertes Farbobjekt verwendet werden.

color

const char*

Füllt den Kreis mit einem hexadezimalen Farbwert (z. B. “#FF0000”).

hue

int

Füllt den Kreis mit einem Farbtonwert im Bereich 0–359.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Kreiskontur wird mit der aktuell mit setPenColor festgelegten Stiftfarbe gezeichnet.

  • Die Konturstärke wird durch die aktuelle Stiftbreite bestimmt, die mit setPenWidth festgelegt wird.

  • Wird kein color Parameter angegeben, wird das Innere des Kreises mit der aktuell mit setFillColor festgelegten Füllfarbe gefüllt.

  • Die Koordinaten x und y beziehen sich auf den aktuellen Bildschirmursprung, der mit setOrigin geändert werden kann.

  • Der Parameterwert hue basiert auf einem kreisförmigen Farbkreis, wie unten dargestellt, wobei die Werte Gradzahlen auf dem Kreis darstellen (zum Beispiel Rot nahe 0°, Grün nahe 120° und Blau nahe 240°).

Ein Farbrad, das den Farbbereich von 0 bis 359 zeigt, wobei Rot 0, Grün 120 und Blau 240 ist.

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

Ein Screenshot des V5 Brain-Bildschirms zeigt einen Kreis mit einem dünnen weißen Rand in der Mitte.

drawImageFromFile#

Zeichnet ein Bild auf dem V5 Brain-Bildschirm mithilfe einer auf der SD-Karte gespeicherten Bilddatei.

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

Parameters

Parameter

Typ

Beschreibung

name

const char*

The filename of the image on the SD card. The file must have a .bmp or .png extension.

x

int

Die x-Koordinate in Pixeln von 0 bis 479, an der der linke Rand des Bildes gezeichnet wird.

y

int

Die y-Koordinate in Pixeln von 0 bis 239, an der die obere Kante des Bildes gezeichnet wird.

Return Values

Gibt einen booleschen Wert zurück, der angibt, ob das Bild erfolgreich gerendert wurde:

  • true — Das Bild wurde erfolgreich geladen und auf dem Bildschirm dargestellt.
  • false — Das Bild konnte nicht gerendert werden (z. B. wenn die Datei nicht existiert oder ungültig ist).

Notes
  • Unterstützte Bildformate sind .bmp und .png.

  • Die Bilddateigröße darf 512 KB nicht überschreiten.

    • Zur Minimierung der Dateigröße wird die 8-Bit-RLE-Codierung empfohlen.

  • Die maximal unterstützten Bildabmessungen entsprechen der Größe des Brain-Bildschirms (ca. 479 x 239 Pixel).

  • Die Koordinaten x und y beziehen sich auf den aktuellen Bildschirmursprung, der mit setOrigin geändert werden kann.

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

render#

Aktiviert die doppelte Pufferung für den Bildschirm des Brains. Nach dem Aufruf werden Zeichenfunktionen (wie Text, Formen oder Bilder) nicht mehr sofort für den Rest des Projekts angezeigt. Aktualisierungen werden erst sichtbar, wenn render erneut verwendet wird. Dies ermöglicht flüssigere und kontrolliertere Bildschirmaktualisierungen, bedeutet aber, dass erst nach der Verwendung von render etwas sichtbar ist.

Available Functions

1 — Aktiviert die Doppelpufferung oder gibt den Backbuffer auf dem Bildschirm aus.

bool render();

2 — Rendert den Backbuffer auf dem Bildschirm mit Kontrolle über das Verhalten der vertikalen Synchronisierung und optionaler Scheduler-Ausführung.

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

Parameters

Parameter

Typ

Beschreibung

bVsyncWait

bool

​

  • true — Warten Sie auf die vertikale Aktualisierung des Bildschirms vor dem Rendern, um Bildrisse zu reduzieren.
  • false — Warten Sie nicht auf die vertikale Aktualisierung des Bildschirms vor dem Rendern.

bRunScheduler

bool

Optional.

  • true (Standard) – Hintergrundprozesse dürfen während des Wartens auf das Rendern ausgeführt werden.
  • false – Hintergrundprozesse dürfen während des Wartens auf das Rendern nicht ausgeführt werden.

Return Values

Gibt einen booleschen Wert zurück, der angibt, ob die gespeicherten Zeichnungen im Puffer erfolgreich auf dem Bildschirm dargestellt wurden:

  • true — Die Zeichnungen wurden erfolgreich auf dem Bildschirm dargestellt.
  • false — Die Zeichnungen konnten nicht auf dem Bildschirm dargestellt werden.
  • Notes
    • Der Aufruf von render erfordert die Verwendung render für den Rest des Projekts.

    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#

Meldet, ob der Bildschirm des V5 Brain gerade gedrückt wird.

Available Functions
bool pressing();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt einen booleschen Wert zurück, der den aktuellen Status des Bildschirms angibt:true = Der Bildschirm wird gerade gedrückt. oder false = Der Bildschirm wird nicht gedrückt.

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#

Gibt die x-Koordinate des letzten Tastendrucks auf dem V5 Brain-Bildschirm zurück.

Available Functions
int32_t xPosition();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt einen int32_t zurück, der die x-Koordinate in Pixeln von 0 bis 479 des letzten Bildschirmdrucks darstellt.

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#

Gibt die y-Koordinate des letzten Tastendrucks auf dem V5 Brain-Bildschirm zurück.

Available Functions
int32_t yPosition();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt einen int32_t zurück, der die y-Koordinate in Pixeln von 0 bis 239 des letzten Bildschirmkontakts darstellt.

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#

Registriert eine Funktion, die aufgerufen werden soll, wenn der Bildschirm des V5 Brain gedrückt wird.

Available Functions

1 — Ruft eine Funktion auf, wenn der Bildschirm berührt wird.

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

2 — Ruft eine Funktion auf, wenn der Bildschirm gedrückt wird, und übergibt ein benutzerdefiniertes Argument an die Rückruffunktion.

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

Parameters

Parameter

Typ

Beschreibung

callback

void (*)(void)

Eine Funktion, die beim Drücken des Bildschirms aufgerufen wird.

callback

void ()(void)

Eine Funktion, die beim Drücken des Bildschirms aufgerufen wird und ein benutzerdefiniertes Argument empfängt.

arg

void*

Ein benutzerdefinierter Wert, der an die Callback-Funktion übergeben wird, wenn der Bildschirm berührt wird.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Callback-Funktion wird jedes Mal ausgeführt, wenn der Brain-Bildschirm berührt wird.

  • Only one callback function can be registered at a time; calling pressed again replaces the previous callback.

  • Die Callback-Funktion muss void zurückgeben.

Examples

Definiere die Callback-Funktion (außerhalb von 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);
}

Registriere den Callback innerhalb von 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#

Registriert eine Funktion, die aufgerufen werden soll, wenn der V5 Brain-Bildschirm nach dem Drücken losgelassen wird.

Available Functions

1 — Ruft eine Funktion auf, wenn der Bildschirm nach dem Drücken losgelassen wird.

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

2 — Ruft eine Funktion auf, wenn der Bildschirm nach dem Drücken losgelassen wird, und übergibt ein benutzerdefiniertes Argument an die Rückruffunktion.

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

Parameters

Parameter

Typ

Beschreibung

callback

void (*)(void)

Eine Funktion, die aufgerufen wird, wenn der Bildschirm nach dem Drücken losgelassen wird.

callback

void ()(void)

Eine Funktion, die aufgerufen wird, wenn der Bildschirm nach dem Drücken losgelassen wird und die ein benutzerdefiniertes Argument erhält.

arg

void*

Ein benutzerdefinierter Wert, der an die Callback-Funktion übergeben wird, wenn der Bildschirm nach dem Drücken losgelassen wird.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Die Callback-Funktion wird jedes Mal ausgeführt, wenn der Brain-Bildschirm nach dem Drücken losgelassen wird.

  • Es kann immer nur eine Callback-Funktion registriert werden; durch erneutes Aufrufen von released wird die vorherige Callback-Funktion ersetzt.

  • Die Callback-Funktion muss void zurückgeben.

Examples

Definiere die Callback-Funktion (außerhalb von 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);
}

Registriere den Callback innerhalb von 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);
  }
}