Obrazovka#

Zavedení#

Metody Screen řídí, jak kódovací robot VEX AIM zobrazuje text, čísla a grafiku na obrazovce a jak reaguje na stisknutí kláves na obrazovce.

Níže je uveden seznam všech metod:

Dotyk – Detekce a reakce na stisknutí obrazovky.

  • pressing – Vrátí, zda je obrazovka aktuálně stisknuta.

  • x_position – Vrací souřadnici x posledního stisknutí obrazovky.

  • y_position – Vrací souřadnici y posledního stisknutí obrazovky.

Tisk kurzoru – Zobrazení textu pomocí systému řádků/sloupců.

  • print – Vypíše text, čísla nebo hodnoty proměnných na aktuální pozici kurzoru.

  • set_cursor – Přesune kurzor na konkrétní řádek a sloupec.

  • next_row – Přesune kurzor do sloupce 1 dalšího řádku.

  • clear_row – Vymaže řádek textu.

  • get_row – Vrátí aktuální řádek kurzoru.

  • get_column – Vrátí aktuální sloupec kurzoru.

XY tisk – zobrazení textu na určité souřadnici obrazovky.

  • print_at – Vypíše text, čísla nebo hodnoty proměnných na zadané souřadnici x a y.

  • set_origin – Nastaví počátek použitý pro tisk a kreslení na základě souřadnic.

Mutátory – Vyčistěte obrazovku nebo aktualizujte vizuální nastavení.

  • clear_screen – Vymaže obrazovku od všech kreseb a textu.

  • set_font – Nastaví písmo pro tištěný text.

  • set_pen_width – Nastavuje tloušťku nakreslených čar a obrysů tvarů.

  • set_pen_color – Nastaví barvu textu, pixelů, čar a obrysů tvarů.

  • set_fill_color – Nastaví barvu výplně pro nakreslené tvary a tištěné textové pozadí.

Kreslení – Přidání grafiky a obrázků na obrazovku.

Zpětná volání – Spouštějí funkce při stisknutí nebo uvolnění obrazovky.

  • pressed – Registruje funkci, která se má volat při stisknutí obrazovky.

  • released – Registruje funkci, která se má zavolat při uvolnění obrazovky.

Dotek#

pressing#

pressing vrací booleovskou hodnotu označující, zda je obrazovka robota aktuálně stisknuta.

  • True – Probíhá stisknutí tlačítka na obrazovce.

  • False – Obrazovka není stisknuta.

Usage:
robot.screen.pressing()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Turn LEDs white only while the screen is pressed.
while True:
    if robot.screen.pressing():
        robot.led.on(ALL_LEDS, WHITE)
    else:
        robot.led.off(ALL_LEDS)

    wait(50, MSEC)

# Display different messages after the screen is pressed
while not robot.screen.pressing():
    wait(5, MSEC)
robot.screen.print("First message!")
robot.screen.next_row()
# Lift finger to press the screen again
while robot.screen.pressing():
    wait(5, MSEC)
while not robot.screen.pressing():
    wait(5, MSEC)
robot.screen.print("Second message!")
robot.screen.next_row()

x_position#

x_position vrací souřadnici x posledního stisknutí obrazovky jako celé číslo od 0 (vlevo) do 240 (vpravo).

Usage:
robot.screen.x_position()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Display the x-coordinate of where
# the screen is pressed
while True:
    if robot.screen.pressing():
        robot.screen.clear_screen()
        robot.screen.print(robot.screen.x_position())
    wait (50, MSEC)

y_position#

y_position vrací souřadnici y posledního stisknutí obrazovky jako celé číslo od 0 (nahoře) do 240 (dole).

Usage:
robot.screen.y_position()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Display the y-coordinate of where
# the screen is pressed
while True:
    if robot.screen.pressing():
        robot.screen.clear_screen()
        robot.screen.print(robot.screen.y_position())
    wait (50, MSEC)

Tisk kurzoru#

print#

print vytiskne text, čísla nebo hodnoty proměnných na obrazovku robota v aktuální poloze kurzoru a fontu.

Usage:
robot.screen.print(text)

Parametry

Popis

text

Text, číslo nebo hodnota proměnné, která se má zobrazit na obrazovce.

# Display a message at the starting cursor position
robot.screen.print("Hello, Robot!")

Snímek obrazovky robota s bílým nápisem „Hello, Robot!“ nahoře.

set_cursor#

