Layar#

Perkenalan#

Kelas screen diturunkan dari kelas dasar brain. Kelas ini mengontrol bagaimana V5 Brain menampilkan teks, angka, dan grafik pada layar sentuhnya, dan bagaimana ia merespons input sentuhan.

Secara default, font untuk pencetakan ke Brain adalah monospaced small yang memiliki 12 baris dan 48 kolom.

Untuk menggambar, resolusi Brain adalah 480 x 240 piksel.

Layar V5 Brain dengan garis kisi merah menunjukkan tata letak 12 baris dan 48 kolom secara total. Dimensi pikselnya adalah 479 lebar dan 239 tinggi. Sudut kiri atas dimulai pada piksel (0,0) dan baris 1, kolom 1, sedangkan sudut kanan bawah berakhir pada piksel (479, 239) dan baris 12, kolom 48.

Mengakses#

Kelas screen dapat diakses dengan:

Brain.Screen

Catatan#

  • Objek screen disediakan oleh Otak. Objek ini tidak dibangun secara langsung.

  • Proyek menggunakan satu objek global Brain , sehingga fungsi layar dipanggil menggunakan Brain.Screen.

Contoh#

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

Fungsi Keanggotaan#

Kelas screen mencakup fungsi anggota berikut:

  • print — Mencetak teks, angka, atau nilai Boolean yang diformat ke layar Brain.

  • setCursor — Memindahkan kursor teks ke baris dan kolom yang ditentukan.

  • newLine — Menghapus sisa baris saat ini dan memindahkan kursor ke baris berikutnya.

  • clearLine — Menghapus sisa baris saat ini atau menghapus baris tertentu.

  • row — Mengembalikan baris tempat teks akan dicetak.

  • column — Mengembalikan kolom tempat teks akan dicetak.

  • getStringHeight — Mengembalikan tinggi string dalam piksel menggunakan font saat ini.

  • getStringWidth — Mengembalikan lebar string dalam piksel menggunakan font saat ini.

  • printAt — Mencetak teks yang diformat pada lokasi piksel x, y.

  • clearScreen — Menghapus semua gambar dan teks dari layar Otak.

  • setFont — Mengatur font yang digunakan untuk pencetakan di layar.

  • setPenWidth — Mengatur ketebalan garis yang digambar dan garis luar bentuk.

  • setPenColor — Mengatur warna teks, piksel, garis, dan garis luar bentuk.

  • setFillColor — Mengatur warna isi untuk bentuk yang digambar dan latar belakang teks yang dicetak.

  • setOrigin — Mengatur titik asal yang digunakan untuk koordinat layar.

  • setClipRegion — Membatasi output layar ke wilayah persegi panjang.

  • drawPixel — Menggambar satu piksel pada koordinat.

  • drawLine — Menggambar garis antara dua titik.

  • drawRectangle — Menggambar persegi panjang di lokasi x, y dengan ukuran yang ditentukan.

  • drawCircle — Menggambar lingkaran di lokasi x, y dengan radius yang ditentukan.

  • drawImageFromFile — Menggambar gambar dari file kartu SD ke layar.

  • render — Mengaktifkan double buffering atau merender back buffer ke layar.

  • pressing — Mengembalikan apakah layar sedang ditekan.

  • xPosition — Mengembalikan koordinat x dari penekanan layar terbaru.

  • yPosition — Mengembalikan koordinat y dari penekanan layar terbaru.

  • pressed — Mendaftarkan fungsi callback untuk dijalankan saat layar ditekan.

  • released — Mendaftarkan fungsi callback untuk dijalankan ketika layar dilepaskan setelah ditekan.

Sebelum memanggil fungsi anggota screen apa pun, sebuah instance brain harus dibuat, seperti yang ditunjukkan di bawah ini:

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

print#

Menampilkan teks, angka, atau nilai Boolean pada layar V5 Brain.

Available Functions

1 — Mencetak teks yang diformat menggunakan literal string atau string gaya C yang hanya dapat dibaca.

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

2 — Mencetak teks yang diformat menggunakan larik karakter yang dapat dimodifikasi.

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

Parameters

Parameter

Jenis

Keterangan

format

const char*

String format yang diberikan sebagai literal string atau string gaya C yang hanya dapat dibaca (misalnya, “Score: %d”).

format

char*

String format yang diberikan sebagai larik karakter yang dapat dimodifikasi.

…

Satu atau lebih nilai tambahan yang dimasukkan ke dalam string format, dipisahkan oleh koma.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Output dimulai pada posisi kursor saat ini pada layar.

  • Teks yang dicetak menggunakan font layar saat ini .

  • Teks yang dicetak menggunakan warna pena saat ini.

  • Teks yang dicetak dengan print selalu dicetak dengan latar belakang, dan warna latar belakang ditentukan oleh warna isi saat ini.

  • Saat menggunakan string format, jumlah dan tipe nilai yang dilewatkan harus sesuai dengan penentu format dalam string.

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

