Képernyő#

Bevezetés#

A Screen metódusok szabályozzák, hogy a VEX AIM kódolórobot hogyan jelenít meg szöveget, számokat és grafikákat a képernyőjén, és hogyan reagál a képernyőnyomásokra.

Az alábbiakban felsoroljuk az összes módszert:

Érintés – Képernyőérintések észlelése és reagálás rájuk.

  • pressing – Visszaadja, hogy a képernyő jelenleg le van-e nyomva.

  • x_position – Visszaadja az utolsó képernyőleütés x koordinátáját.

  • y_position – Visszaadja az utolsó képernyőleütés y koordinátáját.

Kurzorkiírás – Szöveg megjelenítése sor/oszlop rendszerben.

  • print – Szöveget, számokat vagy változóértékeket nyomtat ki az aktuális kurzorpozícióban.

  • set_cursor – A kurzort egy adott sorra és oszlopba mozgatja.

  • next_row – A kurzort a következő sor 1. oszlopába mozgatja.

  • clear_row – Töröl egy sor szöveget.

  • get_row – Visszaadja az aktuális kurzor sorát.

  • get_column – Visszaadja az aktuális kurzor oszlopát.

XY nyomtatás – Szöveg megjelenítése egy adott képernyő-koordinátán.

  • print_at – Szöveget, számokat vagy változóértékeket nyomtat ki egy adott x és y koordinátán.

  • set_origin – Beállítja a koordináta alapú nyomtatáshoz és rajzoláshoz használt origót.

Mutátorok – Töröld a képernyőt, vagy frissítsd a vizuális beállításokat.

  • clear_screen – Törli a képernyőt az összes rajztól és szövegtől.

  • set_font – Beállítja a nyomtatott szöveg betűtípusát.

  • set_pen_width – Beállítja a rajzolt vonalak és alakzatok körvonalainak vastagságát.

  • set_pen_color – Beállítja a szöveg, a képpontok, a vonalak és az alakzatok körvonalainak színét.

  • set_fill_color – Beállítja a rajzolt alakzatok és a nyomtatott szöveg hátterének kitöltési színét.

Rajzolás – Grafikák és képek hozzáadása a képernyőhöz.

Visszahívások – Függvények futtatása a képernyő megnyomásakor vagy felengedésekor.

  • pressed – Regisztrál egy függvényt, amely a képernyő megnyomásakor hívódik meg.

  • released – Regisztrál egy függvényt, amely a képernyő elengedésekor hívódik meg.

Érintés#

pressing#

pressing megnyomása közötti logikai érték egy logikai értéket ad vissza, amely jelzi, hogy a robot képernyőjének megnyomása folyamatban van-e.

  • True – A képernyőt megnyomják.

  • False – A képernyőt nem nyomják meg.

Usage:
robot.screen.pressing()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 Az utolsó képernyőnyomás x koordinátáját adja vissza 0-tól (balra) 240-ig (jobbra) terjedő egész számként.

Usage:
robot.screen.x_position()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 Visszaadja az utolsó képernyőnyomás y koordinátáját 0-tól (felül) 240-ig (alul) terjedő egész számként.

Usage:
robot.screen.y_position()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

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

Kurzor nyomtatása#

print#

print parancs szöveget, számokat vagy változó értékeket nyomtat ki a robot képernyőjén az aktuális kurzor pozíciója és betűtípus pozícióban.

Usage:
robot.screen.print(text)

Paraméterek

Leírás

text

A képernyőn megjelenítendő szöveg, szám vagy változó értéke.

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

A robot képernyőjének képernyőképe, tetején fehérrel nyomtatva a „Hello, Robot!” felirattal.

set_cursor#

set_cursor parancs a szövegkurzort a robot képernyőjén egy adott sorra és oszlopra mozgatja. A következő print hívás ezen a helyen kezdi meg a nyomtatást. A beférő sorok és oszlopok száma a kiválasztott betűtípustól függ. Az alapértelmezett, egysoros közepes betűtípussal a képernyő akár 8 sort és 13 oszlopot is képes tisztán megjeleníteni. Az ezen a tartományon túl elhelyezett szöveg lemaradhat vagy nehezebben olvasható lesz.

Az egyszélességű betűtípusok azonos szélességű karaktereket használnak, így a szöveg elhelyezése egységes. Ezzel szemben az arányos betűtípusok karakterszélessége eltérő, így egyes betűk több helyet foglalnak el, mint mások. Azonban a használt típustól függetlenül set_cursor a kurzort a sor- és oszlopméret, nem pedig a betűstílus alapján pozicionálja. A betűméret a set_font segítségével állítható be.

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

Paraméterek

Leírás

row

A sor, ahová a kurzort át kell helyezni.

