Képernyő#
Bevezetés#
A Képernyő metódusok szabályozzák, hogy az IQ (2. generációs) agy hogyan jelenít meg szöveget, számokat és grafikákat a beépített képernyőjén.
Rajzolás esetén az agy felbontása 160 x 108 pixel.
Ez az oldal brain értéket használja példaként a Brain névre. Szükség szerint cserélje le a saját konfigurált névre.
Az alábbiakban felsoroljuk az összes módszert:
Kurzor nyomtatása – Szöveg elhelyezése és nyomtatása.
print— Szöveget, számokat vagy változóértékeket nyomtat ki az aktuális kurzorpozícióban.set_cursor— A kurzort egy adott sorra és oszlopba mozgatja.next_row— A kurzort a következő sor 1. oszlopába mozgatja.clear_row— Töröl egy sornyi szöveget.row— Visszaadja azt a sort, ahová a szöveg ki lesz nyomtatva.column— Visszaadja azt az oszlopot, ahová a szöveg ki lesz nyomtatva.print_at— Szöveget, számokat vagy változóértékeket nyomtat ki egy adott x és y koordinátán.get_string_width— Visszaadja egy karakterlánc szélességét pixelben az aktuális betűtípus használatával.get_string_height— Visszaadja egy karakterlánc magasságát pixelben az aktuális betűtípus használatával.
Mutátorok – Képernyőbeállítások, színek és rajzolási viselkedés módosítása.
clear_screen— Törli a képernyőt az összes rajztól és szövegtől.set_font— Beállítja a nyomtatott szöveg betűtípusát.set_pen_width— Beállítja a rajzolt vonalak és alakzatok körvonalainak vastagságát.set_pen_color— Beállítja a szöveg, a képpontok, a vonalak és az alakzatok körvonalainak színét.set_fill_color— Beállítja a rajzolt alakzatok és a nyomtatott szöveg hátterének kitöltési színét.set_origin— Beállítja a koordináta alapú nyomtatáshoz és rajzoláshoz használt origót.
Rajzolás – Grafikák hozzáadása a képernyőhöz.
draw_pixel— Egy pixelt rajzol egy koordinátán.draw_line— Két pont között húz egy vonalat.draw_rectangle— Téglalapot rajzol.draw_circle— Kör rajzolása.set_clip_region— Korlátozza a rajzok és szövegek megjelenési helyét.render— Csak meghívásakor frissíti az Agy képernyőjét szöveggel és rajzokkal.
Kurzor nyomtatása#
print#
print parancs szöveget, számokat vagy változóértékeket nyomtat ki a Brain képernyőn az aktuális kurzorpozíció és betűtípus pozícióban.
Usage:
brain.screen.print(text, precision, opaque)
Paraméterek |
Leírás |
|---|---|
|
A képernyőn kinyomtatandó szöveg, szám vagy változó értéke. |
|
Opcionális. A számok megjelenítésekor megjelenítendő tizedesjegyek száma. Ezt kulcsszó argumentumként kell megadni, pl.: |
|
Opcionális. |
# Display a message at the starting
# cursor position
brain.screen.print("Hello, Robot!")

# Display a percentage with 4 decimal
# places and a blue background
brain.screen.set_fill_color(Color.BLUE)
brain.screen.print((42/100), precision = 4, opaque = True)
set_cursor#
set_cursor parancs a kurzort a Brain képernyő egy adott sorára és oszlopára mozgatja. A következő print hívás ezen a helyen kezdi meg a nyomtatást. Az, hogy hány sor és oszlop fér el kényelmesen, a kiválasztott betűtípustól függ.
Az egyszélességű betűtípusok azonos szélességű karaktereket használnak, így a szöveg elhelyezése egységes. Ezzel szemben az arányos betűtípusok karakterszélessége eltérő, így egyes betűk több helyet foglalnak el, mint mások. Azonban a használt típustól függetlenül set_cursor a kurzort a sor- és oszlopméret, nem pedig a betűstílus alapján pozicionálja. A betűméret a set_font segítségével állítható be.
Usage:
brain.screen.set_cursor(row, column)
Paraméterek |
Leírás |
|---|---|
|
A sor, ahová a kurzort át kell helyezni. |
|
Az oszlop, amelyre a kurzort át kell helyezni. |
# Repeatedly print the Brain's timer at
# the top left of the screen
while True:
brain.screen.print(brain.timer.time(SECONDS))
brain.screen.next_row()
wait(1, SECONDS)
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)

