2016-09-21 1 views
0

Je travaille actuellement sur un jeu à moi avec Monogame et il s'agit d'un projet multiplateforme (je voudrais qu'il fonctionne sous Windows, Linux et Mac) .J'ai un problème avec l'obtention de l'entrée. Je voudrais avoir un événement qui est reais quand une touche est enfoncée et donnez-moi la clé. Et un autre événement quand un CHAR est entré. Ce que je fais atm. J'utilise le Microsoft.Xna.Framework GameWindow du principal moteur appelé classe (la classe qui vient avec monogame.) D'entrée de texte:GameWindow en Monogame Cross Platform avec OpenTK/Entrée

public static void Initialize(GameWindow window) 
    { 
     window.TextInput += CharEnteredEvent; 
    } 

Je souscris à l'événement et quand char est entré dans cet événement est élevé mais quand ctrl ou d'autres touches sont pressées ce n'est pas comme prévu. Le GameWindow de Microsoft.Xna.Framework a seulement ceci mais le GameWindow d'OpenTK a plus d'événements comme TextInput, KeyDown, KeyUp etc. Si j'utilise l'OpenTK Gamewindow j'ai tout ce dont j'ai besoin mais Monogame cross platform utilise Microsoft.Xna.Framework GameWindow. Toutes les idées comment je peux utiliser la fenêtre de jeu OpenTK et non le monogame. BTW les projets crossplatform en monogame sont livrés avec OpenTK. Merci d'avance. Désolé pour la longue question.

Répondre

0

Vous devez interroger l'état du clavier à l'aide de l'API Keyboard.GetState(). L'événement TextInput est uniquement destiné à la saisie de texte - il ne fournit pas d'autres clés.

Vous n'êtes pas censé jeter un coup d'œil à OpenTK lorsque vous utilisez MonoGame. En tant que framework multiplateforme, MonoGame est destiné à abstraire ces bibliothèques. Par exemple, la prochaine version 3.6 utilisera SDL au lieu de l'obsolète OpenTK.