set_cursor přesune textový kurzor na konkrétní řádek a sloupec na obrazovce robota. Další volání print začne tisknout v tomto místě. Počet řádků a sloupců, které se vejdou, závisí na vybraném písmu. S výchozím písmem s pevnou šířkou písma (monospaced medium) se na obrazovce jasně zobrazí až 8 řádků a 13 sloupců. Text umístěný mimo tento rozsah může být oříznutý nebo hůře čitelný.

Monospaced fonty mají všechny znaky stejně široké, což zajišťuje konzistentní umístění textu. Naproti tomu proporcionální fonty se liší šířkou znaků, takže některá písmena zabírají více místa než jiná. Bez ohledu na použitý typ však set_cursor umisťuje kurzor na základě velikosti řádku a sloupce, nikoli stylu písma. Velikost písma lze upravit pomocí set_font.

Usage:
robot.screen.set_cursor(row, column)

Parametry

Popis

row

Řádek, na který se má kurzor přesunout.

column

Sloupec, do kterého se má kurzor přesunout.

# Display text starting at Row 3 Column 2
robot.screen.set_cursor(3, 2)
robot.screen.print("Row 3, Column 2")

Snímek obrazovky robota s textem „Řádek 3, Sloupec 2“ vytištěným bílou barvou těsně nad středem obrazovky, počínaje řádkem 3, sloupcem 2.

next_row#

next_row přesune kurzor do sloupce 1 na dalším řádku na obrazovce robota.

Usage:
robot.screen.next_row()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Display two lines of text
robot.screen.print("Line 1")
robot.screen.next_row()
robot.screen.print("Line 2")

Snímek obrazovky robota s bílým textem. Na obrazovce je nahoře, zarovnaný vlevo, první řádek a hned pod ním druhý řádek.

clear_row#

clear_row vymaže jeden řádek textu na obrazovce robota.

Usage:
robot.screen.clear_row(row, color)

Parametr

Popis

row

Volitelné. Řádek, který se má vymazat jako celé číslo. Výchozí hodnota je aktuální řádek kurzoru.

color

Volitelné. Barva, která se má použít na vymazaný řádek. Možnosti zahrnují:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Můžete také zadat vlastní barvu.

# Display text on two rows
robot.screen.print("This text stays")
robot.screen.next_row()
robot.screen.print("This text disappears")

# Wait 3 seconds before clearing only the second row
wait(3, SECONDS)
robot.screen.clear_row()

# Turn the 5th row green
robot.screen.clear_row(5, GREEN)

Snímek obrazovky robota se zeleným pruhem přes střed obrazovky zleva doprava.

get_row#

get_row vrací aktuální řádek, kde bude text vytištěn jako celé číslo.

Usage:
robot.screen.get_row()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Set cursor to (3,2) and print row number
robot.screen.set_cursor(3, 2)
robot.screen.print(robot.screen.get_row())

Snímek obrazovky robota s bílou číslicí 3 vytištěnou poblíž středu levého horního kvadrantu, v řádku 3 ve sloupci 2.

get_column#

get_column vrací aktuální sloupec, kam bude text vytištěn jako celé číslo.

Usage:
robot.screen.get_column()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Set cursor to (3,2) and print column number
robot.screen.set_cursor(3, 2)
robot.screen.print(robot.screen.get_column())

Snímek obrazovky robota s bílou číslicí 2 vytištěnou poblíž středu levého horního kvadrantu, v řádku 3 ve sloupci 2.

Tisk XY#

set_origin#

set_origin nastavuje počátek používaný pro kreslení a tisk na základě souřadnic na obrazovce robota. Ve výchozím nastavení je počátek v levém horním rohu obrazovky.

Usage:
robot.screen.set_origin(x, y)

Parametr

Popis

x

Nová souřadnice x, která se má nastavit jako počátek, zadaná jako celé číslo od 0 do 240.

y

Nová souřadnice y, která se má nastavit jako počátek, zadaná jako celé číslo od 0 do 240.

# Set the origin to the center of the screen
robot.screen.set_origin(120, 120)

# Draw a rectangle at the new origin
robot.screen.draw_rectangle(0, 0, 80, 40)

Snímek obrazovky robota s bílým obdélníkem nakresleným v levém dolním kvadrantu. Levý horní roh obdélníku je středem obrazovky.

Mutátory#

clear_screen#

clear_screen vymaže všechny kresby a text z obrazovky robota. Ve výchozím nastavení také resetuje pozici kurzoru na řádek 1, sloupec 1.