next_row#
next_row parancs a kurzort az Agy képernyő következő sorának 1. oszlopába mozgatja.
Usage:
brain.screen.next_row()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# Display two lines of text
brain.screen.print("Line 1")
brain.screen.next_row()
brain.screen.print("Line 2")

clear_row#
clear_row parancs egyetlen sornyi szöveget töröl a Brain képernyőn.
Usage:
brain.screen.clear_row(row, color)
Paraméterek |
Leírás |
|---|---|
sor |
Opcionális. A törlendő sor. Az alapértelmezett érték az aktuális kurzorsor. |
szín |
Opcionális. A kiürített sorra alkalmazandó szín. Lehetőségek:
|
# Display text on two rows
brain.screen.print("This text stays")
brain.screen.next_row()
brain.screen.print("This disappears")
# Wait 3 seconds before clearing
# only the second row
wait(3, SECONDS)
brain.screen.clear_row()
# Turn the 5th row green
brain.screen.clear_row(5, Color.GREEN)
row#
A row visszaadja azt a sort, ahová a szöveg egész számként kerül kiírásra.
Usage:
brain.screen.row()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# Set cursor to (3,2) and print
# row number
brain.screen.set_cursor(3, 2)
brain.screen.print(brain.screen.row())

column#
A column visszaadja azt az oszlopot, ahová a szöveg egész számként kerül kiírásra.
Usage:
brain.screen.column()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# Set cursor to (3,2) and print
# column number
brain.screen.set_cursor(3, 2)
brain.screen.print(brain.screen.column())

print_at#
A print_at függvény szöveget, számokat vagy változóértékeket nyomtat ki a Brain képernyőre egy megadott x és y koordinátán pixelben, a jelenleg beállított font és origin paraméterekkel. Ez a metódus figyelmen kívül hagyja a kurzor aktuális pozícióját.
Usage:
brain.screen.print_at(text, x, y, precision, opaque)
Paraméterek |
Leírás |
|---|---|
|
A kinyomtatandó szöveg, szám vagy változó értéke. |
|
Az x koordináta, amelyet kulcsszó argumentumként kell kinyomtatni, azaz: |
|
Az y koordináta, amelyet kulcsszó argumentumként kell kinyomtatni, azaz: |
|
Opcionális. A számok megjelenítésekor megjelenítendő tizedesjegyek száma. Ezt kulcsszó argumentumként kell megadni, pl.: |
|
Opcionális. |
# Print the number 1 on the Brain's screen at position (100, 40)
brain.screen.print_at(1, x=100, y=40)

# Display 1/3 with 3 decimal places and a blue background
brain.screen.set_fill_color(Color.BLUE)
brain.screen.print_at((1/3), x=100, y=40, precision=3, opaque=True)
get_string_width#
get_string_width Visszaadja egy karakterlánc szélességét pixelekben, egész számként, ahogyan az a Brain képernyőjén megjelenne. A szélesség a karakterlánc hosszától és a jelenlegi betűtípustól függően változik.
Usage:
brain.screen.get_string_width(string)
Paraméterek |
Leírás |
|---|---|
|
A mérendő húr. |
get_string_height#
get_string_height Visszaadja egy karakterlánc magasságát pixelben, egész számként, ahogyan az a Brain képernyőjén megjelenne. A magasság a karakterlánc hosszától és a jelenlegi betűtípustól függően változik.
Usage:
brain.screen.get_string_height(string)
Paraméterek |
Leírás |
|---|---|
|
A mérendő húr. |
Mutátorok#
clear_screen#
clear_screen parancs törli az összes rajzot és szöveget az Agy képernyőjéről.
Usage:
brain.screen.clear_screen(color)
Paraméterek |
Leírás |
|---|---|
|
Opcionális. Beállítja a képernyő színét. Lehetőségek:
|
# Draw a circle and clear it after
# 2 seconds
brain.screen.draw_circle(80, 50, 20)
wait(2, SECONDS)
brain.screen.clear_screen()
# Turn the screen red
brain.screen.clear_screen(Color.RED)

