Ekran#

Wstęp#

Metody ekranowe kontrolują sposób, w jaki robot programistyczny VEX AIM wyświetla tekst, liczby i grafikę na ekranie oraz w jaki sposób reaguje na naciśnięcia klawiszy na ekranie.

Poniżej znajduje się lista wszystkich metod:

Dotyk – wykrywanie i reagowanie na naciśnięcia ekranu.

  • pressing – Zwraca informację, czy ekran jest aktualnie naciskany.

  • x_position – Zwraca współrzędną x ostatniego naciśnięcia ekranu.

  • y_position – Zwraca współrzędną y ostatniego naciśnięcia ekranu.

Drukowanie kursorem – Wyświetlanie tekstu za pomocą systemu wierszy/kolumn.

  • print – Drukuje tekst, liczby lub wartości zmiennych w bieżącej pozycji kursora.

  • set_cursor – Przenosi kursor do określonego wiersza i kolumny.

  • next_row – Przenosi kursor do kolumny 1 następnego wiersza.

  • clear_row – Czyści wiersz tekstu.

  • get_row – Zwraca bieżący wiersz kursora.

  • get_column – Zwraca bieżącą kolumnę kursora.

Drukowanie XY – Wyświetlanie tekstu w określonych współrzędnych ekranu.

  • print_at – Drukuje tekst, liczby lub wartości zmiennych w określonych współrzędnych x i y.

  • set_origin – Ustawia początek używany do drukowania i rysowania na podstawie współrzędnych.

Mutatory – wyczyść ekran lub zaktualizuj ustawienia wizualne.

  • clear_screen – Czyści ekran ze wszystkich rysunków i tekstu.

  • set_font – Ustawia czcionkę dla drukowanego tekstu.

  • set_pen_width – Ustawia grubość rysowanych linii i konturów kształtów.

  • set_pen_color – Ustawia kolor tekstu, pikseli, linii i konturów kształtów.

  • set_fill_color – Ustawia kolor wypełnienia dla rysowanych kształtów i drukowanych teł tekstowych.

Rysuj – dodawaj grafiki i obrazy do ekranu.

Wywołania zwrotne – uruchamiają funkcje po naciśnięciu lub zwolnieniu ekranu.

  • naciśniętopressed – Rejestruje funkcję, która ma zostać wywołana po naciśnięciu ekranu.

  • released – Rejestruje funkcję, która ma zostać wywołana po zwolnieniu ekranu.

Dotykać#

pressing#

Naciśnięcie pressing czy ekran robota jest aktualnie naciskany.

  • True – Ekran jest naciskany.

  • False – Ekran nie jest naciskany.

Usage:
robot.screen.pressing()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# 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 zwraca współrzędną x ostatniego naciśnięcia ekranu jako liczbę całkowitą od 0 (po lewej) do 240 (po prawej).

Usage:
robot.screen.x_position()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# 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 zwraca współrzędną y ostatniego naciśnięcia ekranu jako liczbę całkowitą od 0 (góra) do 240 (dół).

Usage:
robot.screen.y_position()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

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

Drukowanie kursora#

print#

print drukuje tekst, liczby lub wartości zmiennych na ekranie robota w bieżącej pozycji kursora i czcionce.

Usage:
robot.screen.print(text)

Parametry

Opis

text

Tekst, liczba lub wartość zmiennej do wyświetlenia na ekranie.

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

Zrzut ekranu robota z napisem „Witaj, robocie!” wydrukowanym na biało u góry.

set_cursor#

set_cursor przesuwa kursor tekstowy do określonego wiersza i kolumny na ekranie robota. Następne wywołanie print rozpocznie drukowanie w tym miejscu. Liczba pasujących wierszy i kolumn zależy od wybranej czcionki. Przy domyślnej czcionce o stałej szerokości, ekran może wyraźnie wyświetlić do 8 wierszy i 13 kolumn. Tekst umieszczony poza tym zakresem może zostać obcięty lub trudniejszy do odczytania.

Czcionki o stałej szerokości mają znaki o tej samej szerokości, co zapewnia spójność rozmieszczenia tekstu. Natomiast czcionki proporcjonalne różnią się szerokością znaków, przez co niektóre litery zajmują więcej miejsca niż inne. Jednak niezależnie od użytego typu, set_cursor pozycjonuje kursor na podstawie rozmiaru wiersza i kolumny, a nie stylu czcionki. Rozmiar czcionki można dostosować za pomocą set_font.

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

Parametry

Opis

row

Wiersz, do którego należy przenieść kursor.

column