column

Az oszlop, amelyre a kurzort át kell helyezni.

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

A robot képernyőjének képernyőképe, amelyen a képernyő közepe fölé, a 3. sor 2. oszlopától kezdve fehér színnel van nyomtatva a "3. sor, 2. oszlop".

next_row#

next_row parancs a kurzort a robot képernyőjének következő sorának 1. oszlopába mozgatja.

Usage:
robot.screen.next_row()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

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

A robot képernyőjének képernyőképe fehér szöveggel. A képernyőn az 1. sor a felső sorban, balra igazítva, a 2. sor pedig közvetlenül alatta olvasható.

clear_row#

clear_row parancs egyetlen sornyi szöveget töröl a robot képernyőjén.

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

Paraméter

Leírás

row

Opcionális. A törlendő sor egész számként. Az alapértelmezett érték az aktuális kurzor sora.

color

Optional. The color to apply to the cleared row. Options include:

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

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

A robot képernyőjének képernyőképe, a képernyő közepén balról jobbra egy zöld sávval.

get_row#

get_row függvény visszaadja az aktuális sort, ahová a szöveg egész számként lesz kinyomtatva.

Usage:
robot.screen.get_row()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

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

A robot képernyőjének képernyőképe, egy fehér 3-as számmal a bal felső negyed közepéhez közel, a 3. sor 2. oszlopában.

get_column#

get_column függvény visszaadja az aktuális oszlopot, ahová a szöveg egész számként kerül kiírásra.

Usage:
robot.screen.get_column()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

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

A robot képernyőjének képernyőképe, egy fehér 2-es számmal a bal felső negyed közepéhez közel, a 3. sor 2. oszlopában.

XY nyomtatás#

set_origin#

set_origin A robot képernyőjén a rajzoláshoz és a koordináta alapú nyomtatáshoz használt origót állítja be. Alapértelmezés szerint az origó a képernyő bal felső sarka.

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

Paraméter

Leírás

x

Az origóként beállítandó új x koordináta, 0 és 240 közötti egész számként megadva.

y

Az origóként beállítandó új y koordináta, 0 és 240 közötti egész számként megadva.

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

A robot képernyőjének képernyőképe, amelyen egy fehér téglalap látható a bal alsó negyedben. A téglalap bal felső sarka a képernyő közepe.

Mutátorok#

clear_screen#

clear_screen parancs törli az összes rajzot és szöveget a robot képernyőjéről. Alapértelmezés szerint a kurzort is az 1. sor 1. oszlopába állítja vissza.

Usage:
robot.screen.clear_screen(color)

Paraméter

Leírás

color

Optional. Sets the screen color. Options include:

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

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

A robot képernyőjének képernyőképe, amelyen a teljes képernyő élénkvörös színben látható.

set_font#

set_font paraméterrel beállítható a robot képernyőjén megjelenő szöveg betűtípusa. Ez a betűtípus minden, a print vagy az print_at paranccsal kinyomtatott szövegre vonatkozik. A projekt kezdetén az alapértelmezett betűtípus a MONO24.

Usage:
robot.screen.set_font(fontname)

Paraméter

Leírás

fontname

A betűtípust a következők egyikére állítja be:

  • MONO12
  • MONO15
  • MONO20
  • MONO24
  • MONO30
  • MONO40
  • MONO60
  • PROP20
  • PROP30
  • PROP40
  • PROP60
Ezek a beállítások az alábbiakban láthatók.

A robot képernyőjének képernyőképe, amelyen Mono 12 betűtípussal nyomtatott számok és betűk mintája látható. Az ábécé egy sornyi szöveget foglal el. Az alsó sor 26 karaktert és 15 sort tartalmaz.
MONO12

Ugyanaz a kép, mint az előző, Mono 15 betűtípussal. Az AT betűk egy sor szöveget foglalnak el. Az alsó kép 20 karakter hosszú és 12 sor hosszú.
MONO15

Ugyanaz a kép, mint az előző, Mono 20 betűtípussal. Az AP betűk egy sor szöveget foglalnak el. Az alsó kép 16 karakter hosszú és 9 soros.
MONO20

Ugyanaz a kép, mint az előző, Mono 24 betűtípussal. Az AM betűk egy sor szöveget foglalnak el. Az alsó kép 13 karakter hosszú és 8 soros.
MONO24

Ugyanaz a kép, mint az előző, Mono 30 betűtípussal. Az AK betűk egy sor szöveget foglalnak el. Az alsó kép 11 karakter hosszú és 6 sor hosszú.
MONO30

Ugyanaz a kép, mint az előző, Mono 40 betűtípussal. Az AH betűk egy sor szöveget foglalnak el. Az alsó kép 8 karakter hosszú és 5 sor hosszú.
MONO40

