meerdere pijltjestoetsen tegelijk

Jaarvak op 7 studiepunten
Forumregels
Misschien werd je vraag al vorig jaar gesteld? Gebruik dus eerst de zoekoptie!

Er zijn formularia/samenvattingen aanwezig op de volgende link: viewtopic.php?f=19&t=93
anneketje
Nieuw lid
Nieuw lid
Berichten: 4
Lid geworden op: 02 dec 2008, 19:58

meerdere pijltjestoetsen tegelijk

Berichtdoor anneketje » 28 mar 2009, 15:25

hey,

ik had een vraagje ivm de pijltjestoetsen in modula2.

weet iemand misschien of het mogelijk is om 2 pijltjestoetsen tegelijk in te drukken, zodat het object bv schuin naar boven kan bewegen?

grtjs,
tom & ankatrien
Beerend
IRW-FAN!
IRW-FAN!
Berichten: 313
Lid geworden op: 30 sep 2008, 18:15
Locatie: Mechelen
Contacteer:

Re: meerdere pijltjestoetsen tegelijk

Berichtdoor Beerend » 28 mar 2009, 16:47

Uit Wimdows.def:

Code: Selecteer alles

(* Checks if a certain key is pressed -- *)
PROCEDURE KeyDown( k: CARDINAL ): BOOLEAN;


Dus het zou iets zijn als:

Code: Selecteer alles

IF (KeyDown(arrowLeft) = TRUE) AND (KeyDown(arrowDown) = TRUE) THEN
   schuinbewegen(linksonder);
END;
Tom
Doctor in de forumwetenschappen
Doctor in de forumwetenschappen
Berichten: 3851
Lid geworden op: 05 okt 2008, 08:11
Locatie: Vilvoorde

Re: meerdere pijltjestoetsen tegelijk

Berichtdoor Tom » 28 mar 2009, 18:37

Maar dan moet je voor alle mogelijke combinaties een if maken
is dat niet beetje lang?

maarja als het niet anders kan ^^

Go anka, maak het maar zo :p
Beerend
IRW-FAN!
IRW-FAN!
Berichten: 313
Lid geworden op: 30 sep 2008, 18:15
Locatie: Mechelen
Contacteer:

Re: meerdere pijltjestoetsen tegelijk

Berichtdoor Beerend » 28 mar 2009, 19:10

tom_ schreef:Maar dan moet je voor alle mogelijke combinaties een if maken
is dat niet beetje lang?

maarja als het niet anders kan ^^

Go anka, maak het maar zo :p


Wat misschien ook werkt is van in alle richtingen de verplaatsing op te tellen, vermenigvuldigd met de overeenkomstige KeyDown waarde.

Iets als:

Code: Selecteer alles

balletje.x := balletje.x + verplaatsing*VAL(CARDINAL, KeyDown(arrowRight))
balletje.x := balletje.x - verplaatsing*VAL(CARDINAL, KeyDown(arrowLeft))


Als de KeyDown dan een FALSE weergeeft wordt dat als CARDINAL naar 0 geconverteerd en zal er geen verplaatsing in de richting in kwestie zijn en als Left en Right tegelijk worden ingedrukt heffen die bijdragen elkaar op.

Terug naar “Informatica”

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 2 gasten

cron