Je suis débutant, mais j'ai pour travail de créer un jeu (space invader) en c sous linux.
Cependant je rencontre 3 problèmes:
Malgré mes nombreuses recherches je ne trouve pas comment faire en sorte de détecter les touches du clavier afin de les associer à une fonction, par exemple si j'appuis sur la flèche de gauche mon vaisseau ira à gauche.
Deuxième problème, puisque je dois faire fonctionner le jeu sur le terminal, je ne sais pas comment initier ou définir la longueur et hauteur de la fenêtre du terminal afin de placer mon vaisseau à l'endroit souhaité. Au passage mon vaisseau est un vaisseau créer en ascii étendu dans un fichier txt.
Enfin dernier problème et je pense le plus compliqué, mettre en place une hitbox. Alors là, vraiment aucune idée.
Si quelqu'un à une idée et veut bien m'aider je lui serait énormément reconnaissant !
Ps: J'aimerais ne pas utiliser les librairies sdl ou bien ncurses si possible.
Si tu veux utiliser sdl, il faut -- mais ça nécessite d'avoir un bagage un C -- lire un tutoriel. Et pas celui de oc, qui n'est plus à jour depuis des années. Celui de zeste de savoir est très correct.
Edit: désolé: je n'avais pas bien vu: "j'aimerais ne pas utiliser"
- Edité par edgarjacobs 26 octobre 2021 à 23:14:32
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Tu peux regarder ce topic, qui explique comment passer le terminal en mode raw pour faire ce que tu veux sans utiliser de bibiothèque, mais juste les capacités du terminal POSIX.
Il y a aussi des posts dans ce même topic sur l'utilisation des séquences d'échappement, qui te serviront pour diverses choses (mettre de la couleur, déplacer le curseur à un endroit souhaité, vider l'écran,...). Renseigne toi sur les séquences d'échappement.
En revanche il ne va pas falloir t'attendre à recevoir beaucoup plus d'aide ici … non seulement c'est chiant (et c'est bien pour cela qu'on recourt à des bibliothèques comme ncurses) mais c'est hyper long à expliquer en détail.
J'ai travaillé avec terminfo il y a des lustres sur Unix. Crois-moi, ce n'est pas une si bonne idée que ça ... À l'époque, il n'y avait que de stupides terminaux du genre 24 lignes et 80 colonnes. Les séquences n'étaient pas les mêmes et les modes d'affichage non plus. Comment faire de la surbrillance ou du scrolling n'étaient pas standard non plus. Je préfèrerais m'en remettre à une bibliothèque standard.
Le Tout est souvent plus grand que la somme de ses parties.
Je vous remercie pour vos réponses, de ce que j’ai compris il vaut mieux utiliser des bibliothèques standards. Imaginons que je choisis ncurses, avez vous des bons tropic ou bien sites expliquant comment justement utiliser les coordonnées de la fenêtre du terminal et récupérer les touches du clavier.
L'exécutable que tu vas créer sera lié à la bibliothèque ncurses ou statiquement ou dynamiquement. Dans les deux cas la bibliothèque sera chargée en mémoire plus ou moins au moment du chargement de ton prgramme par l'os …
Ce serait encore pire de faire des choses avec les librairies et d'autres "manuellement"
Le Tout est souvent plus grand que la somme de ses parties.
détection de touche en c sur Ubuntu
× 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.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.