Ecrã#

Introdução#

Os métodos de ecrã controlam a forma como o robô de codificação VEX AIM exibe texto, números e gráficos no seu ecrã e como responde aos toques no ecrã.

Segue-se uma lista de todos os métodos:

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ã.

Impressão com cursor – Apresenta texto utilizando um sistema de linhas/colunas.

  • 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 actual do cursor.

  • get_column – Retorna a coluna actual do cursor.

Impressão XY – Apresentar texto numa coordenada específica do ecrã.

  • 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.

Modificadores – Limpam o ecrã ou atualizam as definições visuais.

  • clear_screen – Limpa o ecrã de todos os desenhos e textos.

  • 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_fill_color – Define a cor de preenchimento para as formas desenhadas e para os fundos de texto impressos.

Desenhar – Adicione gráficos e imagens ao ecrã.

Callbacks – Executam funções quando o ecrã é pressionado ou libertado.

  • pressed – Regista uma função para chamar quando o ecrã é pressionado.

  • released – Regista uma função para chamar quando o ecrã é libertado.

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:
robot.screen.pressing()

Parâmetros

Descrição

Este método não tem parâmetros.

# 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 devolve a coordenada x da última pressão no ecrã como um número inteiro de 0 (esquerda) a 240 (direita).

Usage:
robot.screen.x_position()

Parâmetros

Descrição

Este método não tem parâmetros.

# 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 devolve a coordenada y da última pressão no ecrã como um número inteiro de 0 (superior) a 240 (inferior).

Usage:
robot.screen.y_position()

Parâmetros

Descrição

Este método não tem parâmetros.

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

Impressão do cursor#

print#

print prints text, numbers, or variable values on the robot’s screen at the current cursor position and font.

Usage:
robot.screen.print(text)

Parâmetros

Descrição

text

O texto, número ou valor da variável a ser apresentado no ecrã.

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

Uma captura de ecrã do ecrã do robô, com "Olá, Robô!" impresso a branco na parte superior.

set_cursor#

set_cursor move o cursor de texto para uma linha e coluna específicas no ecrã do robô. A chamada seguinte print começará a imprimir nesse local. O número de linhas e colunas que cabem depende da fonte selecionada. Com a fonte monoespaçada média padrão, o ecrã pode exibir claramente até 8 linhas e 13 colunas. O texto colocado para além deste intervalo pode ser cortado ou tornar-se mais difícil de ler.

As fontes monoespaçadas têm caracteres com a mesma largura, tornando o posicionamento do texto consistente. Em contraste, as fontes proporcionais variam na largura dos caracteres, pelo que algumas letras ocupam mais espaço do que outras. No entanto, independentemente do tipo utilizado, set_cursor posiciona o cursor com base no tamanho da linha e da coluna, e não no estilo da fonte. O tamanho da letra pode ser ajustado utilizando set_font.

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

Parâmetros

Descrição

row

A linha para a qual mover o cursor.

column

A coluna para a qual deve mover o cursor.

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

Uma captura de ecrã do ecrã do robô, com a "Linha 3, Coluna 2" impressa a branco logo acima do centro do ecrã, a partir da linha 3, coluna 2.

next_row#

next_row move o cursor para a coluna 1 na linha seguinte do ecrã do robô.

Usage:
robot.screen.next_row()

Parâmetros

Descrição

Este método não tem parâmetros.

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

Uma captura de ecrã do ecrã do robô com texto branco. O ecrã apresenta "Linha 1" na linha superior, alinhada à esquerda, e "Linha 2" diretamente abaixo.

clear_row#

clear_row limpa uma única linha de texto no ecrã do robot.

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

Parâmetro

Descrição

row

Opcional. A linha a limpar, em número inteiro. O predefinido é a linha atual do cursor.

color

Opcional. A cor a aplicar à linha limpa. As opções incluem:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Também pode especificar uma cor personalizada.

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

Uma captura de ecrã do ecrã do robô com uma barra verde a atravessar o centro do ecrã da esquerda para a direita.

get_row#

get_row devolve a linha actual onde o texto será impresso como um número inteiro.

Usage:
robot.screen.get_row()

Parâmetros

Descrição

Este método não tem parâmetros.

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

Captura de ecrã SA do ecrã do robô, com um 3 branco impresso perto do centro do quadrante superior esquerdo, na linha 3, coluna 2.

get_column#

get_column devolve a coluna actual onde o texto será impresso como um número inteiro.

Usage:
robot.screen.get_column()

Parâmetros

Descrição

Este método não tem parâmetros.

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

Uma captura de ecrã do ecrã do robô, com um 2 branco impresso perto do centro do quadrante superior esquerdo, na linha 3, coluna 2.

Impressão XY#

set_origin#

set_origin define a origem utilizada para o desenho e impressão baseada em coordenadas no ecrã do robô. Por predefinição, a origem é o canto superior esquerdo do ecrã.

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

Parâmetro

Descrição

x

A nova coordenada x a definir como origem, fornecida como um número inteiro de 0 a 240.

y

