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
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é".
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 !
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é".
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é)
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é".
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 ! )
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.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
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 !
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é".
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 :-) )
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.
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 !
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é".
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.
J'avais effectivement pensé à ça, mais je n'avais pas pensé aux deux claviers !
Ce sera mis en œuvre.
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é".
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
On peut pourrir l'autre joueur aussi en appuyant sur ses touches
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.
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é.
@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.
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.
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é".
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
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é".
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é".
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
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é".
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
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é".
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é".
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Bonhomme !! | Jeu de plateforme : Prototype.
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é".