Ecrã#
Introdução#
Os métodos de ecrã controlam a forma como o controlador de drone VEX AIR exibe texto, números, gráficos e imagens no seu ecrã, e como responde aos toques no ecrã.
Segue-se uma lista dos métodos disponíveis:
Impressão com cursor – Apresenta o texto e gere o cursor de impressão.
print– Imprime texto, números ou valores de variáveis na posição atual do cursor.set_cursor– Move o cursor para uma linha e coluna específicas.next_row– Desloca o cursor para a coluna 1 da linha seguinte.clear_row– Limpa uma linha de texto.get_row– Retorna a linha onde o texto será impresso.get_column– Retorna a coluna onde será impresso o texto.
Impressão XY – Imprime texto em coordenadas baseadas em pixéis.
print_at– Imprime texto, números ou valores de variáveis numa coordenada x e y específica.set_origin– Define a origem utilizada para a impressão e desenho baseados em coordenadas.
Mutadores – Altere as definições do ecrã, as cores e o comportamento de desenho.
clear_screen– Limpa todos os desenhos, textos e imagens do ecrã do controlador.wait_for_render– Altera o desenho do ecrã para o comportamento de renderização posterior.set_font– Define o tipo de letra para texto impresso.set_pen_width– Define a espessura das linhas desenhadas e dos contornos das formas.set_pen_color– Define a cor do texto, os pixéis, as linhas e os contornos das formas.set_text_fill_color– Define a cor de preenchimento atrás do texto impresso.set_fill_color– Define a cor de preenchimento para as formas desenhadas.
Desenhar – Adicione gráficos e imagens ao ecrã.
draw_pixel– Desenha um pixel numa posição x e y específica.draw_line– Desenha uma linha entre dois pontos.draw_rectangle– Desenha um rectângulo utilizando a caneta actual e as cores de preenchimento.draw_circle– Desenha um círculo utilizando a caneta actual e as cores de preenchimento.show_file– Desenha uma imagem carregada.
Toque – Detetar e responder a toques no ecrã.
pressing– Retorna se o ecrã está a ser pressionado no momento.x_position– Devolve a coordenada x da última pressão no ecrã.y_position– Devolve a coordenada y da última pressão no ecrã.
Callbacks – Executam funções quando o ecrã é pressionado ou libertado.
Impressão do cursor#
print#
print imprime texto, números ou valores de variáveis no ecrã do controlador na posição do cursor e fonte atuais.
Usage:
controller.screen.print(text)
Parâmetros |
Descrição |
|---|---|
|
O texto, número ou valor da variável a imprimir no ecrã. |
|
Opcional. O separador entre textos impressos. Por defeito, |
|
Opcional. A string anexada após o último texto impresso. Por defeito, |
|
Opcional. O número de casas decimais que um número de ponto flutuante será impresso como um número inteiro. Por predefinição, precisão |
# 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 move o cursor para uma linha e coluna específicas no ecrã do controlador. A chamada seguinte print começará a imprimir nesse local. O espaçamento entre linhas e colunas terá em conta a fonte selecionada. Com a fonte monoespaçada média padrão, o ecrã pode exibir claramente até 18 linhas e 53 colunas. O texto colocado para além deste intervalo pode ser cortado ou tornar-se mais difícil de ler.
Usage:
controller.screen.set_cursor(row, col)
Parâmetros |
Descrição |
|---|---|
|
A linha para a qual mover o cursor. |
|
A coluna para a qual deve mover o cursor. |
# 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 move o cursor para a coluna 1 na linha seguinte do ecrã do controlador.
Usage:
controller.screen.next_row()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Display two lines of text.
controller.screen.print("Line 1")
controller.screen.next_row()
controller.screen.print("Line 2")

clear_row#
clear_row limpa uma linha de texto no ecrã do controlador.
Usage:
controller.screen.clear_row(row, color)
Parâmetro |
Descrição |
|---|---|
|
Opcional. A linha a limpar. O predefinido é a linha atual do cursor. |
|
Opcional. A cor a aplicar à linha limpa. Se não for especificada uma cor, será utilizada a
|
# 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 devolve a linha actual onde o texto será impresso, como um número inteiro.
Usage:
controller.screen.get_row()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# 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 devolve a coluna actual onde o texto será impresso, como um número inteiro.
Usage:
controller.screen.get_column()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# Display the cursor's current column.
controller.screen.set_cursor(row=7, col=25)
controller.screen.print(controller.screen.get_column())

