IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Affichage et désaffichage des FPS lorsqu'on appuie sur une touche


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2017
    Messages : 3
    Par défaut Affichage et désaffichage des FPS lorsqu'on appuie sur une touche
    Bonjour,
    Je programme un jeu sur Unity et j'essaye que quand on appuie sur la touche P, les FPS apparecent et disparaissent. Voici mon code pour l'instant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
     
    public class MainG : MonoBehaviour {
     
    	[SerializeField]
    	private Text FramePerSecond;
    	private float fps;
    	public int FPS = 0;
     
    	void Start (){
    		FramePerSecond.transform.localPosition = new Vector3 (2000, 493, 0);
    		FPS = 0;
    	} 
     
    	void Update ()	{
     
    		if (FPS == 0 && Input.GetKeyDown (KeyCode.P)) {
    			FramePerSecond.transform.localPosition = new Vector3 (822, 493, 0);
    			FPS = 1;
    		}
    		if (FPS == 1 && Input.GetKeyDown (KeyCode.P)) {
    			FramePerSecond.transform.localPosition = new Vector3 (2000, 493, 0);
    			FPS = 0;
    		}
     
    		fps = (9.0f * fps + 1.0f / Time.deltaTime) / 10.0f;
    		FramePerSecond.text = "FPS : " + (int)fps;
     
    	}
     
    }
    J'ai déjà essayé plusieurs techniques en vain.
    Merci de toutes réponses
    Nekro

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Et que se passe t'il à la place ? Ça clignote ? Rien ne se passe ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2017
    Messages : 3
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    Et que se passe t'il à la place ? Ça clignote ? Rien ne se passe ?
    Oui ça clignote et ça ne s'affiche pas (donc reste à la position x = 2000
    Merci pour ta réponse
    Nekro

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Je ne connais pas unity mais le problème doit être assez simple essaie de mettre un elseif au lieu d'un deuxième if pour tester.

    getkeydown te ressort bien la touche qu'une seule fois lorsque tu appuie sur ta touche correspondante ?

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Après il faudrait préciser le comportement que tu attend.
    Les FPS doivent s'afficher tant que P est enfoncé ? Ou chaque appuie sur P bascule l'affichage des fois.

    On parle d'appui sur la touche mais ça peut être la touche qui est relâché keyup ? Tout comme la souris dans Windows.

  6. #6
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2017
    Messages : 3
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    Après il faudrait préciser le comportement que tu attend.
    Les FPS doivent s'afficher tant que P est enfoncé ? Ou chaque appuie sur P bascule l'affichage des fois.

    On parle d'appui sur la touche mais ça peut être la touche qui est relâché keyup ? Tout comme la souris dans Windows.
    Merci bien pour tes réponses. J'ai remplacer le keydown par keyup et le else if . Voici le code pour ceux qui en aurait besoin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
     
    public class MainG : MonoBehaviour {
     
    	[SerializeField]
    	private Text FramePerSecond;
    	private float fps;
    	public int FPS = 0;
     
    	void Start (){
    		FramePerSecond.transform.localPosition = new Vector3 (2000, 493, 0);
    		FPS = 0;
    	} 
     
    	void Update ()	{
     
    		if (FPS == 0 && Input.GetKeyUp (KeyCode.P)) {
    			FramePerSecond.transform.localPosition = new Vector3 (822, 493, 0);
    			FPS = 1;
    		}else{
    		if (FPS == 1 && Input.GetKeyUp (KeyCode.P)) {
    			FramePerSecond.transform.localPosition = new Vector3 (2000, 493, 0);
    			FPS = 0;
    		}
    }
     
    		fps = (9.0f * fps + 1.0f / Time.deltaTime) / 10.0f;
    		FramePerSecond.text = "FPS : " + (int)fps;
     
    	}
     
    }
    Voili voilou. Merci encore
    Nekro

Discussions similaires

  1. [Gtk2-perl] Gestion des évenements pour l'appui d'une touche.
    Par GarulfoLinux dans le forum Interfaces Graphiques
    Réponses: 0
    Dernier message: 08/08/2007, 17h48
  2. Réponses: 9
    Dernier message: 15/05/2007, 16h45
  3. Comment jouer un clip lorsqu'on presse sur une touche
    Par jbidou88 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 04/05/2006, 08h21
  4. Réponses: 3
    Dernier message: 24/01/2005, 11h57
  5. Simuler l'appui sur une touche, au niveau système
    Par debutant java dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 13/08/2004, 12h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo