画面#

導入#

screen クラスは brain 基底クラスから派生しています。これは、V5 Brain がタッチスクリーン上にテキスト、数字、グラフィックを表示する方法、およびタッチ入力に応答する方法を制御します。

Brainへの印刷に使用されるフォントは、デフォルトでは等幅小で、12行48列です。

描画時のBrainの解像度は480×240ピクセルです。

V5 Brainの画面には、合計12行48列のレイアウトを示す赤いグリッド線が表示されています。ピクセルサイズは幅479、高さ239です。左上隅は(0,0)ピクセル、1行目、1列目から始まり、右下隅は(479, 239)ピクセル、12行目、48列目で終わります。

アクセス#

screen クラスには、以下の方法でアクセスできます。

Brain.Screen

注記#

  • 画面 screen はブレインによって提供されます。直接構築されるものではありません。

  • プロジェクトは単一の Brain を使用するため、画面関数は Brain.Screen使用して呼び出されます。

例#

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

メンバーの機能#

screen クラスには、以下のメンバ関数が含まれています。

  • print — フォーマットされたテキスト、数値、またはブール値を Brain の画面に表示します。

  • setCursor — テキストカーソルを指定された行と列に移動します。

  • newLine — 現在の行の残りをクリアし、カーソルを次の行に移動します。

  • clearLine — 現在の行の残りをクリアするか、指定した行をクリアします。

  • row — テキストが印刷される行を返します。

  • column — テキストが印刷される列を返します。

  • getStringHeight — 現在のフォントを使用して文字列の高さをピクセル単位で返します。

  • getStringWidth — 現在のフォントを使用して、文字列の幅をピクセル単位で返します。

  • printAt — 書式設定されたテキストを x、y ピクセルの位置に出力します。

  • clearScreen — Brain 画面からすべての描画とテキストを消去します。

  • setFont — 画面に印刷するフォントを設定します。

  • setPenWidth — 描画された線と図形の輪郭の太さを設定します。

  • setPenColor — テキスト、ピクセル、線、図形の輪郭の色を設定します。

  • setFillColor — 描画された図形と印刷されたテキストの背景の塗りつぶしの色を設定します。

  • setOrigin — 画面座標に使用する原点を設定します。

  • setClipRegion — 画面出力を矩形領域に制限します。

  • drawPixel — 座標に 1 つのピクセルを描画します。

  • drawLine — 2点間に線を描画します。

  • drawRectangle — 指定されたサイズの長方形を x、y の位置に描画します。

  • drawCircle — 指定された半径で、x、y の位置に円を描画します。

  • drawImageFromFile — SD カードのファイルから画像を画面に描画します。

  • render — ダブルバッファリングを有効にするか、バックバッファを画面にレンダリングします。

  • pressingを押している — 現在画面が押されているかどうかを返します。

  • xPosition — 最新のスクリーン押下位置の x 座標を返します。

  • yPosition — 最新のスクリーンタップの y 座標を返します。

  • pressed — 画面が押されたときに実行されるコールバック関数を登録します。

  • released — 画面が押された後に離されたときに実行されるコールバック関数を登録します。

screen メンバー関数を呼び出す前に、以下に示すように brain インスタンスを作成する必要があります。

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

print#

V5 Brainの画面に、テキスト、数字、またはブール値を表示します。

Available Functions

1 — 文字列リテラルまたは読み取り専用の C スタイルの文字列を使用して、書式設定されたテキストを出力します。

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

2 — 変更可能な文字配列を使用して書式設定されたテキストを出力します。

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

Parameters

パラメータ

タイプ

説明

format

const char*

文字列リテラルまたは読み取り専用の C スタイルの文字列として提供されるフォーマット文字列 (例: “Score: %d”)。

format

char*

変更可能な文字配列として提供されるフォーマット文字列。

…

書式文字列に挿入される1つ以上の追加値。カンマで区切られます。

Return Values

この関数は値を返しません。