Usage:
robot.screen.clear_screen(color)

Parametr

Popis

color

Volitelné. Nastaví barvu obrazovky. Možnosti zahrnují:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Můžete také zadat vlastní barvu.

# Draw a circle, and clear it after 2 seconds
robot.screen.draw_circle(120, 120, 60)
wait(2, SECONDS)
robot.screen.clear_screen()

# Set the background color of the screen to red
robot.screen.clear_screen(RED)

Snímek obrazovky robota, zobrazující celou obrazovku v jasně červené barvě.

set_font#

set_font nastavuje písmo použité pro zobrazení textu na obrazovce robota. Toto písmo se použije na veškerý text vytištěný pomocí print nebo print_at. Výchozí písmo na začátku projektu je MONO24.

Usage:
robot.screen.set_font(fontname)

Parametr

Popis

fontname

Nastaví písmo na jednu z následujících možností:

  • MONO12
  • MONO15
  • MONO20
  • MONO24
  • MONO30
  • MONO40
  • MONO60
  • PROP20
  • PROP30
  • PROP40
  • PROP60
Tyto možnosti jsou zobrazeny níže.

Snímek obrazovky robota zobrazující ukázku čísel a písmen vytištěných písmem Mono 12. Abeceda zabírá 1 řádek textu. Spodní část má 26 znaků napříč a 15 řádků.
MONO12

Stejný obrázek jako předchozí s fontem Mono 15. Písmena AT zabírají 1 řádek textu. Spodní část má šířku 20 znaků a 12 řádků.
MONO15

Stejný obrázek jako předchozí, s fontem Mono 20. Písmena AP zabírají 1 řádek textu. Spodní část má 16 znaků na šířku a 9 řádků.
MONO20

Stejný obrázek jako předchozí, s fontem Mono 24. Písmena AM zabírají 1 řádek textu. Spodní část má šířku 13 znaků a 8 řádků.
MONO24

Stejný obrázek jako předchozí, s fontem Mono 30. Písmena AK se rozprostírají přes 1 řádek textu. Spodní část má šířku 11 znaků a 6 řádků.
MONO30

Stejný obrázek jako předchozí, s fontem Mono 40. Písmena AH se rozprostírají přes 1 řádek textu. Spodní část má šířku 8 znaků a 5 řádků.
MONO40

Stejný obrázek jako předchozí, s čísly vytištěnými písmem Mono 60. Čísla 1–6 zabírají 1 řádek textu. Spodní část má 3 řádky.
MONO60

Stejný obrázek jako předchozí, s fontem Prop 20. Písmena As se rozprostírají přes 1 řádek textu. Spodní část má šířku 20 znaků a 9 řádků.
PROP20

Stejný obrázek jako předchozí, s fontem Prop 30. Písmena AM zabírají 1 řádek textu. Spodní část má šířku 15 znaků a 6 řádků.
PROP30

Stejný obrázek jako předchozí, s fontem Prop 40. Písmena AJ zabírají 1 řádek textu. Spodní část má šířku 11 znaků a 5 řádků.
PROP40

Stejný obrázek jako předchozí, s čísly vytištěnými písmem Prop 60. Čísla 1-7 zabírají 1 řádek textu. Dole je 7 krát 3.
PROP60

# Display text using a larger font
robot.screen.set_font(MONO40)
robot.screen.print("VEX")

Snímek obrazovky robota v levém horním rohu zobrazuje VEX písmem Mono 40.

set_pen_width#

set_pen_width nastavuje tloušťku kreslených čar a obrysů tvarů.

Usage:
robot.screen.set_pen_width(width)

Parametr

Popis

width

Šířka pera v pixelech od 0 do 32.

# Draw a rectangle with a pen width of 10
robot.screen.set_pen_width(10)
robot.screen.draw_rectangle(50, 50, 130, 60)

Snímek obrazovky robota s tlustým bílým obdélníkem nakresleným přes horní polovinu.

set_pen_color#

set_pen_color nastavuje barvu textu, pixelů, čar a obrysů tvarů.

Usage:
robot.screen.set_pen_color(color)

Parametr

Popis

color

Volitelné. Barva pera a písma, která se má použít. Možnosti zahrnují:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Můžete také zadat vlastní barvu.

# Draw a rectangle with a red pen
robot.screen.set_pen_color(RED)
robot.screen.draw_rectangle(50, 50, 130, 60)