Tangkapan layar V5 Brain yang menunjukkan tulisan "Hello, Robot!" tercetak di layar di pojok kiri atas dengan teks putih.

setCursor#

Memindahkan kursor ke baris dan kolom tertentu pada layar V5 Brain. Panggilan print berikutnya akan mulai mencetak di lokasi tersebut.

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

Parameters

Parameter

Jenis

Keterangan

row

int32_t

Baris tempat kursor akan dipindahkan.

col

int32_t

Kolom tempat kursor akan dipindahkan.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Mempengaruhi di mana keluaran teks selanjutnya dimulai ketika menggunakan print.

  • Baris dan kolom didasarkan pada font layar yang sedang diatur.

  • Font default (mono20) menggunakan 12 baris dan 48 kolom.

  • Memanggil setCursor hanya memengaruhi posisi keluaran teks berikutnya.

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

Tangkapan layar V5 Brain yang menunjukkan Baris 3 Kolom 12 tercetak di bagian atas dekat tengah layar, pada posisi tersebut.

newLine#

Memindahkan kursor ke awal baris berikutnya di layar Otak.

Available Functions
void newLine();

Parameters

Fungsi ini tidak menerima parameter apa pun.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Jika kursor berada di tengah kalimat, newLine akan menghapus sisa baris setelah kursor sebelum berpindah ke baris berikutnya.

  • Setelah memanggil newLine, kursor diposisikan pada kolom pertama baris berikutnya.

  • Posisi kursor dan penomoran baris diatur menggunakan setCursor.

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

Tangkapan layar dari layar V5 Brain yang menunjukkan dua baris teks putih di sudut kiri atas. Baris atas bertuliskan Baris 1, dan baris kedua tepat di bawahnya bertuliskan Baris 2.

clearLine#

Menghapus teks dari satu baris di layar V5 Brain.

Available Functions

1 — Menghapus sisa baris saat ini dari posisi kursor.

void clearLine();

2 — Menghapus baris yang ditentukan menggunakan warna isi yang saat ini dikonfigurasi.

void clearLine(
    int number );

3 — Menghapus baris yang ditentukan menggunakan objek warna yang telah ditentukan sebelumnya atau warna kustom.

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

4 — Menghapus baris yang ditentukan menggunakan nilai warna heksadesimal.

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

5 — Menghapus baris yang ditentukan menggunakan nilai hue.

void clearLine(
    int number,
    int hue );

Parameters

Parameter

Jenis

Keterangan

number

int

Nomor baris yang akan dihapus. Penomoran baris dimulai dari 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*