Notes
  • 出力は画面上の現在のカーソル位置 つまり から始まります。

  • 印刷されたテキストには、現在の画面フォント 使用されます。

  • 印刷されたテキストは、現在のペンカラー 使用します。

  • print で印刷されるテキストは常に背景付きで印刷され、背景色は 現在の塗りつぶし色によって決定されます。

  • フォーマット文字列を使用する場合、渡される値の数と型は、文字列内の フォーマット指定子 と一致する必要があります。

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

V5 Brainのスクリーンショット。画面左上隅に白い文字で「Hello, Robot!」と表示されている。

setCursor#

V5 Brain 画面上の特定の行と列にカーソルを移動します。次の print 呼び出しで、その位置から印刷が開始されます。

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

Parameters

パラメータ

タイプ

説明

row

int32_t

カーソルを移動する行。

col

int32_t

カーソルを移動させる列。

Return Values

この関数は値を返しません。

Notes
  • print を使用する際に、後続のテキスト出力の開始位置に影響します。

  • 行と列は現在設定されているスクリーンフォントに基づいています。

  • デフォルトのフォント(mono20)は、12行48列を使用します。

  • setCursor を呼び出すと、後続のテキスト出力の位置にのみ影響します。

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

画面中央付近の上部に、その位置に3行目12列目が印刷されているV5 Brainのスクリーンショット。

newLine#

ブレイン画面の次の行の先頭にカーソルを移動します。

Available Functions
void newLine();

Parameters

この関数は引数を受け付けません。

Return Values

この関数は値を返しません。

Notes
  • カーソルが文の途中にある場合、 newLine カーソルの後の行をクリアしてから次の行に移動します。

  • newLineを呼び出すと、カーソルは次の行の最初の列に移動します。

  • カーソル位置と行番号は setCursor を使用して設定されます。

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

V5 Brain画面のスクリーンショット。左上隅に白いテキストが2行表示されています。上の行は「Line 1」、そのすぐ下の2行目は「Line 2」と表示されています。

clearLine#

V5 Brain画面上の行からテキストを消去します。

Available Functions

1 — カーソル位置から現在の行の残りの部分をクリアします。

void clearLine();

2 — 現在設定されている 塗りつぶしの色 を使用して指定された行をクリアします。

void clearLine(
    int number );

3 — 定義済みまたは カスタムカラー オブジェクトを使用して、指定された行をクリアします。

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

4 — 16進数の色値を使用して、指定された行をクリアします。

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

5 — 色相値を使用して指定された行をクリアします。

void clearLine(
    int number,
    int hue );

Parameters

パラメータ

タイプ

説明

number

int

クリアする行番号。行番号は 1から始まります。

color

const color&

Clears the row using a color object. Predefined colors include:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
This can also use a custom color object.

color

const char*

