Ekran#
Wstęp#
Metody ekranowe kontrolują sposób wyświetlania tekstu, liczb, grafik i obrazów na ekranie przez kontroler drona VEX AIR oraz sposób reagowania na naciśnięcia przycisków na ekranie.
Poniżej znajduje się lista dostępnych metod:
Drukuj kursorem – Wyświetlaj tekst i zarządzaj kursorem drukowania.
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 wiersz, w którym zostanie wydrukowany tekst.get_column– Zwraca kolumnę, w której zostanie wydrukowany tekst.
Drukowanie XY – Drukowanie tekstu w współrzędnych pikselowych.
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 – zmieniają ustawienia ekranu, kolory i sposób rysowania.
clear_screen– Usuwa wszystkie rysunki, tekst i obrazy z ekranu kontrolera.wait_for_render– Przełącza rysowanie ekranu na zachowanie renderowania później.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_text_fill_color– Ustawia kolor wypełnienia za drukowanym tekstem.set_fill_color– Ustawia kolor wypełnienia dla narysowanych kształtów.
Rysuj – dodawaj grafiki i obrazy do ekranu.
draw_pixel– Rysuje jeden piksel w określonej pozycji x i y.draw_line– Rysuje linię między dwoma punktami.draw_rectangle– Rysuje prostokąt, używając bieżącego pióra i kolorów wypełnienia.draw_circle– Rysuje okrąg, używając bieżącego pióra i kolorów wypełnienia.show_file– Rysuje przesłany obraz.
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.
Wywołania zwrotne – uruchamiają funkcje po naciśnięciu lub zwolnieniu ekranu.
naciśnięto
pressed– 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.
Drukowanie kursora#
print#
print drukuje tekst, liczby lub wartości zmiennych na ekranie kontrolera w bieżącej pozycji kursora i czcionce.
Usage:
controller.screen.print(text)
Parametry |
Opis |
|---|---|
|
Tekst, liczba lub wartość zmiennej do wydrukowania na ekranie. |
|
Opcjonalnie. Separator między tekstem drukowanym. Domyślnie |
|
Opcjonalnie. Ciąg znaków dodawany po ostatnim wydrukowanym tekście. Domyślnie |
|
Opcjonalnie. Liczba miejsc dziesiętnych, z jaką float będzie wyświetlany jako liczba całkowita. Domyślnie precyzja |
# Display a message at the starting cursor position.
controller.screen.print("Time to fly!")

# Display the first 2 decimals of pi
controller.screen.print(3.1415, precision = 2)

set_cursor#
set_cursor przenosi kursor do określonego wiersza i kolumny na ekranie kontrolera. Następne wywołanie print rozpocznie drukowanie w tym miejscu. Odstępy między wierszami i kolumnami będą uwzględniać wybraną czcionkę. Przy domyślnej czcionce o stałej szerokości, ekran może wyraźnie wyświetlać do 18 wierszy i 53 kolumn. Tekst umieszczony poza tym zakresem może zostać obcięty lub trudniejszy do odczytania.
Usage:
controller.screen.set_cursor(row, col)
Parametry |
Opis |
|---|---|
|
Wiersz, do którego należy przenieść kursor. |
|
Kolumna, do której należy przenieść kursor. |
# Display text starting at Row 7 Column 25.
controller.screen.set_cursor(row=7, col=25)
controller.screen.print("Row 7, Column 25")

next_row#
next_row przenosi kursor do kolumny 1 w następnym wierszu na ekranie kontrolera.
Usage:
controller.screen.next_row()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Display two lines of text.
controller.screen.print("Line 1")
controller.screen.next_row()
controller.screen.print("Line 2")

clear_row#
clear_row czyści wiersz tekstu na ekranie kontrolera.
Usage:
controller.screen.clear_row(row, color)
Parametr |
Opis |
|---|---|
|
Opcjonalnie. Wiersz do wyczyszczenia. Domyślnie jest to bieżący wiersz kursora. |
|
Optional. The color to apply to the cleared row. If a color is not specified, the
|
# Clear only the second row of text
controller.screen.print("This text stays")
controller.screen.next_row()
controller.screen.print("This text disappears")
wait(3, SECONDS)
controller.screen.clear_row(2)
# Turn the 5th row green.
controller.screen.clear_row(5, GREEN)
get_row#
get_row zwraca bieżący wiersz, w którym zostanie wydrukowany tekst, jako liczbę całkowitą.
Usage:
controller.screen.get_row()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Display the cursor's current row.
controller.screen.set_cursor(row=7, col=25)
controller.screen.print(controller.screen.get_row())