Snímek obrazovky robota s červeným obdélníkem s tenkým okrajem nakresleným přes horní polovinu.

set_fill_color#

set_fill_color nastavuje barvu výplně použitou při kreslení tvarů a při použití pozadí tištěným textem.

Usage:
robot.screen.set_fill_color(color)

Parametr

Popis

color

Volitelné. Barva výplně, která se má použít. Možnosti zahrnují:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Můžete také zadat vlastní barvu.

# Draw two orange rectangles
robot.screen.set_fill_color(ORANGE)
robot.screen.draw_rectangle(50, 50, 100, 60)
robot.screen.draw_rectangle(50, 130, 100, 60)

Snímek obrazovky robota se dvěma rovnoběžnými oranžovými obdélníky s tenkými bílými obrysy umístěnými vlevo uprostřed obrazovky.

# Display text with a purple background
robot.screen.set_fill_color(PURPLE)
robot.screen.print("Highlight")

Snímek obrazovky robota ukazuje nápis Zvýraznit bílým textem s fialovým zvýrazněním kolem, počínaje v levém horním rohu.

Remíza#

draw_pixel#

draw_pixel nakreslí jeden pixel na vybrané souřadnici x a y s použitím aktuální barvy pera.

Usage:
robot.screen.draw_pixel(x, y)

Parametr

Popis

x

Souřadnice x, kde bude pixel vykreslen, zadaná jako celé číslo od 0 do 240.

y

Souřadnice y, kde bude pixel vykreslen, zadaná jako celé číslo od 0 do 240.

# Draw a pixel at the center of the screen
robot.screen.draw_pixel(120, 120)

Snímek obrazovky robota s jediným bílým pixelem uprostřed.

draw_line#