Impressão XY#
print_at#
print_at imprime texto, números ou valores de variáveis no ecrã do controlador numa posição específica (x, y) em pixéis, utilizando a fonte e a origem atuais. x define a distância da margem esquerda onde o texto começa e y define onde fica a parte inferior das letras. Este método ignora a posição atual do cursor.
Usage:
controller.screen.print_at(text, x, y)
Parâmetro |
Descrição |
|---|---|
|
O texto, número ou valor da variável a imprimir no ecrã. |
|
A posição horizontal do texto, como um número inteiro de 0 a 640 pixéis. 0 é à esquerda; 640 é à direita. |
|
A posição vertical do texto, como um número inteiro de 0 a 480 pixéis. 0 é o topo; 480 é a parte inferior. |
# Display a message in the middle of the screen.
controller.screen.print_at("Hello, drone!", x=320, y=240)

set_origin#
set_origin define a origem (0, 0) utilizada para o desenho e impressão baseada em coordenadas no ecrã do controlador. Por predefinição, a origem é o canto superior esquerdo do ecrã. Este método pode repor a origem para uma localização alternativa de coordenadas (x, y) no ecrã.
Usage:
controller.screen.set_origin(x, y)
Parâmetro |
Descrição |
|---|---|
|
A nova coordenada x a definir como origem, fornecida como um número inteiro de 0 a 640. |
|
A nova coordenada y a definir como origem, fornecida como um número inteiro de 0 a 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)

Mutantes#
clear_screen#
clear_screen limpa todos os desenhos, texto e imagens do ecrã do controlador.
Usage:
controller.screen.clear_screen(row, col, color)
Parâmetro |
Descrição |
|---|---|
|
Opcional. A linha para a qual o cursor será movido após limpar o ecrã. O predefinido é 1. |
|
Opcional. A coluna para a qual o cursor será movido após limpar o ecrã. O predefinido é 1. |
|
Opcional. Define a cor do ecrã. Se
|
# 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 alterna o comportamento de renderização do ecrã para renderizar mais tarde. Depois de este método ser executado, os comandos de ecrã seguintes não aparecerão no ecrã do controlador até que o próximo método wait_for_render seja executado.
Nota: Utilize esta opção antes de desenhar um grupo de texto, formas ou imagens e, em seguida, utilize-a novamente para renderizar a atualização completa de uma só vez.
Usage:
controller.screen.wait_for_render()
Parâmetro |
Descrição |
|---|---|
Este método não tem parâmetros. |
# 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 define a fonte utilizada para apresentar o texto no ecrã do controlador. Esta fonte será aplicada a todo o texto impresso após a execução deste método. A fonte padrão no início de um projeto é MONO20.
Usage:
controller.screen.set_font(fontname)
Parâmetro |
Descrição |
|---|---|
|
Define a fonte para uma das seguintes opções:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
# Display text using a larger font.
controller.screen.set_font(MONO40)
controller.screen.print("VEX")

set_pen_width#
set_pen_width define a espessura das linhas desenhadas e dos contornos das formas.
Usage:
controller.screen.set_pen_width(width)
Parâmetro |
Descrição |
|---|---|
|
A largura da caneta, expressa como um número inteiro em pixéis. |
# 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 define a cor do texto, os pixéis, as linhas e os contornos das formas.
Usage:
controller.screen.set_pen_color(color)
Parâmetro |
Descrição |
|---|---|
|
Opcional. Define a cor da caneta e do tipo de letra. As opções incluem:
|
# 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 define a cor de preenchimento atrás do texto impresso. A cor de preenchimento padrão do texto é transparente.
Usage:
controller.screen.set_text_fill_color(color)
Parâmetro |
Descrição |
|---|---|
|
Opcional. Define a cor de preenchimento do texto. As opções incluem:
|
# 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 define a cor de preenchimento utilizada quando as formas são desenhadas. A cor de preenchimento predefinida é preta.
Usage:
controller.screen.set_fill_color(color)
Parâmetro |
Descrição |
|---|---|
|
Opcional. Define a cor de preenchimento. As opções incluem:
|
# 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)