set_font#
set_font paraméterrel beállítható a Brain képernyőn megjelenő szöveg betűtípusa. Ez a betűtípus minden, a print vagy az print_at paranccsal kinyomtatott szövegre érvényes. A projekt kezdetén az alapértelmezett betűtípus a MONO20.
Usage:
brain.screen.set_font(fontname)
Paraméter |
Leírás |
|---|---|
|
A betűtípust a következők egyikére állítja be:
MONO30PROP40 |
|
|
|
|---|---|---|
|
|
|
|
|
|
|
# Display two different fonts on
# two separate lines
brain.screen.set_font(FontType.MONO20)
brain.screen.print("Mono Medium")
brain.screen.next_row()
brain.screen.set_font(FontType.PROP20)
brain.screen.print("Prop Medium")

set_pen_width#
set_pen_width beállítja a rajzolt vonalak és alakzatok körvonalainak vastagságát.
Usage:
brain.screen.set_pen_width(width)
Paraméter |
Leírás |
|---|---|
|
A toll szélessége pixelben, 0 és 32 között. |
# Draw two circles with
# different pen widths
brain.screen.draw_circle(40, 70, 20)
brain.screen.set_pen_width(5)
brain.screen.draw_circle(100, 70, 20)

set_pen_color#
set_pen_color beállítja a szöveg, a képpontok, a vonalak és az alakzatok körvonalainak színét.
Usage:
brain.screen.set_pen_color(color)
Paraméter |
Leírás |
|---|---|
|
Opcionális. A használandó toll és betűtípus színe. Lehetőségek:
|
# Draw two rectangles with
# different colors
brain.screen.draw_rectangle(100, 50, 10, 20)
brain.screen.set_pen_color(Color.BLUE)
brain.screen.draw_rectangle(50, 50, 10, 20)

set_fill_color#
set_fill_color beállítja az alakzatok rajzolásakor használt kitöltőszínt.
Usage:
brain.screen.set_fill_color(color)
Paraméter |
Leírás |
|---|---|
|
Opcionális. A használandó kitöltőszín. Lehetőségek:
|
# Draw a yellow circle
brain.screen.set_fill_color(Color.YELLOW)
brain.screen.draw_circle(50, 50, 20)

set_origin#
set_origin beállítja a rajzoláshoz és koordináta alapú nyomtatáshoz használt origót a Brain képernyőn. Alapértelmezés szerint az origó a képernyő bal felső sarka.
Usage:
brain.screen.set_origin(x, y)
Paraméter |
Leírás |
|---|---|
|
Az origóként beállítandó új x koordináta, 0 és 159 közötti egész számként megadva. |
|
Az origóként beállítandó új y koordináta, 0 és 107 közötti egész számként megadva. |
# Draw a line with the origin set to (50, 50)
brain.screen.set_origin(50, 50)
brain.screen.draw_line(1, 1, 159, 107)

