uczę Rakieta (dawniej PLT Scheme, dialekt LISP) i spróbować dowiedzieć się, jak obsługiwać zdarzenia inaczej niż paint-callback
(może to nawet nie jeden).Racket: using wydarzenia w ramie okna%
Mam nadzieję, że wiele z this part of the doc, ale on-char
i on-event
wydaje się nie robić nic, co mogłoby mnie zainteresować (lub w ogóle nic).
Co więcej, nie rozumiem obszarów zdarzeń, kolejki-wywołania zwrotnego i ich zastosowań. Przykładem może być fajna rzecz! Będę wdzięczny miłemu człowiekowi, który mi napisze :).
Oto mój kod:
(define game (new frame%))
(define gameLay (class canvas% (super-new)))
(new gameLay
[parent game]
[paint-callback (λ (canvas dc) #|draw things|#)])
chcę użyć czegoś w stylu „na kliknięcie myszą-left” (który nie istnieje) sposób używam „paint-zwrotnej”, ale myślę, trzeba dodać kroki (czytałem o obszarach zdarzeń itp.). wiem, że to nie działa, ale tutaj jest hipotetyczny kod Szukam:
(new gameLay
[parent game]
[paint-callback (λ (canvas dc) #|draw things|#)]
[on-mouse-click-left (λ (canvas dc) #|do other things|#)])
Myślę, że przykład tego, co chcesz zrobić, naprawdę pomoże ci pokazać, jak to się robi. – Svante
Oto mój kod: '(określić grę (nowa rama%)) (określić gameLay (klasa płótno% (super-nowy))) (nowa gameLay [rodzic gra] [farby zwrotna (λ (canvas dc) ; rysuj rzeczy )]})) ' Chcę użyć czegoś w rodzaju" kliknięcia lewym przyciskiem myszki "(co nie istnieje) w taki sposób, w jaki używam" wywołania funkcji malowania " ale myślę, że muszę dodać kroki (czytałem o obszarach zdarzeń itp.). – L01man
Umieściłem te informacje w twoim pytaniu. Popraw kod; na końcu znajdują się niedopasowane nawiasy i klamry, więc może to nie być zamierzone. Aby uczynić przykład bardziej przejrzystym, po prostu umieść hipotetyczne "kliknięcie myszą" w przykład w taki sposób, w jaki chciałbyś go użyć. – Svante