get_column#
get_column zwraca bieżącą kolumnę, w której będzie drukowany tekst, jako liczbę całkowitą.
Usage:
controller.screen.get_column()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Display the cursor's current column.
controller.screen.set_cursor(row=7, col=25)
controller.screen.print(controller.screen.get_column())

Wydruk XY#
print_at#
print_at drukuje tekst, liczby lub wartości zmiennych na ekranie kontrolera w określonej pozycji (x, y) w pikselach, używając bieżącej czcionki i początku. x ustawia, jak daleko od lewej strony zaczyna się tekst, a y ustawia, gdzie znajduje się dolna część liter. Ta metoda ignoruje bieżącą pozycję kursora.
Usage:
controller.screen.print_at(text, x, y)
Parametr |
Opis |
|---|---|
|
Tekst, liczba lub wartość zmiennej do wydrukowania na ekranie. |
|
Pozycja tekstu w poziomie, wyrażona liczbą całkowitą od 0 do 640 pikseli. 0 oznacza pozycję po lewej stronie, 640 – pozycję po prawej stronie. |
|
Pozycja pionowa tekstu, wyrażona liczbą całkowitą od 0 do 480 pikseli. 0 oznacza górę, 480 oznacza dół. |
# Display a message in the middle of the screen.
controller.screen.print_at("Hello, drone!", x=320, y=240)

set_origin#
set_origin ustawia początek układu współrzędnych (0, 0) używany do rysowania i drukowania na podstawie współrzędnych na ekranie kontrolera. Domyślnie początek układu współrzędnych znajduje się w lewym górnym rogu ekranu. Ta metoda umożliwia zresetowanie początku układu współrzędnych do alternatywnego położenia współrzędnych ekranu (x, y).
Usage:
controller.screen.set_origin(x, y)
Parametr |
Opis |
|---|---|
|
Nowa współrzędna x, którą należy ustawić jako początek, podana jako liczba całkowita od 0 do 640. |
|
Nowa współrzędna y, którą należy ustawić jako początek, podana jako liczba całkowita od 0 do 480. |
# Set the origin to the center of the screen.
controller.screen.set_origin(x=320, y=240)
# Draw a rectangle at the new origin.
controller.screen.draw_rectangle(x=0, y=0, width=80, height=40)

Mutatory#
clear_screen#
clear_screen usuwa wszystkie rysunki, tekst i obrazy z ekranu kontrolera.
Usage:
controller.screen.clear_screen(row, col, color)
Parametr |
Opis |
|---|---|
|
Opcjonalnie. Wiersz, do którego ma zostać przeniesiony kursor po wyczyszczeniu ekranu. Domyślnie 1. |
|
Opcjonalnie. Kolumna, do której ma zostać przeniesiony kursor po wyczyszczeniu ekranu. Domyślnie jest to 1. |
|
Optional. Sets the screen color. If
|
# Draw a circle, and clear it after 2 seconds.
controller.screen.draw_circle(x=320, y=240, radius=80)
wait(2, SECONDS)
controller.screen.clear_screen()
# Print two messages in the same spot
controller.screen.print("Hello!")
wait(3,SECONDS)
controller.screen.clear_screen(row=1, col=1)
controller.screen.print("Goodbye!")
# Set the background color of the screen to red.
controller.screen.clear_screen(color=RED)
wait_for_render#
wait_for_render przełącza rysowanie ekranu na renderowanie później. Po uruchomieniu tej metody, kolejne polecenia ekranowe nie pojawią się na ekranie kontrolera do momentu uruchomienia wait_for_render.
Uwaga: Użyj tej opcji przed narysowaniem grupy tekstów, kształtów lub obrazów, a następnie użyj jej ponownie, aby od razu wyrenderować całą aktualizację.
Usage:
controller.screen.wait_for_render()
Parametr |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Display text and images when button 7 is pressed.
controller.screen.wait_for_render()
controller.screen.print("Screen rendered!")
controller.screen.draw_circle(x=320, y=240, radius=80)
while not controller.button7.pressing():
wait(5, MSEC)
controller.screen.wait_for_render()

set_font#
set_font ustawia czcionkę używaną do wyświetlania tekstu na ekranie kontrolera. Czcionka ta będzie stosowana do całego tekstu drukowanego po uruchomieniu tej metody. Domyślna czcionka na początku projektu to MONO20.
Usage:
controller.screen.set_font(fontname)
Parametr |
Opis |
|---|---|
|
Sets the font to one of the following:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
# Display text using a larger font.
controller.screen.set_font(MONO40)
controller.screen.print("VEX")

set_pen_width#
set_pen_width ustawia grubość rysowanych linii i konturów kształtów.
Usage:
controller.screen.set_pen_width(width)
Parametr |
Opis |
|---|---|
|
Szerokość pióra podana jako liczba całkowita w pikselach. |
# Draw a rectangle with a pen width of 10.
controller.screen.set_pen_width(10)
controller.screen.draw_rectangle(x=200, y=200, width=200, height=80)

