De muis of een aanwijsapparaat gebruiken
Een aanwijzer is de positie die je met een muis, aanraking of pen bestuurt in een host die dit ondersteunt. Pliro volgt één primaire aanwijzer voor een gebaar: één druk met het bijbehorende loslaten. Bij een muis betekent primair meestal de hoofdknop. Schrijf de exacte tekst "primary" in de kop, dus niet "primair".
Een handler is het blok onder wanneer dat op een gebeurtenis reageert. Een gebeurtenisbeschrijving benoemt die gebeurtenis in de kop. Je mag alleen de handler toevoegen die je nodig hebt; alle drie zijn niet verplicht.
Drukken, loslaten en klikken
| Gebeurtenis | Wanneer gebeurt dit? | Welke positie krijg je? |
|---|---|---|
aanwijzerGedrukt("primary") |
Een geaccepteerde druk begint binnen het tekengebied. | De positie waar werd gedrukt. |
aanwijzerLosgelaten("primary") |
Dezelfde aanwijzer wordt echt losgelaten, ook buiten het tekengebied. | De positie waar werd losgelaten. |
aanwijzerGeklikt("primary") |
Een geaccepteerde druk en het loslaten gebeuren allebei binnen het beeld. Dit volgt op de loslaatgebeurtenis. | De loslaatpositie, niet de oorspronkelijke drukpositie. |
aanwijzerX() geeft de horizontale coördinaat; aanwijzerY() de verticale. De oorsprong, (0, 0), staat linksboven. Deze aanroepen werken binnen de actieve aanwijzerhandler, ook in functies die hij aanroept. Erbuiten geven ze E4020. Probeer het klikvoorbeeld.
Waarom de getallen kunnen verschillen van je scherm
De scène gebruikt 640 bij 360 logische pixels: het eigen coördinatenstelsel van het programma. De host rekent de getoonde grootte en positie terug naar die coördinaten. Zie pixels.
Druk- en klikposities blijven binnen x = 0 tot en met 639 en y = 0 tot en met 359. Loslaatposities mogen daarbuiten liggen. Met teken betekent dat ze negatief mogen zijn: x = -5 ligt vijf logische pixels links van de scène. Ze passen in een geheel getal van 32 bits met teken.
Naar beneden afronden, in het Engels flooring, kiest het eerstvolgende lagere gehele getal: 12,8 wordt 12 en -0,2 wordt -1. Begrenzen, of clamping, zou een buitenpositie op een rand vastzetten. Bij loslaten doet Pliro dat niet. Buiten loslaten kan een loslaatgebeurtenis geven, maar nooit een klik.
Eén gebaar onthouden
De host claimt een aanwijzer door te kiezen dat hij die aanwijzer volgt totdat het gebaar eindigt. Capture, of vastleggen, helpt om diens gebeurtenissen ook buiten het tekengebied te ontvangen. Wordt het gebaar geannuleerd of gaat die vastlegging verloren, dan verzint Pliro geen loslaten of klik. Een al geaccepteerde druk blijft geaccepteerd. Extra of dubbele drukken en andere aanwijzers beginnen op dat moment geen nieuw geaccepteerd gebaar.
Elke handler krijgt een momentopname: de positie die bij de gebeurtenis is opgeslagen. Die is onveranderlijk: later de muis bewegen verandert haar niet. De opname blijft beschikbaar wanneer dezelfde handler wacht, een functie aanroept of een bericht zendt. Een apart ingeplande handler heeft zijn eigen uitvoering en erft die positie niet.
Aanwijzerhandlers houden een geschikt programma gereed voor meer invoer. De host, de omgeving die het programma uitvoert, moet de benodigde aanwijzergebeurtenissen ondersteunen. Stop, afsluiten of een uitvoerfout beëindigt de uitvoering. Gebeurtenissen voor aanwijzerbeweging en slepen zijn nog niet beschikbaar. Zie gebeurtenissen, timers en berichten voor de gedeelde regels voor uitvoerbeurten.
Voorbeeld
# taal: nl
laat klikken = 0
wanneer gestart():
wisScherm("wit")
wanneer aanwijzerGeklikt("primary"):
zet klikken = klikken + 1
cirkel(aanwijzerX(), aanwijzerY(), 12, "blauw")
zeg "Aantal klikken:", klikken
Gerelateerde lemma’s
Syntaxis en waarden · Ingebouwde functies · Programmeergidsen