Ugyanaz a kép, mint az előző, csak Mono 60 betűtípussal nyomtatott számokkal. Az 1-6 számok egy sor szöveget foglalnak el. Az alsó kép 3 sort tartalmaz.
MONO60

Ugyanaz a kép, mint az előző, csak Prop 20 betűtípussal. Az A betűk egy sor szöveget foglalnak el. Az alsó kép 20 karakter hosszú és 9 soros.
PROP20

Ugyanaz a kép, mint az előző, csak Prop 30 betűtípussal. Az AM betűk egy sor szöveget foglalnak el. Az alsó rész 15 karakter hosszú és 6 soros.
PROP30

Ugyanaz a kép, mint az előző, csak Prop 40 betűtípussal. Az AJ betűk egy sor szöveget foglalnak el. Az alsó kép 11 karakter hosszú és 5 soros.
PROP40

Ugyanaz a kép, mint az előző, csak a számok Prop 60 betűtípussal vannak nyomtatva. Az 1-7 számok egy sor szöveget foglalnak el. Az alsó sor 7 x 3.
PROP60

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

A robot képernyőjének képernyőképén a bal felső sarokban Mono 40 betűtípussal VEX felirat látható.

set_pen_width#

set_pen_width beállítja a rajzolt vonalak és alakzatok körvonalainak vastagságát.

Usage:
robot.screen.set_pen_width(width)

Paraméter

Leírás

width

A toll szélessége pixelben, 0 és 32 között.

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

A robot képernyőjének képernyőképe, amelynek felső felén egy vastag fehér téglalap látható.

set_pen_color#

set_pen_color beállítja a szöveg, a képpontok, a vonalak és az alakzatok körvonalainak színét.

Usage:
robot.screen.set_pen_color(color)

Paraméter

Leírás

color

Opcionális. A használandó toll- és betűszín. A lehetőségek a következők:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Megadhat egy egyéni színt is.

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

A robot képernyőjének képernyőképe egy piros téglalappal, amelynek felső felén vékony szegély van.

set_fill_color#

set_fill_color beállítja a kitöltőszínt, amelyet alakzatok rajzolásakor és hátteret használó nyomtatott szöveg esetén használ.

Usage:
robot.screen.set_fill_color(color)

Paraméter

Leírás

color

Opcionális. A használandó kitöltőszín. A lehetőségek a következők:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Megadhat egy egyéni színt is.

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

A robot képernyőjének képernyőképe, amelyen két párhuzamos narancssárga téglalap látható vékony, fehér körvonalakkal a képernyő bal közepén.

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

A robot képernyőjének képernyőképén a bal felső sarokból kiindulva fehér szöveggel, lila kiemeléssel körülötte a „Kiemelés” felirat olvasható.

Döntetlen#

draw_pixel#

draw_pixel függvény egy pixelt rajzol a kiválasztott x és y koordinátán az aktuális toll szín használatával.

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

Paraméter

Leírás

x

Az x koordináta, ahová a képpontot kirajzoljuk, 0 és 240 közötti egész számként megadva.

y

Az y koordináta, ahová a képpontot kirajzoljuk, 0 és 240 közötti egész számként megadva.

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

A robot képernyőjének képernyőképe egyetlen fehér pixellel a közepén.

draw_line#

