Communauté

Atelier : C# - FULL...
 
Notifications
Retirer tout

Atelier : C# - FULL SCREEN – Maîtriser l’écran -->> Comment convertir des coordonnées souris en coordonnées du jeu ?

3 Posts
2 Utilisateurs
0 Likes
554 Vu
0
Début du sujet

Bonjour.

Dans un jeu qui se joue à la souris, quand je suis en fenêtré les coordonnées du jeu et de la souris correspondent mais quand je passe en full screen, je n'arrive pas à convertir les coordonnées souris en coordonnées du jeu.

Merci de votre aide.

3 Réponses
0

@bul71 

Il va te falloir stocker les valeurs du ratio de ton viewport. A partir de là, avec le ratio tu as juste à multiplier la position de la souris par le ratio. 

Le ratio est calculé localement dans le Draw si je me souviens bien. Du coup il faudrait en faire un membre de ta classe principal pour le garder sous la main et l'utiliser dans l'update. 

0
Début du sujet

Bonjour.

Désolé ça ne fonctionne pas.

J'ai un jeu fenêtré en 1024x768(mais dans d'autres résolutions le résultat est le même).

J'ai essayé ça :

xMouse = (int)(newMouseState.X * ratio);
yMouse = (int)(newMouseState.Y * ratio);

Ce que j'obtiens ce sont les dimensions de mon écran physique (1920x1080).

Ce que je veux c'est obtenir 0,0 quand je pointe la souris en haut à gauche de la zone occupée par mon jeu et 1023,767 quand je pointe en bas à droite de la zone occupée par mon jeu. Si j'obtiens des valeurs inférieures ou supérieures quand je pointe sur les bandes noires de l'affichage ce n'est pas grave je ne m'en sers pas.

Merci.

0

Il n'y a pas de raison que tu obtiennes les dimensions de ton écran physique si ton ratio n'est pas 1/1. Tu as tracé la valeur ?

Exemple si ton ratio est 0.8, alors une position 100 deviens 80. Ensuite tu ajoutes ta marge (bande noire) et tu devrais avoir la coordonnées relative à ton viewport et non ton écran physique. 

Répondre
Share:

Dialoguez avec les autres membres de la gamecodeur school.

Accédez maintenant à notre serveur Discord privé : Entraide, Game Jams, Partage de projets, etc.

Vous devez être membre de la Gamecodeur School Premium pour être autorisé à accéder au serveur.