draw_line nakreslí čáru z první souřadnice obrazovky (x1, y1) do druhé souřadnice obrazovky (x2, y2) s použitím aktuální šířky pera (per width a barvy pera (per colour.

Souřadnice x a y používají výchozí počátek (0, 0), pokud nebyl nastaven jiný počátek pomocí set_origin.

Usage:
robot.screen.draw_line(x1, y1, x2, y2)

Parametr

Popis

x1

Počáteční souřadnice x čáry, zadaná jako celé číslo od 0 do 240.

y1

Počáteční souřadnice y čáry, zadaná jako celé číslo od 0 do 240.

x2

Koncová souřadnice x čáry, zadaná jako celé číslo od 0 do 240.

y2

Koncová souřadnice y čáry, zadaná jako celé číslo od 0 do 240.

# Draw a line from the top left to bottom right of the screen
robot.screen.draw_line(0, 0, 240, 240)

Snímek obrazovky robota s tenkou bílou diagonální čarou nakreslenou z levého horního rohu do pravého dolního rohu.

draw_rectangle#

draw_rectangle nakreslí obdélník s levým horním rohem na vybrané souřadnici (x, y) a velikostí určenou danou šířkou a výškou, vše měřeno v pixelech. Obrys obdélníku se nakreslí s použitím aktuální šířky pera (pen width a barvy pera (pen color. Vnitřek se vyplní aktuální barvou výplně (fill color, pokud se nepoužije volitelný parametr color.

Souřadnice x a y používají výchozí počátek (0, 0), pokud nebyl nastaven jiný počátek pomocí set_origin.

Usage:
robot.screen.draw_rectangle(x, y, width, height, color)

Parametr

Popis

x

Souřadnice x levého horního rohu obdélníku, zadaná jako celé číslo od 0 do 240.

y

Souřadnice y levého horního rohu obdélníku, zadaná jako celé číslo od 0 do 240.

width

Šířka obdélníku, zadaná jako celé číslo od 0 do 240.

height

Výška obdélníku, zadaná jako celé číslo od 0 do 240.

color

Optional. The fill color of the rectangle. Options include:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
You can also specify a custom color.

# Draw a red rectangle on the screen
robot.screen.draw_rectangle(50, 50, 130, 60, RED)

Snímek obrazovky robota s jasně červeným obdélníkem s tenkým bílým okrajem uprostřed horní poloviny obrazovky.

draw_circle#

draw_circle nakreslí kružnici se středem na vybrané souřadnici (x, y) a velikostí určenou daným poloměrem, vše měřeno v pixelech. Obrys kružnice se nakreslí s použitím aktuální šířky pera (pen width a barvy pera (pen color. Vnitřek se vyplní aktuální barvou výplně (fill color, pokud není použit volitelný parametr color.

Souřadnice x a y používají výchozí počátek (0, 0), pokud nebyl nastaven jiný počátek pomocí set_origin.

Usage:
robot.screen.draw_circle(x, y, radius, color)

Parametr

Popis

x

Souřadnice x středu kružnice, zadaná jako celé číslo od 0 do 240.

y

Souřadnice y středu kružnice, zadaná jako celé číslo od 0 do 240.

radius

Poloměr kruhu, zadaný jako celé číslo od 0 do 240 pixelů.

color

Optional. The fill color of the circle. Options include:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
You can also specify a custom color.

# Draw a green circle on the screen
robot.screen.draw_circle(120, 120, 40, GREEN)

Snímek obrazovky robota s jasně zeleným kruhem s tenkým bílým okrajem uprostřed.

show_file#

Parametr show_file zobrazí na obrazovce robota nahraný obrázek, jehož poloha je nastavena pomocí parametrů x, ya center na základě referenčního bodu obrázku.

Usage:
robot.screen.show_file(file, x, y, center)

Parametr

Popis

file

Vlastní obrázek, který se má použít, od IMAGE1 do IMAGE10Číslo obrázku odpovídá číslu zobrazenému v ovládacím panelu AIM.

x

Horizontální posunutí obrázku, zadané jako celé číslo v pixelech. Kladné hodnoty jej posouvají doprava, záporné hodnoty doleva.

y

Vertikální posunutí obrázku, zadané jako celé číslo v pixelech. Kladné hodnoty jej posouvají dolů, záporné hodnoty nahoru.

center

Volitelné. Pokud center=True, obrázek je umístěn s použitím středu na souřadnici (120, 120). Ve výchozím nastavení (center=False) je použit levý horní roh obrázku a umístěn vzhledem k aktuálnímu počátku.

# Display uploaded Image 1 in the top left corner
robot.screen.show_file(IMAGE1, 0, 0)

# Show the same image on both sides of the screen
# Image size is 120 x 120
robot.screen.show_file(IMAGE1, 65, 0, center=True)
robot.screen.show_file(IMAGE1, -65, 0, center=True)

set_clip_region#

set_clip_region definuje obdélníkovou oblast na obrazovce, kde budou umístěny všechny kresby a text. Veškerý obsah mimo tuto oblast se nezobrazí.

Usage:
robot.screen.set_clip_region(x, y, width, height)

Parametr

Popis

x

Souřadnice x levého horního rohu oblasti klipu, zadaná jako desetinné číslo (float) od 0 do 240.

y

Souřadnice y levého horního rohu oblasti klipu, zadaná jako desetinné číslo (float) od 0 do 240.

width

Šířka oblasti klipu v pixelech, udaná jako desetinné číslo (float) od 0 do 240.

height

Výška oblasti klipu v pixelech, udaná jako desetinné číslo (float) od 0 do 240.

# Restrict text and drawings to a specific region
robot.screen.set_clip_region(0, 0, 120, 120)
robot.screen.draw_rectangle(60, 60, 100, 100, RED)
robot.screen.print_at("Cut off!", x=60, y=60)

Snímek obrazovky robota zobrazující text a obrázek, které se vejdou do oblasti klipu. V levém horním kvadrantu je bílý text s nápisem Cut o a červený čtverec přímo pod ním.

Zpětná volání#

pressed#

pressed registruje metodu, která se má zavolat při stisknutí obrazovky robota.

Usage:
robot.screen.pressed(callback, arg)

Parametry

Popis

callback

Funkce funkce, která je předem definována k provedení při stisknutí obrazovky ovladače.

arg

Volitelné. N-tice tuple obsahující argumenty, které se mají předat zpětné funkci. Další informace naleznete v části Použití funkcí s parametry.

# Set the LEDs to green when the screen is pressed.
def screen_touched():
    robot.led.on(ALL_LEDS, GREEN)

robot.screen.pressed(screen_touched)

released#

released registruje metodu, která se má volat při uvolnění obrazovky robota.

Usage:
robot.screen.released(callback, arg)

Parametry

Popis

callback

Funkce funkce, která je předem definována k provedení při stisknutí obrazovky ovladače.

arg

Volitelné. N-tice tuple obsahující argumenty, které se mají předat zpětné funkci. Další informace naleznete v části Použití funkcí s parametry.

# Set the LEDs to blue when the screen is released.
def screen_released():
    robot.led.on(ALL_LEDS, BLUE)

robot.screen.released(screen_released)