2010-02-02 4 views
1

J'écris un jeu de tic-tac-toe dans plt-scheme comme mon projet de cours AI. L'idée de IUG est une grille de 9 cases, chacune avec une toile, en utilisant des panneaux ... Lorsque l'utilisateur clique sur une toile, « X » ou « O » sera établi en conséquence ...plt-scheme: catching mouse click événement sur toile

Le question est de savoir comment puis-je attraper l'événement de clic de souris sur la toile? J'ai découvert que je devais utiliser sur-événement, mais ne sais toujours pas comment? Des indices?

Répondre

2

Ok, je l'ai ...

(define canvas-box% 
    (class canvas% 
    (define/override (on-event e) 
      (when (equal? (send e get-event-type) 'left-down) (foobar-callback))) 
    (super-new))) 
0

J'ai tous commande de la souris et le clavier pour des usages partout ici.

(define my-canvas% 

(class canvas% 
    (define/override (on-event event) 
    (and 
     (send test reader (list (number->string (send event get-x)) 
        (number->string (send event get-y)))) 
     (send test reader (list (send event get-event-type))))) 
(define/override (on-char event) 
    (define pressed (send event get-key-code)) 
    (if (char? pressed) (send test reader (list (make-string 1 pressed))) '())) 
    (super-new))) 

(define tester% 
(class object% 
    (super-new) 
    (define command '()) 

    (define/public (reader x) 
    (and (set! command x) 
     (display x)) 
    ) 
    (define/public (outer) 
    command) 
))