Desenhar#
draw_pixel#
draw_pixel desenha um pixel na coordenada x e y seleccionada utilizando a cor da caneta.
Usage:
controller.screen.draw_pixel(x, y)
Parâmetro |
Descrição |
|---|---|
|
A coordenada x onde o pixel será desenhado, fornecida como um número inteiro de 0 a 640. |
|
A coordenada y onde o pixel será desenhado, fornecida como um número inteiro de 0 a 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 desenha uma linha da primeira coordenada do ecrã (x1, y1) para a segunda coordenada do ecrã (x2, y2) utilizando a largura da caneta e a cor da caneta atuais.
As coordenadas x e y utilizam a origem padrão de (0, 0) a menos que tenha sido definida uma origem diferente utilizando set_origin.
Usage:
controller.screen.draw_line(x1, y1, x2, y2)
Parâmetro |
Descrição |
|---|---|
|
A coordenada x inicial da linha, dada como um número inteiro de 0 a 640. |
|
A coordenada y inicial da linha, dada como um número inteiro de 0 a 480. |
|
A coordenada x final da linha, dada como um número inteiro de 0 a 640. |
|
A coordenada y final da recta, dada como um número inteiro de 0 a 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 desenha um retângulo utilizando a largura da caneta, cor da caneta e cor de preenchimento atuais, a menos que seja utilizado o parâmetro opcional color.
As coordenadas x e y utilizam a origem padrão de (0, 0) a menos que tenha sido definida uma origem diferente utilizando set_origin.
Usage:
controller.screen.draw_rectangle(x, y, width, height, color)
Parâmetro |
Descrição |
|---|---|
|
A coordenada x do canto superior esquerdo do retângulo, dada como um número inteiro de 0 a 640. |
|
A coordenada y do canto superior esquerdo do retângulo, dada como um número inteiro de 0 a 480. |
|
A largura do retângulo, dada como um número inteiro de 0 a 640. |
|
A altura do retângulo, dada como um número inteiro de 0 a 480. |
|
Opcional. Define a cor de preenchimento do retângulo. As opções incluem:
|
# 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 desenha um círculo utilizando a largura da caneta, cor da caneta e cor de preenchimento atuais, a menos que seja utilizado o parâmetro opcional color.
As coordenadas x e y utilizam a origem padrão de (0, 0) a menos que tenha sido definida uma origem diferente utilizando set_origin.
Usage:
controller.screen.draw_circle(x, y, radius, color)
Parâmetro |
Descrição |
|---|---|
|
A coordenada x do centro da circunferência, dada como um número inteiro de 0 a 640. |
|
A coordenada y do centro do círculo, dada como um número inteiro de 0 a 480. |
|
O raio do círculo, dado como um número inteiro de 0 a 480 pixéis. |
|
Opcional. Define a cor de preenchimento do círculo. As opções incluem:
|
# 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 desenha uma imagem personalizada carregada no ecrã do controlador numa posição x e y, com dimensionamento, rotação e transparência alfa opcionais.
Usage:
controller.screen.show_file(file, x, y, scale_width, scale_height, rotation, use_alpha)
Parâmetro |
Descrição |
|---|---|
|
A imagem que será utilizada será a enviada pelo utilizador. As opções serão alteradas se os nomes das imagens forem editados no Painel de Controlo. |
|
O deslocamento horizontal da imagem, dado como um número inteiro em pixéis. Os valores positivos movem a imagem para a direita; valores negativos deslocam-na para a esquerda. |
|
O deslocamento vertical da imagem, dado como um número inteiro em pixéis. Os valores positivos movem a imagem para baixo; valores negativos movem-na para cima. |
|
Opcional. A largura da imagem para a qual a escala será aplicada, especificada como um número inteiro em pixéis. |
|
Opcional. A altura da imagem para a qual se está a dimensionar, indicada como um número inteiro em pixéis. |
|
Opcional. O número de graus para rodar a imagem, dado como um número inteiro de 0 a 359. |
|
Opcional. Indica se o canal alfa da imagem deve ser utilizado para transparência. As opções incluem: |
# 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)
Toque#
pressing#
pressing returns a Boolean indicating whether the robot’s screen is currently being pressed.
True– O ecrã está a ser pressionado.False– O ecrã não está a ser pressionado.
Usage:
controller.screen.pressing()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# 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 devolve a coordenada x em pixéis onde o ecrã foi pressionado pela última vez, como um número inteiro de 0 (esquerda) a 640 (direita).

Usage:
controller.screen.x_position()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
# 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 devolve a coordenada y em pixéis onde o ecrã foi pressionado pela última vez, como um número inteiro de 0 (superior) a 480 (inferior).

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)
Retornos de chamada#
pressed#
Ao premir pressed regista uma função a ser chamada quando o ecrã do controlador é premida.
Usage:
controller.screen.pressed(callback, arg)
Parâmetros |
Descrição |
|---|---|
|
Uma função que está previamente definida para ser executada quando o ecrã do controlador é pressionado. |
|
Opcional. Uma tupla contendo argumentos para passar para a função de callback. Consulte Utilizar funções com parâmetros para obter mais informações. |
# Play a sound when the screen is pressed.
def play_sound():
controller.sound.play_note("C5", 500)
controller.screen.pressed(play_sound)
released#
released regista uma função a ser chamada quando o ecrã do controlador for libertado.
Usage:
controller.screen.released(callback, arg)
Parâmetros |
Descrição |
|---|---|
|
Uma função que está previamente definida para ser executada quando o ecrã do controlador é libertado. |
|
Opcional. Uma tupla contendo argumentos para passar para a função de callback. Consulte Utilizar funções com parâmetros para obter mais informações. |
# Play a sound when the screen is pressed.
def play_sound():
controller.sound.play_note("C5", 500)
controller.screen.released(play_sound)