set_pen_color#
set_pen_color ustawia kolor tekstu, pikseli, linii i konturów kształtów.
Usage:
controller.screen.set_pen_color(color)
Parametr |
Opis |
|---|---|
|
Optional. Sets the pen and font color. Options include:
|
# Draw a rectangle with an orange outline.
controller.screen.set_pen_color(ORANGE)
controller.screen.draw_rectangle(x=200, y=150, width=240, height=150)
controller.screen.set_pen_color(WHITE)
controller.screen.print_at("VEXcode AIR", x=250, y=220)

set_text_fill_color#
set_text_fill_color ustawia kolor wypełnienia drukowanego tekstu. Domyślny kolor wypełnienia tekstu jest przezroczysty.
Usage:
controller.screen.set_text_fill_color(color)
Parametr |
Opis |
|---|---|
|
Opcjonalnie. Ustawia kolor wypełnienia tekstu. Opcje obejmują:
|
# Display two colors behind text
controller.screen.set_text_fill_color(RED)
controller.screen.print("Red")
controller.screen.next_row()
controller.screen.set_text_fill_color(BLUE)
controller.screen.print("Blue")

set_fill_color#
set_fill_color ustawia kolor wypełnienia używany podczas rysowania kształtów. Domyślnym kolorem wypełnienia jest czarny.
Usage:
controller.screen.set_fill_color(color)
Parametr |
Opis |
|---|---|
|
Opcjonalnie. Ustawia kolor wypełnienia. Opcje obejmują:
|
# Draw an orange-filled rectangle with text on top
controller.screen.set_fill_color(ORANGE)
controller.screen.draw_rectangle(x=200, y=150, width=250, height=150)
controller.screen.print_at("VEXcode AIR", x=250, y=220)

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:
controller.screen.draw_pixel(x, y)
Parametr |
Opis |
|---|---|
|
Współrzędna x, w której zostanie narysowany piksel, podana jako liczba całkowita od 0 do 640. |
|
Współrzędna y, na której zostanie narysowany piksel, podana jako liczba całkowita od 0 do 480. |
# Draw five pixels in a diagonal.
controller.screen.draw_pixel(x=360, y=200)
controller.screen.draw_pixel(x=340, y=220)
controller.screen.draw_pixel(x=320, y=240)
controller.screen.draw_pixel(x=300, y=260)
controller.screen.draw_pixel(x=280, y=280)
![]()
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:
controller.screen.draw_line(x1, y1, x2, y2)
Parametr |
Opis |
|---|---|
|
Początkowa współrzędna x linii, podana jako liczba całkowita od 0 do 640. |
|
Początkowa współrzędna y linii, podana jako liczba całkowita od 0 do 480. |
|
Końcowa współrzędna x linii, podana jako liczba całkowita od 0 do 640. |
|
Końcowa współrzędna y linii, podana jako liczba całkowita od 0 do 480. |
# Make an X across the screen.
controller.screen.draw_line(x1=0, y1=0, x2=640, y2=480)
controller.screen.set_pen_color(CYAN)
controller.screen.draw_line(x1=0, y1=480, x2=640, y2=0)

draw_rectangle#
draw_rectangle rysuje prostokąt przy użyciu bieżących parametrów: szerokość pisaka, kolor pisaka i kolor wypełnienia, chyba że użyto opcjonalnego parametru 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:
controller.screen.draw_rectangle(x, y, width, height, color)
Parametr |
Opis |
|---|---|
|
Współrzędna x lewego górnego rogu prostokąta, podana jako liczba całkowita od 0 do 640. |
|
Współrzędna y lewego górnego rogu prostokąta, podana jako liczba całkowita od 0 do 480. |
|
Szerokość prostokąta, podana jako liczba całkowita od 0 do 640. |
|
Wysokość prostokąta podana jako liczba całkowita od 0 do 480. |
|
Optional. Sets the fill color of the rectangle. Options include:
|
# Draw two rectangles on the screen.
controller.screen.draw_rectangle(x=0, y=0, width=620, height=460)
controller.screen.draw_rectangle(x=200, y=180, width=200, height=100, color=GREEN)

draw_circle#
draw_circle rysuje okrąg, używając bieżących parametrów: szerokość pióra, kolor pióra i kolor wypełnienia, chyba że użyto opcjonalnego parametru 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:
controller.screen.draw_circle(x, y, radius, color)
Parametr |
Opis |
|---|---|
|
Współrzędna x środka okręgu, podana jako liczba całkowita od 0 do 640. |
|
Współrzędna y środka okręgu, podana jako liczba całkowita od 0 do 480. |
|
Promień okręgu podany jako liczba całkowita od 0 do 480 pikseli. |
|
Optional. Sets the fill color of the circle. Options include:
|
# Draw one green circle on the screen.
controller.screen.set_fill_color(GREEN)
controller.screen.draw_circle(x=320, y=240, radius=200, color=GREEN)

show_file#
show_file rysuje na ekranie kontrolera niestandardowy przesłany obraz w pozycji x i y, z opcjonalnym skalowaniem, obrotem i przezroczystością alfa.
Usage:
controller.screen.show_file(file, x, y, scale_width, scale_height, rotation, use_alpha)
Parametr |
Opis |
|---|---|
|
Przesłany przez użytkownika obraz do wykorzystania. Opcje ulegną zmianie, jeśli nazwy obrazów zostaną zmienione w Panelu sterowania. |
|
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. |
|
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ę. |
|
Opcjonalnie. Szerokość obrazu, do której jest skalowany, podana jako liczba całkowita w pikselach. |
|
Opcjonalnie. Wysokość obrazu, do której jest skalowana, podana jako liczba całkowita w pikselach. |
|
Opcjonalnie. Liczba stopni, o które należy obrócić obraz, podana jako liczba całkowita od 0 do 359. |
|
Opcjonalnie. Czy użyć kanału alfa obrazu do przezroczystości. Dostępne opcje: |
# Display uploaded Image 1 in the top left corner.
controller.screen.show_file(IMAGE1, x=0, y=0)
# Display uploaded Image 1 scaled to the full screen.
controller.screen.show_file(IMAGE1, x=65, y=0, scale_width=640, scale_height=480)
# Display uploaded Image 1 with rotation of 180 degrees.
controller.screen.show_file(IMAGE1, x=-65, y=0, rotation=180)
# Upload an image with a transparent background.
# Display uploaded Image 1 with alpha channel enabled.
controller.screen.show_file(IMAGE1, x=0, y=0, use_alpha=True)
Dotykać#
pressing#
Naciśnięcie pressing czy ekran robota jest aktualnie naciskany.
True– Ekran jest naciskany.False– Ekran nie jest naciskany.
Usage:
controller.screen.pressing()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Play a sound when the screen is pressed.
while True:
if controller.screen.pressing():
controller.sound.play_note("C5", 500)
wait(5, MSEC)
# Display different messages after the screen is pressed
while not controller.screen.pressing():
wait(5, MSEC)
controller.screen.print("First message!")
controller.screen.next_row()
# Lift finger to press the screen again
while controller.screen.pressing():
wait(5, MSEC)
while not controller.screen.pressing():
wait(5, MSEC)
controller.screen.print("Second message!")
controller.screen.next_row()
x_position#
x_position zwraca współrzędną x w pikselach, w której ekran został ostatnio dotknięty, jako liczbę całkowitą od 0 (po lewej) do 640 (po prawej).

Usage:
controller.screen.x_position()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Play a high or low note based on where screen is pressed.
while True:
if controller.screen.pressing():
if controller.screen.x_position() > 320:
controller.sound.play_note("C6", 500)
else:
controller.sound.play_note("C4", 500)
wait(5, MSEC)
y_position#
y_position zwraca współrzędną y w pikselach, w której nastąpiło ostatnie dotknięcie ekranu, jako liczbę całkowitą od 0 (góra) do 480 (dół).

Usage:
controller.screen.y_position()
# Play a high or low note based on where screen is pressed.
while True:
if controller.screen.pressing():
if controller.screen.y_position() > 240:
controller.sound.play_note("C6", 500)
else:
controller.sound.play_note("C4", 500)
wait(5, MSEC)
Wywołania zwrotne#
pressed#
pressed rejestruje funkcję, która ma zostać wywołana po naciśnięciu ekranu kontrolera.
Usage:
controller.screen.pressed(callback, arg)
Parametry |
Opis |
|---|---|
|
Funkcja, która została wcześniej zdefiniowana do wykonania po naciśnięciu ekranu kontrolera. |
|
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. |
# Play a sound when the screen is pressed.
def play_sound():
controller.sound.play_note("C5", 500)
controller.screen.pressed(play_sound)
released#
released rejestruje funkcję, która ma zostać wywołana po zwolnieniu ekranu kontrolera.
Usage:
controller.screen.released(callback, arg)
Parametry |
Opis |
|---|---|
|
Funkcja, która została wcześniej zdefiniowana do wykonania po zwolnieniu ekranu kontrolera. |
|
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. |
# Play a sound when the screen is pressed.
def play_sound():
controller.sound.play_note("C5", 500)
controller.screen.released(play_sound)