draw_line függvény egy vonalat húz az első képernyő-koordinátától ( (x1, y1) a második képernyő-koordinátáig (x2, y2) a jelenlegi toll szélessége és toll színe paraméterek felhasználásával.

Az x és y koordináták az alapértelmezett (0, 0) origót használják, kivéve, ha a set_origin használatával más origót állítottak be.

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

Paraméter

Leírás

x1

A vonal kezdő x koordinátája, 0 és 240 közötti egész számként megadva.

y1

A vonal kezdő y koordinátája, 0 és 240 közötti egész számként megadva.

x2

A vonal végpontjának x koordinátája, 0 és 240 közötti egész számként megadva.

y2

A vonal végső y koordinátája, 0 és 240 közötti egész számként megadva.

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

A robot képernyőjének képernyőképe, amelyen egy vékony fehér átlós vonal húzódik a bal felső saroktól a jobb alsó sarokig.

draw_rectangle#

draw_rectangle függvény egy téglalapot rajzol, amelynek bal felső sarka a kiválasztott (x, y) koordinátán van, a mérete pedig a megadott szélesség és magasság által meghatározott, pixelben mért értékek alapján. A téglalap körvonalát az aktuális pen width és pen color paraméterek segítségével rajzolja meg. A belsejét az aktuális fill color tölti ki, kivéve, ha az opcionális color paramétert használjuk.

Az x és y koordináták az alapértelmezett (0, 0) origót használják, kivéve, ha a set_origin használatával más origót állítottak be.

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

Paraméter

Leírás

x

A téglalap bal felső sarkának x koordinátája, 0 és 240 közötti egész számként megadva.

y

A téglalap bal felső sarkának y koordinátája, 0 és 240 közötti egész számként megadva.

width

A téglalap szélessége, 0 és 240 közötti egész számként megadva.

height

A téglalap magassága, 0 és 240 közötti egész számként megadva.

color

Opcionális. A téglalap kitöltési színe. A lehetőségek a következők:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Megadhat egy egyéni színt is.

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

A robot képernyőjének képernyőképe, amelyen egy élénkpiros téglalap látható, vékony fehér szegéllyel a képernyő felső felén középen.

draw_circle#

draw_circle függvény egy kört rajzol, amelynek középpontja a kiválasztott (x, y) koordinátán van, és a méretet a megadott sugár határozza meg, mindezt pixelben mérve. A kör körvonalát az aktuális pen width és pen color paraméterek segítségével rajzolja meg. A belső teret az aktuális fill color tölti ki, kivéve, ha az opcionális color paramétert használjuk.

Az x és y koordináták az alapértelmezett (0, 0) origót használják, kivéve, ha a set_origin használatával más origót állítottak be.

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

Paraméter

Leírás

x

A kör középpontjának x koordinátája, 0 és 240 közötti egész számként megadva.

y

A kör középpontjának y koordinátája, 0 és 240 közötti egész számként megadva.

radius

A kör sugara, 0 és 240 képpont közötti egész számként megadva.

color

Opcionális. A kör kitöltési színe. A lehetőségek a következők:

  • BLACK
  • BLUE
  • CYAN
  • GREEN
  • ORANGE
  • PURPLE
  • RED
  • TRANSPARENT
  • WHITE
  • YELLOW
Megadhat egy egyéni színt is.

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

A robot képernyőjének képernyőképe egy élénkzöld körrel, középen vékony fehér szegéllyel.

show_file#

show_file függvény egy egyénileg feltöltött képet jelenít meg a robot képernyőjén, amelynek pozíciója a x, yés center paraméterekkel van beállítva a kép referenciapontja alapján.

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

Paraméter

Leírás

file

A használandó egyéni kép IMAGE1 -től IMAGE10ig. A kép száma megegyezik az AIM vezérlőpulton látható számmal.

x

A kép vízszintes eltolása, pixelben megadott egész számként. A pozitív értékek jobbra, a negatív értékek balra tolják el a képet.

y

A kép függőleges eltolása, pixelben megadott egész számként. A pozitív értékek lefelé, a negatív értékek felfelé tolják a képet.

center

Opcionális. Ha center=True, akkor a kép a (120, 120) koordinátájú középpontjához igazodik. Alapértelmezés szerint (center=False) a kép bal felső sarkát használja és az aktuális origin-hez képest pozicionálja.

# 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 egy téglalap alakú területet határoz meg a képernyőn, ahová az összes rajz és szöveg be lesz zárva. Az ezen a területen kívüli tartalom nem jelenik meg.

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

Paraméter

Leírás

x

A klip régió bal felső sarkának x koordinátája, decimális (float) formában megadva 0-tól 240-ig.

y

A klip régió bal felső sarkának y koordinátája, decimális (float) formában megadva 0-tól 240-ig.

width

A klipterület szélessége pixelben, decimális (float) formában megadva 0 és 240 között.

height

A klipterület magassága pixelben, decimális (float) formában megadva 0 és 240 között.

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

A robot képernyőjének képernyőképe, amelyen látható a kivágási területre illeszkedő szöveg és kép. A bal felső negyedben fehér szöveg olvasható: „O-vágás”, közvetlenül alatta egy piros négyzettel.

Visszahívások#

pressed#

pressed regisztrál egy metódust, amely akkor hívódik meg, amikor a robot képernyőjét megnyomják.

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

Paraméterek

Leírás

callback

Egy korábban definiált függvény, amely a vezérlőképernyő megnyomásakor végrehajtódik.

arg

Opcionális. Egy tuple, amely argumentumokat tartalmaz a visszahívó függvénynek átadandó. További információkért lásd a Függvények használata paraméterekkel részt.

# 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 regisztrál egy metódust, amely akkor hívódik meg, amikor a robot képernyőjét elengedik.

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

Paraméterek

Leírás

callback

Egy korábban definiált függvény, amely a vezérlőképernyő megnyomásakor végrehajtódik.

arg

Opcionális. Egy tuple, amely argumentumokat tartalmaz a visszahívó függvénynek átadandó. További információkért lásd a Függvények használata paraméterekkel részt.

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

robot.screen.released(screen_released)