Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [resolu] Touche clavier  (Lu 4630 fois)

0 Membres et 1 Invité sur ce sujet

Snitteur

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
[resolu] Touche clavier
« le: Février 15, 2014, 06:27:18 pm »
          Bonjour, je demande encore de l'aide, comme je l'ai dit dans un autre poste je suis nouveau. Cette fois ci je voudrais récupérais l’état d'une touche clavier ( barre d’espace ).

Pour le moment j'ai ce code :
            if (sf::Keyboard::isKeyPresed(sf::Keyboard::Space))
                  {
                 ramb.move(sf::Vector2f(0, -0.2)) ;
                  }

Et je voudrais le même mais avec un truc comme sa :

            if (sf::Keyboard::isKeyReleased(sf::Keyboard::Space))
                {
                 ramb.move(sf::Vector2f(0, -0.2)) ;
                }


Ps le dernier code ne fonctionne pas !
« Modifié: Février 21, 2014, 10:18:37 am par Snitteur »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Touche clavier
« Réponse #1 le: Février 15, 2014, 07:59:15 pm »
T'as pas dû beaucoup réflechir ::)

Ce n'est pas une question de code mais de logique : une touche relâchée, c'est une touche qui n'est pas enfoncée :
if (!sf::Keyboard::isKeyPressed(sf::Keyboard::Space))
{
    ramb.move(sf::Vector2f(0, -0.2)) ;
}
Laurent Gomila - SFML developer

Snitteur

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Touche clavier
« Réponse #2 le: Février 17, 2014, 12:27:45 pm »
Un tout petit peu on va dire, mais la je voudrais s'avoir comment faire un while avec ce type de condition  :) :
                 
                                     position du sprite compris entre ( x,y ) et ( x,y )
« Modifié: Février 17, 2014, 02:55:42 pm par Snitteur »

Excellium

  • Jr. Member
  • **
  • Messages: 70
    • Voir le profil
Re : Touche clavier
« Réponse #3 le: Février 19, 2014, 10:46:33 am »
Si j'ai bien compris tu veux déplacer un sprite d'une position A à une position B, il te faut donc réaliser une interpolation linéaire de sa position en fonction du temps (détail important, sinon la vitesse de déplacement variera en fonction de la puissance de ta machine). Autrement dit, déterminer l'équation de la droite passant par A et B (si tu sais pas comment faire je te laisse chercher sur google), faire le rapport du temps écoulé depuis le départ en A sur le temps total que tu veux pour que le sprite fasse tout le trajet, et enfin l'appliquer pour réaliser l'interpolation.
Si t'as toujours pas compris, au point A le coefficient vaut 0%, au point B 100%, et entre les deux il varie au cours du temps.  :)

PS: Poste un nouveau sujet quand t'as une nouvelle question (mais pas la peine d'inonder le forum non plus...)  ;)
« Modifié: Février 19, 2014, 10:48:52 am par Excellium »
"Everything should be made as simple as possible, but not simpler."

Snitteur

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : Touche clavier
« Réponse #4 le: Février 19, 2014, 01:51:23 pm »
Non ce n'est pas ce que je recherche ( enfin je pense ). De mon point de vue je recherche quelque chose pour effectuer un action "a" tant que le sprite ce trouve entre les coordonnée "y" et "y²" ( voir l'image ci dessous )


Excellium

  • Jr. Member
  • **
  • Messages: 70
    • Voir le profil
Re : Touche clavier
« Réponse #5 le: Février 19, 2014, 03:21:00 pm »
La méthode sf::FloatRect::intersects est ton amie donc  :D
"Everything should be made as simple as possible, but not simpler."

Snitteur

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : Touche clavier
« Réponse #6 le: Février 19, 2014, 05:06:09 pm »
Ok, pourrais tu me montrer comment m'en servir ( me donner le code quoi )

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Touche clavier
« Réponse #7 le: Février 19, 2014, 05:59:35 pm »
Citer
un action "a" tant que le sprite ce trouve entre les coordonnée "y" et "y²"

if (position > y && position < y2)
    action();

??
Laurent Gomila - SFML developer

Excellium

  • Jr. Member
  • **
  • Messages: 70
    • Voir le profil
Re : Touche clavier
« Réponse #8 le: Février 19, 2014, 06:20:07 pm »
Laurent a raison, pas la peine de sortir l'artillerie lourde...
"Everything should be made as simple as possible, but not simpler."

Snitteur

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : Touche clavier
« Réponse #9 le: Février 19, 2014, 07:46:15 pm »
Effectivement, la solution de Laurent semble plus facile, je te remercie aussi Excellium

Snitteur

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : Touche clavier
« Réponse #10 le: Février 20, 2014, 06:15:09 pm »
Juste je viens de me rendre conte que je ne sais pas comment récupérais le Y ou le y²  :(  .
Car si je fixe une limite du style y = 10 et y² = 365 cela va t'il marcher ?  Et aussi, récupérais la position d'un sprite. J'en demande un peut beaucoup mais la je suis a court d’idée.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Touche clavier
« Réponse #11 le: Février 20, 2014, 07:12:34 pm »
Citer
si je fixe une limite du style y = 10 et y² = 365 cela va t'il marcher ?
C'est quoi "marcher" ? On ne sait même pas quelle est ta problématique, quelle est la finalité de ces questions.

Citer
Et aussi, récupérais la position d'un sprite.
Là franchement... RTFM, quoi ;)
Laurent Gomila - SFML developer

Snitteur

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : Touche clavier
« Réponse #12 le: Février 20, 2014, 07:58:25 pm »
    La grippe n'aide pas à la réflexion.

    1) Dans ta méthode :
Citer
if (position > y && position < y2)
    action();

        Comment récupère tu le y, car comme sur mon dessin je veux fixer une limite fictive en haut et en bas, puis créer cette fameuse condition.


     2)
Citer
si je fixe une limite du style y = 10 et y² = 365 cela va t'il marcher ?
     
     Ici je veux fixe les limites fictives : y celle du haut et y² celle du bas ( ma forme fait 450 en y ) et ensuite comment faire pour vérifier si mon sprite <= y ou y².   


Si je ne suis pas claire je reformulerais ma demande une fois que cette "grippe" sera moins présente.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Touche clavier
« Réponse #13 le: Février 20, 2014, 08:12:44 pm »
Le Y c'est toi qui le définit. Soit des valeurs fixées, soit dépendantes d'autre chose, ... on ne sait pas ce que tu programmes nous, hein ;)

En ce qui concerne la position du sprite, as-tu lu le fucking manual ?
Laurent Gomila - SFML developer

Snitteur

  • Jr. Member
  • **
  • Messages: 63
    • Voir le profil
Re : Touche clavier
« Réponse #14 le: Février 20, 2014, 08:24:11 pm »
le fucking manual ( pas a ma connaissance )

 

anything