Kolumna, do której należy przenieść kursor.

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

Zrzut ekranu robota z napisem „Wiersz 3, Kolumna 2” wydrukowanym na biało tuż nad środkiem ekranu, zaczynając od wiersza 3 i kolumny 2.

next_row#

next_row przenosi kursor do kolumny 1 w następnym wierszu na ekranie robota.

Usage:
robot.screen.next_row()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

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

Zrzut ekranu robota z białym tekstem. Na ekranie widnieje wiersz 1 w górnym wierszu, wyrównany do lewej, a wiersz 2 tuż pod nim.

clear_row#

clear_row czyści pojedynczy wiersz tekstu na ekranie robota.

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

Parametr

Opis

row

Opcjonalnie. Wiersz do wyczyszczenia jako liczba całkowita. Domyślnie jest to bieżący wiersz kursora.

color

Opcjonalnie. Kolor, który ma zostać zastosowany do wyczyszczonego wiersza. Opcje obejmują:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Można również określić kolor niestandardowy.

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

Zrzut ekranu robota z zielonym paskiem biegnącym przez środek ekranu od lewej do prawej.

get_row#

get_row zwraca bieżący wiersz, w którym tekst zostanie wydrukowany jako liczba całkowita.

Usage:
robot.screen.get_row()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

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

Zrzut ekranu SA ekranu robota z białą cyfrą 3 wydrukowaną w pobliżu środka lewego górnego kwadrantu, w rzędzie 3 kolumnie 2.

get_column#

get_column zwraca bieżącą kolumnę, w której tekst będzie drukowany jako liczba całkowita.

Usage:
robot.screen.get_column()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

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

Zrzut ekranu robota z białą cyfrą 2 wydrukowaną w pobliżu środka lewego górnego kwadrantu, w rzędzie 3, kolumnie 2.

Wydruk XY#

set_origin#

set_origin ustawia punkt początkowy używany do rysowania i drukowania na podstawie współrzędnych na ekranie robota. Domyślnie punktem początkowym jest lewy górny róg ekranu.

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

Parametr

Opis

x

Nowa współrzędna x, którą należy ustawić jako początek, podana jako liczba całkowita od 0 do 240.

y

Nowa współrzędna y, którą należy ustawić jako początek, podana jako liczba całkowita 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)

Zrzut ekranu robota z białym prostokątem narysowanym w lewym dolnym kwadrancie. Lewy górny róg prostokąta to środek ekranu.

Mutatory#

clear_screen#

clear_screen usuwa wszystkie rysunki i tekst z ekranu robota. Domyślnie resetuje również pozycję kursora do wiersza 1 i kolumny 1.

Usage:
robot.screen.clear_screen(color)

Parametr

Opis

color

Opcjonalnie. Ustawia kolor ekranu. Opcje obejmują:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Można również określić kolor niestandardowy.

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

Zrzut ekranu robota, pokazujący cały ekran w jaskrawej czerwieni.

set_font#

set_font ustawia czcionkę używaną do wyświetlania tekstu na ekranie robota. Ta czcionka będzie stosowana do całego tekstu drukowanego za pomocą print lub print_at. Domyślna czcionka na początku projektu to MONO24.

Usage:
robot.screen.set_font(fontname)

Parametr

Opis

fontname

Ustawia czcionkę na jedną z następujących:

  • MONO12
  • MONO15
  • MONO20
  • MONO24
  • MONO30
  • MONO40
  • MONO60
  • PROP20
  • PROP30
  • PROP40
  • PROP60
Opcje te pokazano poniżej.

Zrzut ekranu robota pokazujący próbkę cyfr i liter wydrukowanych czcionką Mono 12. Alfabet zajmuje jeden wiersz tekstu. Na dole znajduje się 26 znaków w poziomie i 15 wierszy.
MONO12

Ten sam obrazek co poprzedni, z czcionką Mono 15. Litery AT zajmują 1 wiersz tekstu. Dół ma 20 znaków szerokości i 12 wierszy.
MONO15

Ten sam obrazek co poprzedni, z czcionką Mono 20. Litery AP zajmują 1 wiersz tekstu. Dół ma 16 znaków szerokości i 9 wierszy.
MONO20

Ten sam obrazek co poprzedni, z czcionką Mono 24. Litery AM zajmują 1 wiersz tekstu. Dół ma 13 znaków szerokości i 8 wierszy.
MONO24

Ten sam obrazek co poprzedni, z czcionką Mono 30. Litery AK zajmują 1 wiersz tekstu. Dół ma 11 znaków szerokości i 6 wierszy.
MONO30

Ten sam obrazek co poprzedni, z czcionką Mono 40. Litery AH zajmują jeden wiersz tekstu. Dół ma 8 znaków szerokości i 5 wierszy.
MONO40

Ten sam obrazek co poprzedni, z cyframi wydrukowanymi czcionką Mono 60. Cyfry od 1 do 6 zajmują 1 wiersz tekstu. Na dole znajdują się 3 wiersze.
MONO60

Ten sam obrazek co poprzedni, z czcionką Prop 20. Litery As zajmują 1 wiersz tekstu. Dół ma 20 znaków szerokości i 9 wierszy.
PROP20

Ten sam obrazek co poprzedni, z czcionką Prop 30. Litery AM zajmują jeden wiersz tekstu. Dół ma 15 znaków szerokości i 6 wierszy.
PROP30

Ten sam obrazek co poprzedni, z czcionką Prop 40. Litery AJ zajmują jeden wiersz tekstu. Dół ma 11 znaków szerokości i 5 wierszy.
PROP40

Ten sam obrazek co poprzedni, z liczbami wydrukowanymi czcionką Propozycji 60. Liczby od 1 do 7 zajmują jeden wiersz tekstu. Na dole widnieje rozmiar 7 na 3.
PROP60

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

Zrzut ekranu robota przedstawia napis VEX w czcionce Mono 40 w lewym górnym rogu.

set_pen_width#

set_pen_width ustawia grubość rysowanych linii i konturów kształtów.

Usage:
robot.screen.set_pen_width(width)

Parametr

Opis

width

Szerokość pióra w pikselach 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)

Zrzut ekranu robota z grubym, białym prostokątem narysowanym na górnej połowie.

set_pen_color#

set_pen_color ustawia kolor tekstu, pikseli, linii i konturów kształtów.

Usage:
robot.screen.set_pen_color(color)

Parametr

Opis

color

Opcjonalnie. Kolor pióra i czcionki, który ma zostać użyty. Opcje obejmują:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Można również określić kolor niestandardowy.

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

Zrzut ekranu robota z czerwonym prostokątem otoczonym cienką ramką na górnej połowie.

set_fill_color#

set_fill_color ustawia kolor wypełnienia używany podczas rysowania kształtów i drukowania tekstu z użyciem tła.

Usage:
robot.screen.set_fill_color(color)

Parametr

Opis

color

Opcjonalnie. Kolor wypełnienia do użycia. Opcje obejmują:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Można również określić kolor niestandardowy.

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

Zrzut ekranu robota z dwoma równoległymi pomarańczowymi prostokątami o cienkich, białych konturach umieszczonymi po lewej stronie środka ekranu.

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

Zrzut ekranu robota przedstawia napis „Podświetl” w białym tekście z fioletowym podświetleniem, zaczynający się w lewym górnym rogu.

Rysować#

draw_pixel#

draw_pixel rysuje jeden piksel na wybranej współrzędnej x i y, używając bieżącego koloru pióra.

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

Parametr

Opis

x

Współrzędna x, w której zostanie narysowany piksel, podana jako liczba całkowita od 0 do 240.

y

Współrzędna y, na której zostanie narysowany piksel, podana jako liczba całkowita od 0 do 240.

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

Zrzut ekranu robota z pojedynczym białym pikselem w środku.

draw_line#

draw_line rysuje linię od pierwszej współrzędnej ekranu (x1, y1) do drugiej współrzędnej ekranu (x2, y2) używając bieżącej szerokości pióra i koloru pióra.

Współrzędne x i y używają domyślnego początku (0, 0), chyba że ustawiono inny początek za pomocą set_origin.

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

Parametr

Opis

x1

Początkowa współrzędna x linii, podana jako liczba całkowita od 0 do 240.

y1

Początkowa współrzędna y linii, podana jako liczba całkowita od 0 do 240.

x2

Końcowa współrzędna x linii, podana jako liczba całkowita od 0 do 240.

y2

Końcowa współrzędna y linii, podana jako liczba całkowita 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)

Zrzut ekranu robota z cienką białą linią ukośną biegnącą od lewego górnego rogu do prawego dolnego rogu.

draw_rectangle#

draw_rectangle rysuje prostokąt z lewym górnym rogiem w wybranej współrzędnej (x, y) i rozmiarem określonym przez podaną szerokość i wysokość, mierzone w pikselach. Kontur prostokąta jest rysowany z użyciem bieżącej szerokości pisaka i koloru pisaka. Wnętrze jest wypełniane bieżącym kolorem wypełnienia, chyba że zostanie użyty opcjonalny parametr color.

