Bonjour à tous,
étant en train de réaliser un bête jeu de pong en Smalltalk (à l'aide de VisualWorks), je viens vous trouver à cause d'un problème auquel je ne trouve aucune solution. Je n'arrive à capturer aucun évènement clavier.
Afin de dégrossir le problème, mon projet se compose pour l'instant des classes suivantes :
- Ball : le modèle de la balle
- Player : le modèle d'un joueur (on a le joueur bleu et le rouge qui sont instances de cette classe)
- PongController : le contrôleur censé gérer les évènements
- PongView : la vue
- UIPong : l'UI générée avec le painter de VW.
J'ai surchargé la méthode defaultControllerClass
de ma vue pour créer une instance de PongController :
1 2 | defaultControllerClass ^PongController |
Puis, après avoir fouillé dans le "browser" de VW, j'ai vu qu'il me fallait surcharger keyPressedEvent:
et processKeyboardEvent:
dans ma classe PongController, ce que j'ai fait :
1 2 3 4 5 6 7 8 | keyPressedEvent: event "J'ai laissé le code de base" ^self processKeyboardEvent: event. processKeyboardEvent: event "Code de test censé fonctionner (testé lui-même dans un workspace)" Transcript show: 'L''evenement a ete traite'. ^nil. |
Donc, peu importe la touche que je martèle, rien ne se produit. Selon un de mes professeurs, ça viendrait d'une histoire de focus, mais rien n'y fait.
Merci beaucoup d'avance.
Bisou.