Partage
  • Partager sur Facebook
  • Partager sur Twitter

ID de clavier

pour un jeu à 2 personnes, avec 1 clavier par personne

Sujet résolu
    17 janvier 2021 à 14:45:05

    Bonjour,

    Voilà mon problème :

    Pour le développement d'un jeu vidéo, j'ai besoin de 1 clavier par joueur, avec un minimum de 2 joueurs... Cependant, il n'existe pas (à ma connaissance) fonction ou autre de la SDL qui renverrais l'identifiant du clavier ayant fourni l'évènement. Il existe bien SDL_WindowID pour l'event de la fenetre, mais je ne vois pas comment le mettre en pratique.

    Donc plusieurs solutions seraient possibles :

     - Obtenir l'ID d'un clavier

     - Ajouter une fonction de jeu en ligne où l'on ne récupèrerait pas l'ID d'un clavier mais d'un joueur (ce qui serait encore plus pratique, mais sûrement plus difficile à mettre en place)

    Merci d'avence pour vos réponces !

    -
    Edité par Durza42 17 janvier 2021 à 14:45:37

    • Partager sur Facebook
    • Partager sur Twitter

    La gentillesse est le langage qu'un sourd peut entendre et qu'un aveugle peut voir.

    Il n'y a qu'un seul monde et il est faux, cruel, contradictoire, séduisant et dépourvu de sens. Un monde ainsi constitué est le monde réel. Nous avons besoin de mensonges pour conquérir cette réalité, cette "vérité".

      17 janvier 2021 à 14:54:56

      Salut !

      En effet, brancher plusieurs claviers, je ne sais pas si on peut les différencier. Et je n'ai jamais vu de jeux fonctionner ainsi sur PC !

      Pourquoi pas plusieurs manettes plutôt ? Une manette par joueur ? La c'est prévu !

      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

        17 janvier 2021 à 15:03:36

        Le problème de la manette, c'est tout simplement... Que je n'en ai pas ! Partant de là, il est difficile de vérifier si le jeu marche !
        • Partager sur Facebook
        • Partager sur Twitter

        La gentillesse est le langage qu'un sourd peut entendre et qu'un aveugle peut voir.

        Il n'y a qu'un seul monde et il est faux, cruel, contradictoire, séduisant et dépourvu de sens. Un monde ainsi constitué est le monde réel. Nous avons besoin de mensonges pour conquérir cette réalité, cette "vérité".

          17 janvier 2021 à 15:03:39

          Il faut faire en réseau, un PC, un écran et un clavier par joueur !
          • Partager sur Facebook
          • Partager sur Twitter
            17 janvier 2021 à 15:07:01

            C'est bien ce que je craignais... Connais-tu un bon tuto sur la façon de le mettre en place ? (Si c'est avec la SDL, ce n'est normalement pas trop compliqué)
            • Partager sur Facebook
            • Partager sur Twitter

            La gentillesse est le langage qu'un sourd peut entendre et qu'un aveugle peut voir.

            Il n'y a qu'un seul monde et il est faux, cruel, contradictoire, séduisant et dépourvu de sens. Un monde ainsi constitué est le monde réel. Nous avons besoin de mensonges pour conquérir cette réalité, cette "vérité".

              17 janvier 2021 à 15:49:23

              Durza 42 a écrit:

              Le problème de la manette, c'est tout simplement... Que je n'en ai pas ! Partant de là, il est difficile de vérifier si le jeu marche !


              https://www.amazon.fr/TRIXES-Lot-contr%C3%B4leurs-NES-num%C3%A9riques/dp/B07R91BTKZ/ref=sr_1_4?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1&keywords=manette+snes+usb&qid=1610894890&s=electronics&sr=1-4

              J'ai acheté ce genre de manettes pour mon Raspberry, ça fait le boulot. (et c'est reconnu nativement pas Windows et j'avais essayé avec SDL, il les boit bien)

              Mais je les avais payé plus cher (18 euros les deux je crois). la c'est vraiment pas cher, bizarre !

              (après elles ne sont pas chères aussi parce qu'il n'y a pas de sticks analogiques, totalement à l'ancienne ! :) )

              -
              Edité par Fvirtman 17 janvier 2021 à 15:51:26

              • Partager sur Facebook
              • Partager sur Twitter

              Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                17 janvier 2021 à 15:55:58

                Hello,

                Apparemment, tu pourrais brancher plusieurs souris, il y a un champ which qui permet de les différencier. Mais je n'ai jamais essayé et je ne sais pas si ton jeu est prévu pour jouer à la souris.

                • Partager sur Facebook
                • Partager sur Twitter

                On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                  17 janvier 2021 à 16:47:38

                  Cela peut effectivement être une bonne idée. Je vais y réfléchir pour voir comment la mettre en œuvre (pour moi il fallait ~7 touches, mais dont 4 pour le déplacement qui peuvent correspondre au déplacement de la souris et une pour confirmer qui peut s'apparenter au relâchement du clic droit ou gauche).

                  Oui, ce peut être une idée !

                  • Partager sur Facebook
                  • Partager sur Twitter

                  La gentillesse est le langage qu'un sourd peut entendre et qu'un aveugle peut voir.

                  Il n'y a qu'un seul monde et il est faux, cruel, contradictoire, séduisant et dépourvu de sens. Un monde ainsi constitué est le monde réel. Nous avons besoin de mensonges pour conquérir cette réalité, cette "vérité".

                    17 janvier 2021 à 17:23:15

                    Et la plupart des souris ont 3 boutons, par exemple celui de la molette qui, enfoncé, est repris par sdl comme SDL_BUTTON_MIDDLE. La mienne (pas toute jeune, le nom du fabricant est quasi effacé) en a 5 (dont j'ai peu l'usage): le molette peut être poussée vers la gauche ou la droite (il m'a fallu 6 mois et un coup de hasard pour découvrir ça :-) )

                    J'avis fait un post à ce sujet.

                    -
                    Edité par edgarjacobs 17 janvier 2021 à 17:26:45

                    • Partager sur Facebook
                    • Partager sur Twitter

                    On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                      17 janvier 2021 à 18:10:28

                      Je ne suis même pas sur qu'on puisse facilement lever l'ambiguité entre deux souris. Quand j'en branche 2, en bouger une ou l'autre va bouger le même seul curseur. 

                      Je pense que tu t'emmerdes vraiment pour rien alors que comme je te mettais plus haut, tu trouves des manettes pour une bouchée de pain.

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                        17 janvier 2021 à 18:55:33

                        Comme je l'ai écrit, jamais essayé. Et donc, je n'avais jamais envisagé le problème du curseur unique :euh:

                        -
                        Edité par edgarjacobs 17 janvier 2021 à 18:56:01

                        • Partager sur Facebook
                        • Partager sur Twitter

                        On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                          18 janvier 2021 à 18:42:08

                          Comme sur le jeu le curseur n'a pas d'importance, (seuls les déplacements de la souris compte : déplacement à droite, le perso va à droite ; déplacement à gauche, le perso va à gauche...), ce problème est secondaire. Enfin, je crois ; si la SDL regarde le déplacement du curseur, cela risque effectivement d'être compromis.

                          Mais dans tous les cas, tel que je l'avais imaginé, une personne aurait le clavier et l'autre la souris.

                          Cependant, le mieux serait je pense de laisser choisir le joueur au début de chaque partie entre clavier, souris ou manette.

                          Bref, je passe ce sujet en résolu (je devrais faire dans qqs temps une nouveau topic projet, sûrement dans le forum C++, le langage utilisé).

                          Merci à tous pour vos idées !

                          • Partager sur Facebook
                          • Partager sur Twitter

                          La gentillesse est le langage qu'un sourd peut entendre et qu'un aveugle peut voir.

                          Il n'y a qu'un seul monde et il est faux, cruel, contradictoire, séduisant et dépourvu de sens. Un monde ainsi constitué est le monde réel. Nous avons besoin de mensonges pour conquérir cette réalité, cette "vérité".

                            27 janvier 2021 à 15:03:14

                            Salut Durza 42,

                            Juste une suggestion...

                            Tu pourrais aussi te contenter de gérer le clavier, et que le joueur A se voit assigner les touches zqsd (ou wasd sur un clavier US) et le joueur B les touches fléchées, ou mieux, que ton jeu permette aux joueurs de décider quelles touches leurs conviennent, qui devront être différentes.

                            Dès lors tu pourras permettre aux deux joueurs de jouer sur le même clavier, ou même brancher deux claviers sur deux ports USB différents. Le fait que le programme ne puisse pas identifier de quel clavier provient la pression des touches n'est pas un problème si les touches sont différentes.

                            je me souviens avoir joué comme cela il y a des années avec SuperTuxKart et n'avoir eu aucun problème.

                            -
                            Edité par Dlks 27 janvier 2021 à 15:03:27

                            • Partager sur Facebook
                            • Partager sur Twitter
                              28 janvier 2021 à 13:32:41

                              Excellente idée, merci Dlks !

                              J'avais effectivement pensé à ça, mais je n'avais pas pensé aux deux claviers !

                              Ce sera mis en œuvre.

                              • Partager sur Facebook
                              • Partager sur Twitter

                              La gentillesse est le langage qu'un sourd peut entendre et qu'un aveugle peut voir.

                              Il n'y a qu'un seul monde et il est faux, cruel, contradictoire, séduisant et dépourvu de sens. Un monde ainsi constitué est le monde réel. Nous avons besoin de mensonges pour conquérir cette réalité, cette "vérité".

                                28 janvier 2021 à 13:42:12

                                Dlks a écrit:

                                Dès lors tu pourras permettre aux deux joueurs de jouer sur le même clavier, ou même brancher deux claviers sur deux ports USB différents. Le fait que le programme ne puisse pas identifier de quel clavier provient la pression des touches n'est pas un problème si les touches sont différentes.

                                On peut pourrir l'autre joueur aussi en appuyant sur ses touches :lol:
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                                  29 janvier 2021 à 12:35:15

                                  Fvirtman a écrit:

                                  On peut pourrir l'autre joueur aussi en appuyant sur ses touches :lol:

                                  C'est un mode de jeu proposé par SuperTuxKart, et sans doutes d'autres jeux. En principe, on utilise un seul clavier. Si on utilise deux claviers, cela fonctionne aussi et il faut évidemment que les joueurs n'appuient pas sur les touches des autres.

                                  Que l'on utilise deux claviers, ou même si on utilise un seul, on peut appuyer sur les touches de l'autre, on peut aussi le bousculer, lui raconter une blague pour le déconcentrer, lui verser "malencontreusement" notre verre de jus d'orange sur ton pantalon, etc.

                                  Après, si l'un des joueurs triche de cette façon, cela sera visible pour l'autre, et cela va tourner court rapidement.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    29 janvier 2021 à 12:53:51

                                    Salut,

                                    quand on met 2 joueurs sur le même clavier, on ne peut pas faire n'importe quoi, il peut y avoir des problèmes de ghosting (ou touche fantôme) assez rapidement, surtout sur un clavier bon marché. Même sur un clavier de "gamer" dit avec "anti-ghosting", ce n'est généralement effectif que sur un nombre limité de touches, au hasard : zqsd et peut être 5 ou 6 touches classiques (r pour recharger etc..) de plus dans les environs.

                                    Il est avisé de s'assurer que les touches utilisées soient assez éloignées, zqsd et les flèches sont une bonne idée, mais laisser les joueurs choisir est risqué.

                                    Bonne continuation.

                                    -
                                    Edité par drx 29 janvier 2021 à 12:54:31

                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Bonhomme !! | Jeu de plateforme : Prototype.

                                      30 janvier 2021 à 15:07:54

                                      @drx : on peut tout simplement afficher un message de prévention lorsque le programme détecte les touches choisies trop proches, comme : "ATTENTION : les touches que vous avez choisies sont trop proches du joueur 1, vous risquez avoir des problèmes de ghosting !", en rouge sur le dessus de l'écran. Ainsi, si le joueur rencontre ce type de problème, il connaîtra la source su problème et pourra changer ses touches.
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      La gentillesse est le langage qu'un sourd peut entendre et qu'un aveugle peut voir.

                                      Il n'y a qu'un seul monde et il est faux, cruel, contradictoire, séduisant et dépourvu de sens. Un monde ainsi constitué est le monde réel. Nous avons besoin de mensonges pour conquérir cette réalité, cette "vérité".

                                      ID de clavier

                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                      • Editeur
                                      • Markdown