Współrzędne x i y używają domyślnego początku (0, 0), chyba że ustawiono inny początek za pomocą set_origin.

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

Parametr

Opis

x

Współrzędna x lewego górnego rogu prostokąta, podana jako liczba całkowita od 0 do 240.

y

Współrzędna y lewego górnego rogu prostokąta, podana jako liczba całkowita od 0 do 240.

width

Szerokość prostokąta, podana jako liczba całkowita od 0 do 240.

height

Wysokość prostokąta podana jako liczba całkowita 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)

Zrzut ekranu robota z jasnoczerwonym prostokątem otoczonym cienką białą ramką, umieszczonym na środku górnej połowy ekranu.

draw_circle#

draw_circle rysuje okrąg o środku w wybranej współrzędnej (x, y) i rozmiarze określonym przez podany promień, mierzony w pikselach. Kontur okręgu jest rysowany z użyciem bieżącej szerokości pisaka i koloru pisaka. Wnętrze jest wypełniane bieżącym kolorem wypełnienia, chyba że zostanie użyty opcjonalny parametr color.

Współrzędne x i y używają domyślnego początku (0, 0), chyba że ustawiono inny początek za pomocą set_origin.

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

Parametr

Opis

x

Współrzędna x środka okręgu, podana jako liczba całkowita od 0 do 240.

y

Współrzędna y środka okręgu, podana jako liczba całkowita od 0 do 240.

radius

Promień okręgu podany jako liczba całkowita od 0 do 240 pikseli.

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)

Zrzut ekranu robota z jasnozielonym okręgiem otoczonym cienką białą obwódką w środku.

show_file#

show_file wyświetla na ekranie robota niestandardowy przesłany obraz, którego położenie jest ustawione przy użyciu parametrów x, yi center na podstawie punktu odniesienia obrazu.

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

Parametr

Opis

file

Niestandardowy obraz do użycia, od IMAGE1 do IMAGE10Numer obrazu odpowiada numerowi wyświetlanemu na panelu sterowania AIM.

x

Przesunięcie poziome obrazu, podane jako liczba całkowita w pikselach. Wartości dodatnie przesuwają obraz w prawo; wartości ujemne przesuwają go w lewo.

y

Przesunięcie pionowe obrazu, podane jako liczba całkowita w pikselach. Wartości dodatnie przesuwają obraz w dół, a wartości ujemne w górę.

center

Opcjonalnie. Jeśli center=True, obraz jest umieszczany za pomocą środka o współrzędnych (120, 120). Domyślnie (center=False) używany jest lewy górny róg obrazu i jest on pozycjonowany względem bieżącego począ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 definiuje prostokątny obszar na ekranie, w którym będą wyświetlane wszystkie rysunki i tekst. Zawartość spoza tego obszaru nie będzie wyświetlana.

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

Parametr

Opis

x

Współrzędna x lewego górnego rogu obszaru klipu podana jako liczba dziesiętna (float) od 0 do 240.

y

Współrzędna y lewego górnego rogu obszaru klipu podana jako liczba dziesiętna (float) od 0 do 240.

width

Szerokość obszaru klipu w pikselach, podana jako liczba dziesiętna (float) od 0 do 240.

height

Wysokość obszaru klipu w pikselach, podana jako liczba dziesiętna (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)

Zrzut ekranu robota pokazujący tekst i obraz mieszczące się w obszarze klipu. W lewym górnym kwadrancie biały tekst brzmi „Cut o”, a tuż pod nim znajduje się czerwony kwadrat.

Wywołania zwrotne#

pressed#

pressed rejestruje metodę, która ma zostać wywołana po naciśnięciu ekranu robota.

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

Parametry

Opis

callback

Funkcja, która została wcześniej zdefiniowana do wykonania po naciśnięciu ekranu kontrolera.

arg

Opcjonalnie. Krotka krotka zawierająca argumenty do przekazania do funkcji wywołania zwrotnego. Więcej informacji można znaleźć w sekcji Używanie funkcji z parametrami.

# 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 rejestruje metodę, która ma zostać wywołana po zwolnieniu ekranu robota.

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

Parametry

Opis

callback

Funkcja, która została wcześniej zdefiniowana do wykonania po naciśnięciu ekranu kontrolera.

arg

Opcjonalnie. Krotka krotka zawierająca argumenty do przekazania do funkcji wywołania zwrotnego. Więcej informacji można znaleźć w sekcji Używanie funkcji z parametrami.

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

robot.screen.released(screen_released)