16進数の色値を使用して行をクリアします(例: “#000000”)。

hue

int

0~359の範囲の整数色相値を使用して行をクリアします。これは、カラーホイール上の角度を表します。

Return Values

この関数は値を返しません。

Notes
  • 行をクリアしても、現在のカーソル位置は変わりません。

  • カーソル位置と行番号は setCursor を使用して設定されます。

  • hue パラメータ値は、下図に示すような円形のカラーホイールに基づいており、値はホイール上の角度を表します(例えば、赤は0°付近、緑は120°付近、青は240°付近)。

0から359までの色の範囲を示すカラーホイール。赤は0、緑は120、青は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#

V5 Brain画面にテキストが印刷される行を返します。

Available Functions
int32_t row();

Parameters

この関数は引数を受け付けません。

Return Values

テキストが印刷される行を表す、 int32_t 整数値(int32_t)を返します。

行番号は1から始まります。

Notes
  • The cursor position is based on the current screen font.

  • 返された値は、次に印刷される出力が表示される場所を示します。

  • 行の値は、テキストが印刷されたとき、または setCursor が呼び出されたときに変更されます。

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

V5 Brain画面のスクリーンショット。画面左上象限の3行目12列目に白い文字「3」が表示されている。

column#

V5 Brain画面にテキストが印刷される列を返します。

Available Functions
int32_t column();

Parameters

この関数は引数を受け付けません。

Return Values

テキストが印刷される列を表す、 int32_t を返します。

列番号は1から始まります。

Notes
  • The cursor position is based on the current screen font.

  • 返された値は、次に印刷される出力が表示される場所を示します。

  • テキストが印刷されたとき、または setCursor が呼び出されたときに列の値が変更されます。

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

V5 Brain画面のスクリーンショット。画面左上の3行目15列目に白い文字「15」が表示されている。

getStringHeight#

V5 Brainの画面に表示された文字列の高さ(ピクセル単位)を返します。

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

パラメータ

タイプ

説明

cstr

const char*

計測対象のテキストは、Cスタイルの文字列として提供されます(例: “Hello”)。

Return Values

Brain画面にレンダリングされた際の文字列の高さ(ピクセル単位)を表す、 int32_t のint32_t値を返します。

Notes

getStringWidth#

V5 Brainの画面に表示されたときの文字列の幅をピクセル単位で返します。

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

パラメータ

タイプ

説明

cstr

const char*

計測対象のテキストは、Cスタイルの文字列として提供されます(例: “Hello”)。

Return Values

Brain画面にレンダリングされた際の文字列の幅をピクセル単位で表す、 int32_t int32_t値を返します。

Notes

printAt#

V5 Brainの画面上の特定の座標に、テキスト、数字、またはブール値を印刷します。

Available Functions

1 — 指定されたピクセル位置にフォーマットされた出力を印刷します。

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

2 — 指定されたピクセル位置にフォーマットされた出力を印刷し、テキストの背景が不透明か透明かを設定します。

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

Parameters

パラメータ

タイプ

説明

x

int32_t

画面原点を基準とした、印刷位置のx座標。

y

int32_t

画面原点を基準とした、印刷位置のy座標。

bOpaque

bool

印刷されたテキストを不透明に描画するか透明に描画するかを制御します。

  • true — 印刷されたテキストの背景は、現在の塗りつぶしの色を使用して塗りつぶされます。
  • false — テキストは透明に描画され、背景は塗りつぶされません。

format

const char*

画面に表示される内容を制御する書式文字列(例: “Score: %d”)。

…

書式文字列に挿入される1つ以上の追加値。カンマで区切られます。

Return Values

この関数は値を返しません。

Notes
  • x および y 座標は現在の画面原点に対する相対座標であり、setOrigin を使用して変更できます。

  • 印刷されたテキストには、現在の画面フォント 使用されます。

  • 印刷されたテキストは、現在のペンカラー 使用します。

  • フォーマット文字列を使用する場合、渡される値の数と型は、文字列内の フォーマット指定子 と一致する必要があります。

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

画面中央に「Center」と書かれた白いテキストが表示されたV5 Brain画面のスクリーンショット。

clearScreen#

Brain画面上のすべての描画とテキストを消去し、カーソル位置を1行目、1列目にリセットします。

Available Functions

1 — 画面を黒くします。

void clearScreen();

2 — 定義済みまたは カスタムカラー オブジェクトを使用して画面をクリアします。

void clearScreen(
    const color& color );

3 — 16進数カラー値を使用して画面をクリアします。

void clearScreen(
    const char* color );

4 — 色相値を使用して画面をクリアします。

void clearScreen(
    int hue );

Parameters

パラメータ

タイプ

説明

color

const color&

Clears the screen using a color object. Predefined colors include:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
This can also use a custom color object.

color

const char*

文字列として表される 16 進数の色値を使用して画面をクリアします (例: “#000000”)。

hue

int

0~359の範囲の整数色相値を使用して画面をクリアします。これは、カラーホイール上の角度を表します。

Return Values

この関数は値を返しません。

Notes
  • hue パラメータ値は、下図に示すような円形のカラーホイールに基づいており、値はホイール上の角度を表します(例えば、赤は0°付近、緑は120°付近、青は240°付近)。

0から359までの色の範囲を示すカラーホイール。赤は0、緑は120、青は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);

印刷可能領域全体が鮮やかな青色になっているV5 Brain画面のスクリーンショット。

setFont#

V5 Brainの画面に表示されるテキストに使用するフォントを設定します。

これは、print などのスクリーンテキスト関数を使用する際に、後続のテキスト出力に適用されるフォントを制御します。

Available Functions
void setFont(
  fontType font );

Parameters

パラメータ

タイプ

説明

font

fontType

フォントを次のいずれかに設定します:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
  • fontType::cjk16 — 中国語、日本語、韓国語の文字印刷できます。
    • 簡体字中国語 — 28 列目まで表示されます。
    • 繁体字中国語 — 28 列目まで表示されます。
    • 日本語 (漢字) — 28 列目まで表示されます。
    • 韓国語 (ハングル) — 30 列目まで表示されます。
これらのオプションは以下に示されています。

TA V5 Brain画面のスクリーンショット。左上隅にMONO 12フォントで白の数字と文字が印刷されている。画面幅の約4分の1にAZが1行で表示されている。左下隅には80列20行と表示されている。
mono12

前の画像と同じ画像ですが、フォントはMono 15です。画面のほぼ半分の幅にわたって、AZが1行で表示されています。左下隅には68列16行と表示されています。
mono15

前の画像と同じ画像ですが、フォントはMono 20です。画面幅のほぼ3分の2にわたって、1行にAZと表示されています。左下隅には48列12行と表示されています。
mono20

前の画像と同じ画像ですが、フォントはMono 30です。AZという文字が1行に表示され、画面のほぼ全幅にわたっています。左下隅には「32列8行」と表示されています。
mono30

前の画像と同じ画像ですが、フォントはMono 40です。画面の幅いっぱいにAXが1行で表示されています。左下隅には24列6行と表示されています。
mono40

前の画像と同じ画像ですが、フォントはMono 60です。画面の幅いっぱいに「AP」と1行で表示されています。下部には16列4行と表示されています。
mono60

前の画像と同じ画像ですが、Prop 20フォントを使用しています。画面幅のほぼ3分の2にわたって、AZが1行に表示されています。左下隅には48列12行と表示されています。
prop20

前の画像と同じ画像ですが、Prop 30フォントを使用しています。AZという文字が1行に表示され、画面のほぼ幅に広がっています。左下隅には32列8行と表示されています。
prop30

前の画像と同じ画像ですが、Prop 40のフォントを使用しています。画面の幅いっぱいに「AU」と1行で表示されています。左下隅には「24列6行」と表示されています。
prop40

前の画像と同じ画像ですが、Prop 60フォントを使用しています。画面の幅いっぱいに「AN」と1行で表示されています。下部には「15列4行」と表示されています。
prop60

前の画像と同じ画像ですが、CJK 16フォントを使用しています。画面の約3分の2を占める1行にAZが表示されています。続く行には、簡体字中国語、繁体字中国語、韓国語、日本語でVEXcodeと表示されています。下部には43列12行と表示されています。
fontType::cjk16

Return Values

この関数は値を返しません。

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

V5 Brain画面のスクリーンショット。左上隅にデフォルトよりも大きなフォントで「VEX」と書かれた白いテキストが表示されている。


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

V5 Brain画面のスクリーンショット。左上隅に中国語フォントで「VEX机器人」と表示されている。

setPenWidth#

描画される線と図形の輪郭の太さを設定します。

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

パラメータ

タイプ

説明

width

uint32_t

ペンの幅(ピクセル単位)。0~32の範囲で指定します。

Return Values

この関数は値を返しません。

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

画面左上象限に太い枠線で囲まれた長方形が印刷されているV5 Brain画面のスクリーンショット。

setPenColor#

テキスト、ピクセル、線、図形の輪郭の色を設定します。

Available Functions

1 — 定義済みまたは カスタムカラー オブジェクトを使用してペンの色を設定します。

void setPenColor(
    const color& color );

2 — 16進数カラー値を使用してペンの色を設定します。

void setPenColor(
    const char* color );

3 — 色相値を使用してペンの色を設定します。

void setPenColor(
    int hue );

Parameters

パラメータ

タイプ

説明

color

const color&

Sets the pen color using a color object. Predefined colors include:

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

color

const char*

文字列として表される 16 進数の色値を使用してペンの色を設定します (例: “#FF0000”)。

hue

int

0~359範囲の整数色相値を使用してペンの色を設定します。これはカラーホイール上の角度を表します(たとえば、 0 は赤、 120 は緑、 240 は青です)。

Return Values

この関数は値を返しません。

Notes
  • プロジェクト開始時のデフォルトのペンカラーは whiteです。

  • ペンの色は、図形の輪郭(drawCircle や drawRectangle など)、テキストや数値の出力(print や printAt など)、および drawPixel で描画される個々のピクセルに使用されます。

  • hue パラメータ値は、下図に示すような円形のカラーホイールに基づいており、値はホイール上の角度を表します(例えば、赤は0°付近、緑は120°付近、青は240°付近)。

0から359までの色の範囲を示すカラーホイール。赤は0、緑は120、青は240です。

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

画面左上象限にオレンジ色の長方形が描かれたV5 Brain画面のスクリーンショット。

setFillColor#

図形を描画する際に使用される塗りつぶし色を設定します。

Available Functions

1 — 定義済みまたは カスタムカラー オブジェクトを使用して塗りつぶしの色を設定します。

void setFillColor(
    const color& color );

2 — 16進数カラー値を使用して塗りつぶしの色を設定します。

void setFillColor(
    const char* color );

3 — 色相値を使用して塗りつぶしの色を設定します。

void setFillColor(
    int hue );

Parameters

パラメータ

タイプ

説明

color

const color&

Sets the fill color using a color object. Predefined colors include:

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

color

const char*

文字列として表される 16 進数の色値を使用して塗りつぶしの色を設定します (例: “#00FF00”)。

hue

int

0~359範囲の整数色相値を使用して塗りつぶしの色を設定します。これはカラーホイールの角度を表します(たとえば、 0 は赤、 120 は緑、 240 は青です)。

Return Values

この関数は値を返しません。

Notes
  • プロジェクト開始時のデフォルトの塗りつぶし色は blackです。

  • 塗りつぶしの色は、図形の内部に使用されます (drawCircle や drawRectangle など)。

  • 塗りつぶしの色は、印刷されたテキストの背景色として使用されます(print や printAt など)。

    • transparent 印刷されたテキストで使用される場合、背景は blackになります。

  • hue パラメータ値は、下図に示すような円形のカラーホイールに基づいており、値はホイール上の角度を表します(例えば、赤は0°付近、緑は120°付近、青は240°付近)。

0から359までの色の範囲を示すカラーホイール。赤は0、緑は120、青は240です。

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

画面左下象限に紫色の四角形が表示されているV5 Brain画面のスクリーンショット。

setOrigin#

Brain画面上での描画および座標ベースの印刷に使用する原点を設定します。

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

Parameters

パラメータ

タイプ

説明

x

int32_t

原点のX座標(脳画面の左上隅を基準とした値、0~479)。

y

int32_t

原点のy座標は、脳画面の左上隅を基準として0から239までの値をとります。

Return Values

この関数は値を返しません。

Notes
  • デフォルトの原点は、画面の左上隅の座標(0, 0)です。

  • 原点は、drawLine、drawRectangle、drawCircle、およびprintAtなどの座標関数に適用されます。

  • 起点は、再度変更されるかプロジェクトがリセットされるまで有効です。

setClipRegion#

画面上に、描画やテキストが表示される矩形領域を定義します。この領域外のコンテンツは表示されません。

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

Parameters

パラメータ

タイプ

説明

x

int

クリップ領域の左上隅のx座標。0から479までの整数で指定します。

y

int

クリップ領域の左上隅のy座標。0から239までの整数で指定します。

width

int

クリップ領域の幅をピクセル単位で指定します。0から479までの整数値で表してください。

height

int

クリップ領域の高さ(ピクセル単位)。0~239の整数で指定します。

Return Values

この関数は値を返しません。

Notes
  • 描画機能は、クリップ領域の外側にある場合でも実行されますが、領域内の部分のみが表示されます。

  • x および y 座標は現在の画面原点に対する相対座標であり、setOrigin を使用して変更できます。

  • クリップ領域は現在のスレッドにのみ適用されます。

  • 新しいクリップ領域を設定すると、現在のスレッドに対して以前に設定されたクリップ領域はすべて置き換えられます。

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

V5 Brainの画面のスクリーンショット。左上象限に「Cut of」と書かれた白いテキストがあり、その真下に赤い四角が表示されています。これはクリップ領域内に印刷されている内容を反映しています。

drawPixel#

選択したx座標とy座標に、V5 Brainの画面上に1ピクセルを描画します。

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

Parameters

パラメータ

タイプ

説明

x

int

ピクセルが描画されるx座標。0から479までの整数で指定します。

y

int

ピクセルが描画されるy座標。0から239までの整数で指定します。

Return Values

この関数は値を返しません。

Notes
  • ピクセルは、setPenColorで設定された現在のペンカラーを使用して描画されます。

  • x および y 座標は、現在の画面原点に対する相対座標であり、setOrigin を使用して設定できます。

  • 指定されたピクセル位置が画面の範囲外にある場合、そのピクセルは描画されません。

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

画面中央付近の正方形の角を示すピクセル群が表示されたV5 Brain画面のスクリーンショット。

drawLine#

V5 Brainの画面上の2点を結ぶ直線を描画します。

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

Parameters

パラメータ

タイプ

説明

x1

int

直線の開始位置を示すx座標。0から479までの整数で指定します。

y1

int

直線の開始y座標。0から239までの整数で指定します。

x2

int

直線の終点のx座標。0から479までの整数で指定します。

y2

int

直線の終点のy座標。0から239までの整数で表されます。

Return Values

この関数は値を返しません。

Notes
  • 線は、setPenColorで設定された現在のペンカラーを使用して描画されます。

  • 線の幅は、setPenWidth で設定された現在のペン幅によって決定されます。

  • x および y 座標は、現在の画面原点に対する相対座標であり、setOrigin を使用して設定できます。

  • 線の一部が画面の境界外にある場合、表示されている部分のみが描画されます。

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

V5 Brainの画面のスクリーンショットには、左上隅から右下隅まで中央を横切る細い斜めの線が写っています。

drawRectangle#

V5 Brainの画面上に、指定された位置とサイズの長方形を描画します。

Available Functions

1 — 現在設定されている 塗りつぶしの色 を使用して長方形を描画して塗りつぶします。

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

2 — 定義済みまたは カスタムカラー オブジェクトを使用して長方形を描画および塗りつぶします。

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

3 — 16進数カラー値を使用して長方形を描画し、塗りつぶします。

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

4 — 色相値を使用して長方形を描画し、塗りつぶします。

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

Parameters

パラメータ

タイプ

説明

x

int

長方形の左上隅のx座標。0から479までの整数で表されます。

y

int

長方形の左上隅のy座標。0から239までの整数で表されます。

width

int

長方形の幅。0から479までの整数で指定します。

height

int

長方形の高さ。0から239までの整数で指定します。

color

const color&

Fills the rectangle using a color object. Predefined colors include:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
This can also use a custom color object.

color

const char*

16進数の色値を使用して長方形を塗りつぶします(例: “#FF0000”)。

hue

int

0–359の範囲の色相値を使用して長方形を塗りつぶします。

Return Values

この関数は値を返しません。

Notes
  • 長方形の輪郭は、setPenColorで設定された現在のペンカラーを使用して描画されます。

  • 輪郭線の太さは、setPenWidthで設定された現在のペン幅によって決定されます。

  • color パラメータが指定されていない場合、矩形の内部は setFillColor で設定された現在の塗りつぶし色を使用して塗りつぶされます。

  • x および y 座標は現在の画面原点に対する相対座標であり、setOrigin を使用して変更できます。

  • 長方形の一部が画面の境界外にある場合、表示されている部分のみが描画されます。

  • hue パラメータ値は、下図に示すような円形のカラーホイールに基づいており、値はホイール上の角度を表します(例えば、赤は0°付近、緑は120°付近、青は240°付近)。

0から359までの色の範囲を示すカラーホイール。赤は0、緑は120、青は240です。

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

V5 Brainの画面のスクリーンショットには、左上象限に細い白い枠線のある長方形が印刷されている。

drawCircle#

V5 Brainの画面上に、指定された位置と半径で円を描画します。

Available Functions

1 — 現在設定されている 塗りつぶしの色 を使用して円を描画し、塗りつぶします。

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

2 — 定義済みまたは カスタムカラー オブジェクトを使用して円を描画し、塗りつぶします。

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

3 — 16進数カラー値を使用して円を描画し、塗りつぶします。

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

4 — 色相値を使用して円を描画し、塗りつぶします。

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

Parameters

パラメータ

タイプ

説明

x

int

円の中心のx座標。0から479までの整数で表されます。

y

int

円の中心のy座標。0から239までの整数で表されます。

radius

int

円の半径。0~239ピクセルの整数で指定します。

color

const color&

Fills the circle using a color object. Predefined colors include:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
This can also use a custom color object.

color

const char*

16進数の色値を使用して円を塗りつぶします(例: “#FF0000”)。

hue

int

円を 0~359の範囲の色相値で塗りつぶします。

Return Values

この関数は値を返しません。

Notes
  • 円の輪郭は、setPenColorで設定された現在のペンカラーを使用して描画されます。

  • 輪郭線の太さは、setPenWidthで設定された現在のペン幅によって決定されます。

  • color パラメータが指定されていない場合、円の内部は setFillColor で設定された現在の塗りつぶし色を使用して塗りつぶされます。

  • x および y 座標は現在の画面原点に対する相対座標であり、setOrigin を使用して変更できます。

  • hue パラメータ値は、下図に示すような円形のカラーホイールに基づいており、値はホイール上の角度を表します(例えば、赤は0°付近、緑は120°付近、青は240°付近)。

0から359までの色の範囲を示すカラーホイール。赤は0、緑は120、青は240です。

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

V5 Brainの画面のスクリーンショットには、中央に細い白い枠線が描かれた円が表示されています。

drawImageFromFile#

SDカードに保存されている画像ファイルを使用して、V5 Brainの画面に画像を描画します。

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

Parameters

パラメータ

タイプ

説明

name

const char*

SDカード上の画像のファイル名。ファイル拡張子は .bmp または .png である必要があります。

x

int

画像の左端が描画される位置のx座標(ピクセル単位、0~479)。

y

int

画像の上端が描画されるy座標(ピクセル単位、0~239)。

Return Values

画像が正常に描画されたかどうかを示すブール値を返します。

  • true — 画像が正常に読み込まれ、画面に描画されました。
  • false — 画像を描画できませんでした(たとえば、ファイルが存在しないか、無効な場合)。

Notes
  • サポートされている画像形式は、 .bmp および .pngです。

  • 画像ファイルのサイズは 512 KBを超えてはなりません。

    • ファイルサイズを最小限に抑えるため、8ビットRLEエンコーディングを推奨します。

  • 対応可能な最大画像サイズは、Brainの画面サイズ(約479×239ピクセル)です。

  • x および y 座標は現在の画面原点に対する相対座標であり、setOrigin を使用して変更できます。

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

render#

Brainの画面でダブルバッファリングを有効にします。一度呼び出されると、テキスト、図形、画像などの描画機能は、プロジェクトの残りの部分ではすぐに表示されなくなります。代わりに、 render 再度使用されたときにのみ更新が表示されます。これにより、画面の更新がよりスムーズかつ制御しやすくなりますが、 render 使用されるまで何も表示されません。

Available Functions

1 — ダブルバッファリングを有効にするか、バックバッファを画面にレンダリングします。

bool render();

2 — 垂直同期動作とオプションのスケジューラ実行を制御しながら、バックバッファを画面にレンダリングします。

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

Parameters

パラメータ

タイプ

説明

bVsyncWait

bool

​

  • true — 画面の垂直リフレッシュを待ってからレンダリングすることで、画面のティアリングを軽減します。
  • false — 画面の垂直リフレッシュを待たずにレンダリングします。

bRunScheduler

bool

Optional.

  • true (default) — Allow background tasks to run while waiting to render.
  • false — Do not allow background tasks to run while waiting to render.

Return Values

バッファに保存された描画が画面に正常にレンダリングされたかどうかを示すブール値を返します。

  • true — 描画は画面に正常にレンダリングされました。
  • false — 描画は画面にレンダリングできませんでした。
  • Notes
    • render を呼び出すと、プロジェクトの残りの部分では render を使用する必要が生じます。

    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#

V5 Brainの画面が現在押されているかどうかを報告します。

Available Functions
bool pressing();

Parameters

この関数は引数を受け付けません。

Return Values

画面の現在の押下状態を示すブール値を返します。0true : 現在画面が押されています。または、 false : 画面は押されていません。

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#

V5 Brain画面上で最後に押された位置のx座標を返します。

Available Functions
int32_t xPosition();

Parameters

この関数は引数を受け付けません。

Return Values

最後に画面が押された位置のx座標(ピクセル単位、0~479)を表す int32_t を返します。

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#

V5 Brain画面上で最後に押された位置のy座標を返します。

Available Functions
int32_t yPosition();

Parameters

この関数は引数を受け付けません。

Return Values

最後に画面が押された位置のy座標(ピクセル単位、0~239)を表す int32_t を返します。

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#

V5 Brainの画面が押されたときに呼び出される関数を登録します。

Available Functions

1 — 画面が押されたときに関数を呼び出します。

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

2 — 画面が押されたときに関数を呼び出し、ユーザー定義の引数をコールバック関数に渡します。

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

Parameters

パラメータ

タイプ

説明

callback

void (*)(void)

画面が押されたときに呼び出される関数。

callback

void ()(void)

画面が押されたときに呼び出され、ユーザー定義の引数を受け取る関数。

arg

void*

画面が押されたときにコールバック関数に渡される、ユーザー定義の値。

Return Values

この関数は値を返しません。

Notes
  • コールバック関数は、ブレイン画面が押されるたびに実行されます。

  • 一度に登録できるコールバック関数は1つだけです pressed を押すと、以前のコールバックが置き換えられます。

  • コールバック関数は voidを返す必要があります。

Examples

コールバック関数を定義します( 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);
}

コールバックを登録する 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#

V5 Brainの画面が押された後に離されたときに呼び出される関数を登録します。

Available Functions

1 — 画面が押された後に離されたときに関数を呼び出します。

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

2 — 画面が押された後に離されたときに関数を呼び出し、ユーザー定義の引数をコールバック関数に渡します。

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

Parameters

パラメータ

タイプ

説明

callback

void (*)(void)

画面が押された後、指が離されたときに呼び出される関数。

callback

void ()(void)

画面が押された後に離されたときに呼び出され、ユーザー定義の引数を受け取る関数。

arg

void*

画面が押された後に離されたときにコールバック関数に渡される、ユーザー定義の値。

Return Values

この関数は値を返しません。

Notes
  • コールバック関数は、ブレイン画面が押された後に離されるたびに実行されます。

  • 一度に登録できるコールバック関数は1つだけです released 再度呼び出すと、以前のコールバック関数が置き換えられます。

  • コールバック関数は voidを返す必要があります。

Examples

コールバック関数を定義します( 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);
}

コールバックを登録する 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);
  }
}