Döntetlen#
draw_pixel#
draw_pixel függvény egy pixelt rajzol a kiválasztott x és y koordinátán az aktuális toll szín használatával.
Usage:
brain.screen.draw_pixel(x, y)
Paraméter |
Leírás |
|---|---|
|
Az x koordináta, ahová a képpontot kirajzoljuk, 0 és 159 közötti egész számként megadva. |
|
Az y koordináta, ahová a képpontot kirajzoljuk, 0 és 107 közötti egész számként megadva. |
# Draw one pixel at the center
# of the screen
brain.screen.draw_pixel(80, 50)
![]()
draw_line#
draw_line függvény egy vonalat húz az első képernyő-koordinátától ( (x1, y1) a második képernyő-koordinátáig (x2, y2) a jelenlegi toll szélessége és toll színe paraméterek felhasználásával.
Az x és y koordináták az alapértelmezett (0, 0) origót használják, kivéve, ha a set_origin használatával más origót állítottak be.
Usage:
brain.screen.draw_line(x1, y1, x2, y2)
Paraméter |
Leírás |
|---|---|
|
A vonal kezdő x koordinátája, 0 és 159 közötti egész számként megadva. |
|
A vonal kezdő y koordinátája, 0 és 107 közötti egész számként megadva. |
|
A vonal végpontjának x koordinátája, 0 és 159 közötti egész számként megadva. |
|
A vonal végső y koordinátája, 0 és 107 közötti egész számként megadva. |
# Draw a line from the top left to
# bottom right of the screen
brain.screen.draw_line(0, 0, 159, 107)

draw_rectangle#
draw_rectangle függvény egy téglalapot rajzol, amelynek bal felső sarka a kiválasztott (x, y) koordinátán van, a mérete pedig a megadott szélesség és magasság által meghatározott, pixelben mért értékek alapján. A téglalap körvonalát az aktuális pen width és pen color paraméterek segítségével rajzolja meg. A belsejét az aktuális fill color tölti ki, kivéve, ha az opcionális color paramétert használjuk.
Az x és y koordináták az alapértelmezett (0,0) origót használják, kivéve, ha a set_origin használatával más origót állítottak be.
Usage:
brain.screen.draw_rectangle(x, y, width, height, color)
Paraméter |
Leírás |
|---|---|
|
A téglalap bal felső sarkának x koordinátája, 0 és 159 közötti egész számként megadva. |
|
A téglalap bal felső sarkának y koordinátája, 0 és 107 közötti egész számként megadva. |
|
A téglalap szélessége pixelben. |
|
A téglalap magassága pixelben. |
|
Opcionális. A téglalap kitöltési színe. Lehetőségek:
|
# Draw a red rectangle on the screen
brain.screen.draw_rectangle(25, 25, 100, 50, Color.RED)

draw_circle#
draw_circle függvény egy kört rajzol, amelynek középpontja a kiválasztott (x, y) koordinátán van, és a méretet a megadott sugár határozza meg, mindezt pixelben mérve. A kör körvonalát az aktuális pen width és pen color paraméterek segítségével rajzolja meg. A belső teret az aktuális fill color tölti ki, kivéve, ha az opcionális color paramétert használjuk.
Az x és y koordináták az alapértelmezett (0,0) origót használják, kivéve, ha a set_origin használatával más origót állítottak be.
Usage:
brain.screen.draw_circle(x, y, radius, color)
Paraméter |
Leírás |
|---|---|
|
A kör középpontjának x koordinátája, 0 és 159 közötti egész számként megadva. |
|
A kör középpontjának y koordinátája, 0 és 107 közötti egész számként megadva. |
|
A kör sugara, pixelben. |
|
Opcionális. A kör kitöltési színe. Lehetőségek:
|
# Draw a green circle on the screen
brain.screen.draw_circle(80, 50, 20, Color.GREEN)

set_clip_region#
set_clip_region egy téglalap alakú területet határoz meg a képernyőn, ahová az összes rajz és szöveg be lesz zárva. Az ezen a területen kívüli tartalom nem jelenik meg.
Usage:
brain.screen.set_clip_region(x, y, width, height)
Paraméter |
Leírás |
|---|---|
|
A klip régió bal felső sarkának x koordinátája, 0 és 159 közötti egész számként vagy lebegőpontos számként megadva. |
|
A klip régió bal felső sarkának y koordinátája, 0 és 107 közötti egész számként vagy lebegőpontos számként megadva. |
|
A klipterület szélessége pixelben. |
|
A klipterület magassága pixelben. |
# Restrict text and drawings to a specific region
brain.screen.set_clip_region(0, 0, 120, 120)
brain.screen.draw_rectangle(60, 60, 100, 100, Color.RED)
brain.screen.print_at("Cut off!", x=60, y=60)

render#
render dupla pufferelést engedélyez az Agy képernyőjén. Hívás után a rajzolási parancsok (például szöveg, alakzatok vagy képek) nem jelennek meg azonnal a projekt többi részében. Ehelyett a frissítések csak akkor jelennek meg, ha render at újra használjuk. Ez simább és kontrolláltabb képernyőfrissítéseket tesz lehetővé, de azt jelenti, hogy semmi sem lesz látható, amíg render nem használjuk.
Usage:
brain.screen.render()
Paraméterek |
Leírás |
|---|---|
Ennek a metódusnak nincsenek paraméterei. |
# Render text after moving
brain.screen.render()
brain.screen.print("Render later...")
drivetrain.drive_for(FORWARD, 100, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
brain.screen.render()