A nova coordenada y a definir como origem, fornecida como um número inteiro de 0 a 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)

Uma captura de ecrã do ecrã do robô com um retângulo branco desenhado no quadrante inferior esquerdo. O canto superior esquerdo do retângulo é o centro do ecrã.

Mutantes#

clear_screen#

clear_screen limpa todos os desenhos e textos do ecrã do robot. Por predefinição, também reinicia a posição do cursor para a linha 1, coluna 1.

Usage:
robot.screen.clear_screen(color)

Parâmetro

Descrição

color

Opcional. Define a cor do ecrã. As opções incluem:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Também pode especificar uma cor personalizada.

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

Uma captura de ecrã do ecrã do robô, mostrando todo o ecrã em vermelho brilhante.

set_font#

set_font define a fonte utilizada para apresentar o texto no ecrã do robô. Esta fonte será aplicada a todo o texto impresso com print ou print_at. A fonte padrão no início de um projeto é MONO24.

Usage:
robot.screen.set_font(fontname)

Parâmetro

Descrição

fontname

Define a fonte para uma das seguintes opções:

  • MONO12
  • MONO15
  • MONO20
  • MONO24
  • MONO30
  • MONO40
  • MONO60
  • PROP20
  • PROP30
  • PROP40
  • PROP60
Estas opções são apresentadas abaixo.

Uma captura de ecrã do ecrã do robô que mostra uma amostra de números e letras impressos na fonte Mono 12. O alfabeto ocupa 1 linha de texto. Na parte inferior, lêem-se 26 caracteres na horizontal e 15 linhas.
MONO12

A mesma imagem da anterior com o tipo de letra Mono 15. As letras AT ocupam 1 linha de texto. A parte inferior apresenta 20 caracteres na horizontal e 12 linhas.
MONO15

A mesma imagem da anterior, com tipo de letra Mono 20. As letras AP ocupam 1 linha de texto. A parte inferior apresenta 16 caracteres na horizontal e 9 linhas.
MONO20

A mesma imagem da anterior, com tipo de letra Mono 24. As letras AM ocupam 1 linha de texto. A parte inferior apresenta 13 caracteres na horizontal e 8 linhas.
MONO24

A mesma imagem que a anterior, com tipo de letra Mono 30. As letras AK ocupam 1 linha de texto. A parte inferior apresenta 11 caracteres na horizontal e 6 linhas.
MONO30

A mesma imagem que a anterior, com tipo de letra Mono 40. As letras AH ocupam 1 linha de texto. A parte inferior apresenta 8 caracteres na horizontal e 5 linhas.
MONO40

A mesma imagem que a anterior, com números impressos em tipo de letra Mono 60. Os números de 1 a 6 ocupam 1 linha de texto. A parte inferior indica 3 linhas.
MONO60

A mesma imagem que a anterior, com o tipo de letra da Proposta 20. As letras "As" ocupam 1 linha de texto. A parte inferior apresenta 20 caracteres na horizontal e 9 linhas.
PROP20

A mesma imagem que a anterior, com o tipo de letra da Proposta 30. As letras AM ocupam 1 linha de texto. A parte inferior apresenta 15 caracteres na horizontal e 6 linhas.
PROP30

A mesma imagem que a anterior, com o tipo de letra da Proposta 40. As letras AJ ocupam 1 linha de texto. A parte inferior apresenta 11 caracteres na horizontal e 5 linhas.
PROP40

A mesma imagem que a anterior, com números impressos na fonte Prop 60. Os números de 1 a 7 ocupam uma linha de texto. Na parte inferior está escrito 7 por 3.
PROP60

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

Uma captura de ecrã do ecrã do robô mostra VEX em fonte Mono 40 no canto superior esquerdo.

set_pen_width#

set_pen_width define a espessura das linhas desenhadas e dos contornos das formas.

Usage:
robot.screen.set_pen_width(width)

Parâmetro

Descrição

width

A largura da caneta, em pixéis, varia de 0 a 32.

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

Uma captura de ecrã do ecrã do robô com um retângulo branco grosso desenhado na metade superior.

set_pen_color#

set_pen_color define a cor do texto, os pixéis, as linhas e os contornos das formas.

Usage:
robot.screen.set_pen_color(color)

Parâmetro

Descrição

color

Opcional. A cor da caneta e da fonte a utilizar. As opções incluem:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Também pode especificar uma cor personalizada.

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

Uma captura de ecrã do ecrã do robô com um retângulo vermelho com uma borda fina desenhada na metade superior.

set_fill_color#

set_fill_color define a cor de preenchimento utilizada quando as formas são desenhadas e quando o texto impresso utiliza um fundo.

Usage:
robot.screen.set_fill_color(color)

Parâmetro

Descrição

color

Opcional. A cor de preenchimento a utilizar. As opções incluem:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Também pode especificar uma cor personalizada.

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

Uma captura de ecrã do ecrã do robô com dois retângulos laranja paralelos com contornos brancos finos posicionados no centro esquerdo do ecrã.

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