Menghapus baris menggunakan nilai warna heksadesimal (misalnya, “#000000”).

hue

int

Menghapus baris menggunakan nilai hue bilangan bulat dalam rentang 0–359, yang mewakili derajat di sekitar roda warna.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Menghapus baris tidak mengubah posisi kursor saat ini.

  • Posisi kursor dan penomoran baris diatur menggunakan setCursor.

  • Nilai parameter hue didasarkan pada roda warna melingkar, seperti yang ditunjukkan di bawah ini, di mana nilai-nilai tersebut mewakili derajat di sekitar roda (misalnya, merah mendekati 0°, hijau mendekati 120°, dan biru mendekati 240°).

Roda warna yang menunjukkan rentang warna dari 0 hingga 359, di mana merah adalah 0, hijau adalah 120, dan biru adalah 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#

Mengembalikan baris tempat teks akan dicetak pada layar V5 Brain.

Available Functions
int32_t row();

Parameters

Fungsi ini tidak menerima parameter apa pun.

Return Values

Mengembalikan nilai int32_t yang mewakili baris tempat teks akan dicetak.

Penomoran baris dimulai dari 1.

Notes
  • Posisi kursor didasarkan pada font layar saat ini .

  • Nilai yang dikembalikan menunjukkan di mana output cetak berikutnya akan muncul.

  • Nilai baris berubah ketika teks dicetak atau ketika setCursor dipanggil.

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

Tangkapan layar dari layar V5 Brain yang menunjukkan teks 3 berwarna putih di kuadran kiri atas layar, pada posisi baris 3 kolom 12.

column#

Mengembalikan kolom tempat teks akan dicetak pada layar V5 Brain.

Available Functions
int32_t column();

Parameters

Fungsi ini tidak menerima parameter apa pun.

Return Values

Mengembalikan nilai int32_t yang mewakili kolom tempat teks akan dicetak.

Penomoran kolom dimulai dari 1.

Notes
  • Posisi kursor didasarkan pada font layar saat ini .

  • Nilai yang dikembalikan menunjukkan di mana output cetak berikutnya akan muncul.

  • Nilai kolom berubah ketika teks dicetak atau ketika setCursor dipanggil.

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

Tangkapan layar dari layar V5 Brain yang menunjukkan teks 15 berwarna putih di kuadran kiri atas layar, pada posisi baris 3 kolom 15.

getStringHeight#

Mengembalikan tinggi, dalam piksel, dari sebuah string saat ditampilkan di layar V5 Brain.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Parameter

Jenis

Keterangan

cstr

const char*

Teks yang akan diukur, diberikan sebagai string bergaya C (misalnya, “Hello”).

Return Values

Mengembalikan nilai int32_t yang mewakili tinggi string dalam piksel saat ditampilkan di layar Brain.

Notes
  • Tinggi yang dikembalikan bergantung pada font layar yang saat ini dipilih ( .

  • Fungsi ini mengukur string tanpa menggambarkannya di layar.

  • Tinggi yang dikembalikan mencerminkan bagaimana string tersebut akan terlihat saat dicetak.

getStringWidth#

Mengembalikan lebar, dalam piksel, dari sebuah string saat ditampilkan di layar V5 Brain.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Parameter

Jenis

Keterangan

cstr

const char*

Teks yang akan diukur, diberikan sebagai string bergaya C (misalnya, “Hello”).

Return Values

Mengembalikan nilai int32_t yang mewakili lebar string dalam piksel saat ditampilkan di layar Brain.

Notes
  • Lebar yang dikembalikan bergantung pada font layar yang saat ini dipilih ( .

  • Fungsi ini mengukur string tanpa menggambarkannya di layar.

  • Lebar yang dikembalikan mencerminkan bagaimana string akan terlihat saat dicetak.

printAt#

Mencetak teks, angka, atau nilai Boolean pada koordinat tertentu di layar V5 Brain.

Available Functions

1 — Mencetak output yang diformat pada lokasi piksel yang ditentukan.

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

2 — Mencetak output yang diformat pada lokasi piksel yang ditentukan dan mengatur apakah latar belakang teks buram atau transparan.

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

Parameters

Parameter

Jenis

Keterangan

x

int32_t

Posisi x untuk mencetak, mengacu pada titik asal layar.

y

int32_t

Posisi y untuk mencetak, mengacu pada titik asal layar.

bOpaque

bool

Mengontrol apakah teks yang dicetak digambar buram atau transparan:

  • true — Latar belakang teks yang dicetak diisi menggunakan warna isian saat ini.
  • false — Teks digambar transparan dan latar belakang tidak diisi.

format

const char*

String format yang mengontrol apa yang dicetak di layar (misalnya, “Score: %d”).

…

Satu atau lebih nilai tambahan yang dimasukkan ke dalam string format, dipisahkan oleh koma.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Koordinat x dan y relatif terhadap titik asal layar saat ini, yang dapat diubah menggunakan setOrigin.

  • Teks yang dicetak menggunakan font layar saat ini .

  • Teks yang dicetak menggunakan warna pena saat ini.

  • Saat menggunakan string format, jumlah dan tipe nilai yang dilewatkan harus sesuai dengan penentu format dalam string.

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

Tangkapan layar dari layar V5 Brain dengan teks putih bertuliskan Center, berada di tengah layar.

clearScreen#

Menghapus semua gambar dan teks dari layar Otak dan mengatur ulang posisi kursor ke baris 1, kolom 1.

Available Functions

1 — Menghapus semua data di layar menjadi hitam.

void clearScreen();

2 — Membersihkan layar menggunakan objek warna yang telah ditentukan atau warna kustom.

void clearScreen(
    const color& color );

3 — Membersihkan layar menggunakan nilai warna heksadesimal.

void clearScreen(
    const char* color );

4 — Membersihkan layar menggunakan nilai hue.

void clearScreen(
    int hue );

Parameters

Parameter

Jenis

Keterangan

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*

Menghapus layar menggunakan nilai warna heksadesimal yang direpresentasikan sebagai string (misalnya, “#000000”).

hue

int

Membersihkan layar menggunakan nilai hue bilangan bulat dalam rentang 0–359, yang mewakili derajat di sekitar roda warna.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Nilai parameter hue didasarkan pada roda warna melingkar, seperti yang ditunjukkan di bawah ini, di mana nilai-nilai tersebut mewakili derajat di sekitar roda (misalnya, merah mendekati 0°, hijau mendekati 120°, dan biru mendekati 240°).

Roda warna yang menunjukkan rentang warna dari 0 hingga 359, di mana merah adalah 0, hijau adalah 120, dan biru adalah 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);

Tangkapan layar dari layar V5 Brain dengan seluruh area yang dapat dicetak berwarna biru terang.

setFont#

Mengatur font yang digunakan untuk teks yang ditampilkan di layar V5 Brain.

Ini mengontrol font yang diterapkan pada output teks selanjutnya saat menggunakan fungsi teks layar seperti print.

Available Functions
void setFont(
  fontType font );

Parameters

Parameter

Jenis

Keterangan

font

fontType

Mengatur font ke salah satu dari berikut ini:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
  • fontType::cjk16 — Dapat mencetak karakter Cina, Jepang, dan Korea.
    • Bahasa Mandarin Sederhana — Dapat dilihat hingga kolom 28.
    • Bahasa Mandarin Tradisional — Dapat dilihat hingga kolom 28.
    • Bahasa Jepang (Kanji) — Dapat dilihat hingga kolom 28.
    • Bahasa Korea (Hangul) — Dapat dilihat hingga kolom 30.
Pilihan-pilihan ini ditampilkan di bawah ini.

Tangkapan layar dari layar V5 Brain dengan angka dan huruf yang dicetak putih di pojok kiri atas dengan font MONO 12. Ini menunjukkan AZ dalam satu baris, sekitar seperempat lebar layar. Di pojok kiri bawah tertulis 80 kolom dan 20 baris.
mono12

Gambar yang sama seperti sebelumnya, dengan font Mono 15. Menunjukkan AZ dalam satu baris, hampir setengah lebar layar. Di pojok kiri bawah tertulis 68 kolom dan 16 baris.
mono15

Gambar yang sama seperti sebelumnya, dengan font Mono 20. Gambar ini menunjukkan AZ dalam satu baris, hampir dua pertiga lebar layar. Di pojok kiri bawah tertulis 48 kolom dan 12 baris.
mono20

Gambar yang sama seperti sebelumnya, dengan font Mono 30. Gambar ini menunjukkan AZ dalam satu baris, hampir di seluruh lebar layar. Di pojok kiri bawah tertulis 32 kolom dan 8 baris.
mono30

Gambar yang sama seperti sebelumnya, dengan font Mono 40. Menunjukkan AX dalam satu baris, membentang selebar layar. Di pojok kiri bawah tertulis 24 kolom dan 6 baris.
mono40

Gambar yang sama seperti sebelumnya, dengan font Mono 60. Menunjukkan AP dalam satu baris, membentang selebar layar. Di bagian bawah menunjukkan 16 kolom dan 4 baris.
mono60

Gambar yang sama seperti sebelumnya, dengan font Prop 20. Gambar ini menunjukkan AZ dalam satu baris, hampir dua pertiga lebar layar. Di pojok kiri bawah tertulis 48 kolom dan 12 baris.
prop20

Gambar yang sama seperti sebelumnya, dengan font Prop 30. Menunjukkan AZ dalam satu baris, hampir selebar layar. Di pojok kiri bawah tertulis 32 kolom dan 8 baris.
prop30

Gambar yang sama seperti sebelumnya, dengan font Prop 40. Menunjukkan AU dalam satu baris, membentang selebar layar. Di pojok kiri bawah tertulis 24 kolom dan 6 baris.
prop40

Gambar yang sama seperti sebelumnya, dengan font Prop 60. Menampilkan AN dalam satu baris, membentang selebar layar. Di bagian bawah tertulis 15 kolom dan 4 baris.
prop60

Gambar yang sama seperti sebelumnya, dengan font CJK 16. Gambar ini menampilkan AZ dalam satu baris, mencakup sekitar dua pertiga layar. Baris-baris berikutnya bertuliskan VEXcode dalam bahasa Mandarin Sederhana, Mandarin Tradisional, Korea, dan Jepang. Di bagian bawah tertulis 43 kolom dan 12 baris.
fontType::cjk16

Return Values

Fungsi ini tidak mengembalikan nilai.

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

Tangkapan layar dari layar V5 Brain yang menunjukkan teks putih bertuliskan VEX dengan ukuran font lebih besar dari ukuran default, di pojok kiri atas.


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

Tangkapan layar dari layar V5 Brain yang menunjukkan teks "VEX机器人" dalam huruf Mandarin di pojok kiri atas.

setPenWidth#

Mengatur ketebalan garis yang digambar dan garis luar bentuk.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Parameter

Jenis

Keterangan

width

uint32_t

Lebar pena, dalam piksel, dari 0 hingga 32.

Return Values

Fungsi ini tidak mengembalikan nilai.

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

Tangkapan layar dari layar V5 Brain yang menunjukkan persegi panjang dengan batas tebal tercetak di kuadran kiri atas layar.

setPenColor#

Mengatur warna teks, piksel, garis, dan garis luar bentuk.

Available Functions

1 — Mengatur warna pena menggunakan objek warna yang telah ditentukan sebelumnya atau warna kustom.

void setPenColor(
    const color& color );

2 — Mengatur warna pena menggunakan nilai warna heksadesimal.

void setPenColor(
    const char* color );

3 Mengatur warna pena menggunakan nilai hue.

void setPenColor(
    int hue );

Parameters

Parameter

Jenis

Keterangan

color

const color&

Mengatur warna pena menggunakan objek color Warna yang telah ditentukan meliputi:

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

color

const char*

Mengatur warna pena menggunakan nilai warna heksadesimal yang direpresentasikan sebagai string (misalnya, “#FF0000”).

hue

int

Mengatur warna pena menggunakan nilai hue bilangan bulat dalam rentang 0–359, yang mewakili derajat di sekitar roda warna (misalnya, 0 adalah merah, 120 adalah hijau, dan 240 adalah biru).

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Warna pena default di awal proyek adalah white.

  • Warna pena digunakan untuk garis luar bentuk (seperti dengan drawCircle atau drawRectangle), teks dan keluaran numerik (dengan print dan printAt), dan piksel individual yang digambar dengan drawPixel.

  • Nilai parameter hue didasarkan pada roda warna melingkar, seperti yang ditunjukkan di bawah ini, di mana nilai-nilai tersebut mewakili derajat di sekitar roda (misalnya, merah mendekati 0°, hijau mendekati 120°, dan biru mendekati 240°).

Roda warna yang menunjukkan rentang warna dari 0 hingga 359, di mana merah adalah 0, hijau adalah 120, dan biru adalah 240.

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

Tangkapan layar dari layar V5 Brain yang menunjukkan persegi panjang yang digambar dengan warna oranye di kuadran kiri atas layar.

setFillColor#

Mengatur warna isian yang digunakan saat bentuk digambar.

Available Functions

1 — Mengatur warna isian menggunakan objek warna yang telah ditentukan sebelumnya atau warna kustom.

void setFillColor(
    const color& color );

2 — Mengatur warna isian menggunakan nilai warna heksadesimal.

void setFillColor(
    const char* color );

3 — Mengatur warna isian menggunakan nilai hue.

void setFillColor(
    int hue );

Parameters

Parameter

Jenis

Keterangan

color

const color&

Mengatur warna isian menggunakan objek color Warna yang telah ditentukan meliputi:

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

color

const char*

Mengatur warna isian menggunakan nilai warna heksadesimal yang direpresentasikan sebagai string (misalnya, “#00FF00”).

hue

int

Mengatur warna isian menggunakan nilai hue bilangan bulat dalam rentang 0–359, yang mewakili derajat di sekitar roda warna (misalnya, 0 adalah merah, 120 adalah hijau, dan 240 adalah biru).

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Warna isian default di awal proyek adalah black.

  • Warna isian digunakan untuk bagian dalam bentuk (seperti pada drawCircle atau drawRectangle).

  • Warna isian digunakan sebagai warna latar belakang untuk teks yang dicetak (seperti pada print dan printAt).

    • Jika transparent digunakan dengan teks yang dicetak, latar belakangnya akan menjadi black.

  • Nilai parameter hue didasarkan pada roda warna melingkar, seperti yang ditunjukkan di bawah ini, di mana nilai-nilai tersebut mewakili derajat di sekitar roda (misalnya, merah mendekati 0°, hijau mendekati 120°, dan biru mendekati 240°).

Roda warna yang menunjukkan rentang warna dari 0 hingga 359, di mana merah adalah 0, hijau adalah 120, dan biru adalah 240.

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

Tangkapan layar dari layar V5 Brain yang menunjukkan persegi panjang berisi warna ungu di kuadran kiri bawah layar.

setOrigin#

Menentukan titik asal yang digunakan untuk menggambar dan mencetak berdasarkan koordinat pada layar Brain.

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

Parameters

Parameter

Jenis

Keterangan

x

int32_t

Posisi x titik asal relatif terhadap pojok kiri atas layar Brain dari 0 hingga 479.

y

int32_t

Posisi y titik asal relatif terhadap pojok kiri atas layar Brain dari 0 hingga 239.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Titik asal default adalah pojok kiri atas layar pada koordinat (0, 0).

  • Asal usul berlaku untuk fungsi koordinat seperti drawLine, drawRectangle, drawCircle, dan printAt.

  • Pengaturan awal tetap berlaku sampai diubah lagi atau proyek direset.

setClipRegion#

Menentukan area persegi panjang di layar tempat semua gambar dan teks akan dibatasi. Konten apa pun di luar area ini tidak akan ditampilkan.

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

Parameters

Parameter

Jenis

Keterangan

x

int

Koordinat x dari sudut kiri atas wilayah klip, diberikan sebagai bilangan bulat dari 0 hingga 479.

y

int

Koordinat y dari sudut kiri atas wilayah klip, diberikan sebagai bilangan bulat dari 0 hingga 239.

width

int

Lebar area pemotongan dalam piksel, diberikan sebagai bilangan bulat dari 0 hingga 479.

height

int

Tinggi area pemotongan dalam piksel, diberikan sebagai bilangan bulat dari 0 hingga 239.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Fungsi menggambar tetap dijalankan meskipun berada di luar area pemotongan, tetapi hanya bagian di dalam area tersebut yang terlihat.

  • Koordinat x dan y relatif terhadap titik asal layar saat ini, yang dapat diubah menggunakan setOrigin.

  • Area pemotongan hanya berlaku untuk thread saat ini.

  • Menetapkan wilayah klip baru akan menggantikan wilayah klip yang sebelumnya ditetapkan untuk thread saat ini.

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

Tangkapan layar dari layar V5 Brain dengan teks putih bertuliskan "Cut off" dengan kotak merah solid tepat di bawahnya di kuadran kiri atas, yang mencerminkan apa yang tercetak di dalam area klip.

drawPixel#

Menggambar satu piksel pada layar V5 Brain di lokasi piksel x dan y yang dipilih.

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

Parameters

Parameter

Jenis

Keterangan

x

int

Koordinat x tempat piksel akan digambar, diberikan sebagai bilangan bulat dari 0 hingga 479.

y

int

Koordinat y tempat piksel akan digambar, diberikan sebagai bilangan bulat dari 0 hingga 239.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Piksel digambar menggunakan warna pena saat ini yang diatur dengan setPenColor.

  • Koordinat x dan y relatif terhadap titik asal layar saat ini, yang dapat diatur menggunakan setOrigin.

  • Jika lokasi piksel yang ditentukan berada di luar batas layar, piksel tersebut tidak akan digambar.

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

Tangkapan layar dari layar V5 Brain yang menunjukkan berbagai piksel yang memperlihatkan sudut-sudut persegi di dekat tengah layar.

drawLine#

Menggambar garis lurus yang menghubungkan dua titik pada layar V5 Brain.

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

Parameters

Parameter

Jenis

Keterangan

x1

int

Koordinat x awal garis, diberikan sebagai bilangan bulat dari 0 hingga 479.

y1

int

Koordinat y awal garis, diberikan sebagai bilangan bulat dari 0 hingga 239.

x2

int

Koordinat x terakhir dari garis tersebut, diberikan sebagai bilangan bulat dari 0 hingga 479.

y2

int

Koordinat y ujung garis, diberikan sebagai bilangan bulat dari 0 hingga 239.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Garis digambar menggunakan warna pena saat ini yang diatur dengan setPenColor.

  • Lebar garis ditentukan oleh lebar pena saat ini yang diatur dengan setPenWidth.

  • Koordinat x dan y relatif terhadap titik asal layar saat ini, yang dapat diatur menggunakan setOrigin.

  • Jika ada bagian garis yang berada di luar batas layar, hanya bagian yang terlihat yang akan digambar.

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

Tangkapan layar dari layar V5 Brain menunjukkan garis diagonal tipis di tengah, dari sudut kiri atas ke sudut kanan bawah.

drawRectangle#

Menggambar persegi panjang pada layar V5 Brain di posisi dan ukuran yang ditentukan.

Available Functions

1 — Menggambar dan mengisi persegi panjang menggunakan warna isi yang saat ini dikonfigurasi.

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

2 — Menggambar dan mengisi persegi panjang menggunakan objek warna yang telah ditentukan atau warna kustom.

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

3 — Menggambar dan mengisi persegi panjang menggunakan nilai warna heksadesimal.

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

4 — Menggambar dan mengisi persegi panjang menggunakan nilai hue.

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

Parameters

Parameter

Jenis

Keterangan

x

int

Koordinat x dari sudut kiri atas persegi panjang, diberikan sebagai bilangan bulat dari 0 hingga 479.

y

int

Koordinat y dari sudut kiri atas persegi panjang, diberikan sebagai bilangan bulat dari 0 hingga 239.

width

int

Lebar persegi panjang, diberikan sebagai bilangan bulat dari 0 hingga 479.

height

int

Tinggi persegi panjang, diberikan sebagai bilangan bulat dari 0 hingga 239.

color

const color&

Mengisi persegi panjang menggunakan objek warna color

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Ini juga dapat menggunakan objek warna kustom.

color

const char*

Mengisi persegi panjang menggunakan nilai warna heksadesimal (misalnya, “#FF0000”).

hue

int

Mengisi persegi panjang menggunakan nilai rona dalam rentang 0–359.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Garis luar persegi panjang digambar menggunakan warna pena saat ini yang diatur dengan setPenColor.

  • Ketebalan garis luar ditentukan oleh lebar pena saat ini yang diatur dengan setPenWidth.

  • When no color parameter is provided, the rectangle interior is filled using the current fill color set with setFillColor.

  • Koordinat x dan y relatif terhadap titik asal layar saat ini, yang dapat diubah menggunakan setOrigin.

  • Jika ada bagian dari persegi panjang yang berada di luar batas layar, hanya bagian yang terlihat yang akan digambar.

  • Nilai parameter hue didasarkan pada roda warna melingkar, seperti yang ditunjukkan di bawah ini, di mana nilai-nilai tersebut mewakili derajat di sekitar roda (misalnya, merah mendekati 0°, hijau mendekati 120°, dan biru mendekati 240°).

Roda warna yang menunjukkan rentang warna dari 0 hingga 359, di mana merah adalah 0, hijau adalah 120, dan biru adalah 240.

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

Tangkapan layar dari layar V5 Brain menunjukkan persegi panjang dengan batas putih tipis yang tercetak di kuadran kiri atas.

drawCircle#

Menggambar lingkaran pada layar V5 Brain di posisi dan jari-jari yang ditentukan.

Available Functions

1 — Menggambar dan mengisi lingkaran menggunakan warna isi yang saat ini dikonfigurasi.

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

2 — Menggambar dan mengisi lingkaran menggunakan objek warna yang telah ditentukan atau warna kustom.

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

3 — Menggambar dan mengisi lingkaran menggunakan nilai warna heksadesimal.

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

4 — Menggambar dan mengisi lingkaran menggunakan nilai hue.

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

Parameters

Parameter

Jenis

Keterangan

x

int

Koordinat x dari pusat lingkaran, diberikan sebagai bilangan bulat dari 0 hingga 479.

y

int

Koordinat y dari pusat lingkaran, diberikan sebagai bilangan bulat dari 0 hingga 239.

radius

int

Jari-jari lingkaran, diberikan sebagai bilangan bulat dari 0 hingga 239 piksel.

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*

Mengisi lingkaran menggunakan nilai warna heksadesimal (misalnya, “#FF0000”).

hue

int

Mengisi lingkaran menggunakan nilai rona dalam rentang 0–359.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Garis luar lingkaran digambar menggunakan warna pena saat ini yang diatur dengan setPenColor.

  • Ketebalan garis luar ditentukan oleh lebar pena saat ini yang diatur dengan setPenWidth.

  • When no color parameter is provided, the circle interior is filled using the current fill color set with setFillColor.

  • Koordinat x dan y relatif terhadap titik asal layar saat ini, yang dapat diubah menggunakan setOrigin.

  • Nilai parameter hue didasarkan pada roda warna melingkar, seperti yang ditunjukkan di bawah ini, di mana nilai-nilai tersebut mewakili derajat di sekitar roda (misalnya, merah mendekati 0°, hijau mendekati 120°, dan biru mendekati 240°).

Roda warna yang menunjukkan rentang warna dari 0 hingga 359, di mana merah adalah 0, hijau adalah 120, dan biru adalah 240.

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

Tangkapan layar dari layar V5 Brain menunjukkan lingkaran dengan garis putih tipis di tengahnya.

drawImageFromFile#

Menggambar gambar pada layar V5 Brain menggunakan file gambar yang tersimpan di kartu SD.

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

Parameters

Parameter

Jenis

Keterangan

name

const char*

Nama file gambar di kartu SD. File harus memiliki ekstensi .bmp atau .png.

x

int

Koordinat x, dalam piksel dari 0 hingga 479, di mana tepi kiri gambar akan digambar.

y

int

Koordinat y, dalam piksel dari 0 hingga 239, di mana tepi atas gambar akan digambar.

Return Values

Mengembalikan nilai Boolean yang menunjukkan apakah gambar berhasil digambar:

  • true — Gambar berhasil dimuat dan digambar di layar.
  • false — Gambar tidak dapat digambar (misalnya, jika file tidak ada atau tidak valid).

Notes
  • Format gambar yang didukung adalah .bmp dan .png.

  • Ukuran berkas gambar tidak boleh melebihi 512 KB

    • Pengkodean RLE 8-bit direkomendasikan untuk meminimalkan ukuran file.

  • Dimensi gambar maksimum yang didukung adalah ukuran layar Brain (sekitar 479 x 239 piksel).

  • Koordinat x dan y relatif terhadap titik asal layar saat ini, yang dapat diubah menggunakan setOrigin.

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

render#

Mengaktifkan double buffering untuk layar Brain. Setelah dipanggil, fungsi menggambar apa pun (seperti teks, bentuk, atau gambar) tidak akan langsung muncul lagi untuk sisa proyek. Sebaliknya, pembaruan hanya akan ditampilkan saat render digunakan lagi. Ini memungkinkan pembaruan layar yang lebih halus dan terkontrol, tetapi berarti tidak ada yang akan terlihat sampai render digunakan.

Available Functions

1 — Mengaktifkan double buffering atau menampilkan buffer belakang ke layar.

bool render();

2 — Menampilkan buffer belakang ke layar dengan kontrol atas perilaku sinkronisasi vertikal dan eksekusi penjadwal opsional.

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

Parameters

Parameter

Jenis

Keterangan

bVsyncWait

bool

​

  • true — Tunggu hingga layar melakukan penyegaran vertikal sebelum melakukan rendering untuk mengurangi robekan visual.
  • false — Jangan menunggu hingga layar melakukan penyegaran vertikal sebelum melakukan rendering.

bRunScheduler

bool

Opsional.

  • true (default) — Izinkan tugas latar belakang berjalan saat menunggu rendering.
  • false — Jangan izinkan tugas latar belakang berjalan saat menunggu rendering.

Return Values

Mengembalikan nilai Boolean yang menunjukkan apakah gambar yang tersimpan dalam buffer berhasil ditampilkan di layar:

  • true — Gambar berhasil ditampilkan di layar.
  • false — Gambar tidak dapat ditampilkan di layar.
  • Notes
    • Memanggil render akan mengharuskan render digunakan untuk sisa proyek.

    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#

Laporan menunjukkan apakah layar V5 Brain sedang ditekan saat ini.

Available Functions
bool pressing();

Parameters

Fungsi ini tidak menerima parameter apa pun.

Return Values

Mengembalikan nilai Boolean yang menunjukkan status penekanan layar saat ini:true — Layar sedang ditekan. atau false — Layar tidak ditekan.

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#

Mengembalikan koordinat x dari penekanan terakhir pada layar V5 Brain.

Available Functions
int32_t xPosition();

Parameters

Fungsi ini tidak menerima parameter apa pun.

Return Values

Mengembalikan nilai int32_t yang mewakili koordinat x, dalam piksel dari 0 hingga 479, dari penekanan layar terakhir.

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#

Mengembalikan koordinat y dari penekanan terakhir pada layar V5 Brain.

Available Functions
int32_t yPosition();

Parameters

Fungsi ini tidak menerima parameter apa pun.

Return Values

Mengembalikan nilai int32_t yang mewakili koordinat y, dalam piksel dari 0 hingga 239, dari penekanan layar terakhir.

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#

Mendaftarkan fungsi yang akan dipanggil saat layar V5 Brain ditekan.

Available Functions

1 — Memanggil sebuah fungsi ketika layar ditekan.

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

2 — Memanggil sebuah fungsi ketika layar ditekan dan meneruskan argumen yang ditentukan pengguna ke fungsi callback.

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

Parameters

Parameter

Jenis

Keterangan

callback

void (*)(void)

Sebuah fungsi yang dipanggil ketika layar ditekan.

callback

void ()(void)

Sebuah fungsi yang dipanggil ketika layar ditekan dan menerima argumen yang ditentukan pengguna.

arg

void*

Nilai yang ditentukan pengguna yang diteruskan ke fungsi callback saat layar ditekan.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Fungsi callback dieksekusi setiap kali layar Brain ditekan.

  • Hanya satu fungsi callback yang dapat didaftarkan dalam satu waktu; memanggil pressed lagi akan menggantikan callback sebelumnya.

  • Fungsi callback harus mengembalikan void.

Examples

Definisikan fungsi callback (di luar 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);
}

Daftarkan fungsi callback di dalam 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#

Mendaftarkan fungsi yang akan dipanggil saat layar V5 Brain dilepaskan setelah ditekan.

Available Functions

1 — Memanggil sebuah fungsi ketika layar dilepaskan setelah ditekan.

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

2 — Memanggil sebuah fungsi ketika layar dilepaskan setelah ditekan dan meneruskan argumen yang ditentukan pengguna ke fungsi callback.

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

Parameters

Parameter

Jenis

Keterangan

callback

void (*)(void)

Sebuah fungsi yang dipanggil ketika layar dilepaskan setelah ditekan.

callback

void ()(void)

Sebuah fungsi yang dipanggil ketika layar dilepaskan setelah ditekan dan menerima argumen yang ditentukan pengguna.

arg

void*

Nilai yang ditentukan pengguna yang diteruskan ke fungsi callback ketika layar dilepaskan setelah ditekan.

Return Values

Fungsi ini tidak mengembalikan nilai.

Notes
  • Fungsi callback dieksekusi setiap kali layar Brain dilepaskan setelah ditekan.

  • Hanya satu fungsi callback yang dapat didaftarkan dalam satu waktu; memanggil released lagi akan menggantikan callback sebelumnya.

  • Fungsi callback harus mengembalikan void.

Examples

Definisikan fungsi callback (di luar 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);
}

Daftarkan fungsi callback di dalam 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);
  }
}