2013-03-08 1 views
0

J'ai un mini projet de jeu à faire dans WPF C#.WPF MiniGame Project - utiliser deux événements clés en même temps

Le jeu tourne autour du tir et la majeure partie du jeu est presque terminée.

Le problème est que j'utilise l'événement KeyDown pour monter et descendre, et que j'ai besoin de tirer avec la touche espace. Tout fonctionne bien jusqu'à ce que j'essaie de monter ou de descendre et que j'essaie aussi de tirer. J'ai essayé de mettre l'événement de feu dans le KeyUp, mais quand même, quand on bouge et qu'on tourne ensemble, ça ne marche pas.

veuillez me dire si vous avez des idées pour cela. Par ailleurs, je sais WPF dosnt destiné à créer des jeux, mais il doit être fait dans WPF.

Merci!

+0

peut vous envoyer votre code d'événement key_down? difficile de dire ce qui se passe autrement. > Tout fonctionne bien jusqu'à ce que j'essaie de monter ou descendre et d'essayer de tirer. On dirait que vous avez quelque chose comme ça si (Key == Key.Up) moveUp() else si (Key == Key.Down) moveDown() else si (Key == Key.Space) Fire() cela signifie que vous ne serez être capable de faire 1 de ce qui précède. est impossible de dire beaucoup d'autres sans code. –

+0

Je n'ai que si, pas autrement si et ne fonctionne toujours pas. – user2148492

Répondre

0

Définissez des valeurs booléennes comme IsMovingUp, IsFiring, et ainsi de suite sur true dans l'événement KeyDown et marquez les événements comme étant gérés. Définissez ces booléens sur false dans l'événement KeyUp. Puis, dans votre boucle de jeu principale, vous pouvez vérifier les booléens et agir en conséquence.

+0

Ce n'est pas si bon aussi, le joueur ne peut pas bouger en douceur, seulement par paliers à chaque clic. Ce que j'ai fait est de mettre 3 booléens et une autre méthode qui fonctionne avec la minuterie même milliseconde. Des idées? – user2148492

-1

Chacune des méthodes et vers le bas et tirer le mettre dans un fil Le programme principal de cette façon:

if (tir == 32) 32 = le code ASCII Espace & tir variables

Venez tirer en plus pour le haut vers le bas & ainsi, la commande est exécutée et ne sont pas mélangés Argument :)

Questions connexes