Uma captura de ecrã do ecrã do robô mostra "Destaque" em texto branco com um destaque roxo à volta, começando no canto superior esquerdo.

Desenhar#

draw_pixel#

draw_pixel desenha um pixel na coordenada x e y seleccionada utilizando a cor da caneta.

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

Parâmetro

Descrição

x

A coordenada x onde o pixel será desenhado, fornecida como um número inteiro de 0 a 240.

y

A coordenada y onde o pixel será desenhado, fornecida como um número inteiro de 0 a 240.

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

Uma captura de ecrã do ecrã do robô com um único pixel branco no centro.

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:
robot.screen.draw_line(x1, y1, x2, y2)

Parâmetro

Descrição

x1

A coordenada x inicial da linha, dada como um número inteiro de 0 a 240.

y1

A coordenada y inicial da linha, dada como um número inteiro de 0 a 240.

x2

A coordenada x final da linha, dada como um número inteiro de 0 a 240.

y2

A coordenada y final da recta, dada como um número inteiro de 0 a 240.

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

Uma captura de ecrã do ecrã do robô com uma fina linha diagonal branca desenhada do canto superior esquerdo para o canto inferior direito.

draw_rectangle#

draw_rectangle desenha um rectângulo com o seu canto superior esquerdo na coordenada (x, y) seleccionada e um tamanho determinado pela largura e altura fornecidas, tudo medido em pixéis. O contorno do retângulo é desenhado utilizando a largura da caneta e a cor da caneta atuais. O interior é preenchido com a cor de preenchimento actual, 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:
robot.screen.draw_rectangle(x, y, width, height, color)

Parâmetro

Descrição

x

A coordenada x do canto superior esquerdo do retângulo, dada como um número inteiro de 0 a 240.

y

A coordenada y do canto superior esquerdo do retângulo, dada como um número inteiro de 0 a 240.

width

A largura do retângulo, dada como um número inteiro de 0 a 240.

height

A altura do retângulo, dada como um número inteiro de 0 a 240.

color

Opcional. A cor de preenchimento do retângulo. As opções incluem:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Também pode especificar uma cor personalizada.

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

Uma captura de ecrã do ecrã do robô com um retângulo vermelho brilhante com uma fina borda branca centrada na metade superior do ecrã.

draw_circle#

draw_circle desenha um círculo com o seu centro na coordenada (x, y) seleccionada e um tamanho determinado pelo raio fornecido, tudo medido em pixéis. O contorno do círculo é desenhado utilizando a largura da caneta e a cor da caneta atuais. O interior é preenchido com a cor de preenchimento actual, 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:
robot.screen.draw_circle(x, y, radius, color)

Parâmetro

Descrição

x

A coordenada x do centro da circunferência, dada como um número inteiro de 0 a 240.

y

A coordenada y do centro da circunferência, dada como um número inteiro de 0 a 240.

radius

O raio do círculo, dado como um número inteiro de 0 a 240 pixéis.

color

Opcional. A cor de preenchimento do círculo. As opções incluem:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Também pode especificar uma cor personalizada.

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

Uma captura de ecrã do ecrã do robô com um círculo verde brilhante com uma fina borda branca no centro.

show_file#

show_file exibe uma imagem personalizada carregada no ecrã do robô, com a sua posição definida utilizando os parâmetros x, ye center com base no ponto de referência da imagem.

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

Parâmetro

Descrição

file

A imagem personalizada a utilizar, de IMAGE1 a IMAGE10O número da imagem corresponde ao número apresentado no painel de controlo do AIM.

x

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.

y

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.

center

Opcional. Se center=True, a imagem é colocada utilizando o seu centro na coordenada (120, 120). Por defeito (center=False), o canto superior esquerdo da imagem é utilizado e posicionado em relação à origem.

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

O parâmetro set_clip_region define uma área rectangular no ecrã onde serão apresentados todos os desenhos e textos. Qualquer conteúdo fora dessa região não será mostrado.

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

Parâmetro

Descrição

x

A coordenada x do canto superior esquerdo da região de recorte, dada como um decimal (float) de 0 a 240.

y

A coordenada y do canto superior esquerdo da região de recorte, dada como um decimal (float) de 0 a 240.

width

A largura da região de recorte em pixéis, dada como um decimal (float) de 0 a 240.

height

A altura da região de recorte em pixéis, dada como um decimal (float) de 0 a 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)

Uma captura de ecrã do ecrã do robô mostrando o texto e a imagem que cabem na região de recorte. No quadrante superior esquerdo, o texto branco diz "Cut o", com um quadrado vermelho directamente por baixo.

Retornos de chamada#

pressed#

pressed regista um método a ser chamado quando o ecrã do robô é pressionado.

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

Parâmetros

Descrição

callback

Uma função que está previamente definida para ser executada quando o ecrã do controlador é pressionado.

arg

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.

# 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 regista um método a ser chamado quando o ecrã do robô for libertado.

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

Parâmetros

Descrição

callback

Uma função que está previamente definida para ser executada quando o ecrã do controlador é pressionado.

arg

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.

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

robot.screen.released(screen_released)