je disais donc... _rowread (cf mini-msg)
Cela dit, un "jeu d'avions" du style de phoenix et de Solar n'est pas vraiment le genre de programme qu'on développe pour "s'entrainer" !!!!!
Si tu galère déjà avec un pb comme celui-là (pr lequel il suffit de cherche un peu pr avoir la solution => doc de TIGCC ou tutorial C, dsipo sur TI-Fr par exemple), tu risque de ne pas aller loin...
Je suis moi-même en train de faire un jeu de ce type (si tui veux avoir une idée de ce que ça donne, va voir le topic "jeu : Krypton" dans la rubrique Software),et je peux te diure que ce n'est pas d'un niveau de débuitant (je prog en C depuis maintenant 1 an !)
J'ai pensé a faire une matrice mais je ne sais pas comment m'y prendre
Voilà un if qui devrait faire exactement ce que tu veux:
if (!(Touche_presse=kbhit()) || !(Touche_presse = ngetchx()))
On doit pouvoir simplifier en connaissant mieux ton programme.
Explication de mon if:
1. On assigne kbhit() à Touche_presse.
2. Si c'est 0, l'expression est vraie tout de suite et la 2ème partie ne sera pas évaluée.
3. Sinon, on assigne ngetchx() à Touche_presse.
4. Si c'est 0, l'expression est vraie, sinon, elle est fausse.
Donc en fin de compte:
1. Si aucune touche n'est pressée, ton if est vrai et il y a 0 en Touche_presse.
2. Si une touche est pressée, ton if est faux et il y a le nombre de la touche en Touche_presse.
Kelso Le 06/11/2001 à 21:47 mais nan!
si tu fait un jeu faut utiliser _rowread (cf tuto C, en + squale à mis les touches les + connus).
packe les fonctions kbhit, ngetchx, tt ça , en high-level, C SUPER LENT!
regarde aussi kbd.h (je crois) pour + d'infos
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue
Perso, je prefere utiliser _rowread .. en plus avec l'include de janjan, ca va tout seul, pu la peine de se faire chier a anoter sur le coté pour savoir kelle touche c'est ..
En tout cas, pour le tir, je ne sais pas comment tu procede, si c un scolling ou un pt par pt ...
je dirai de ne pas faire de scrolling : tout en calcul de point par point : c plus flexible (ça permet de gérer 36 vitesses différentes pr chaque missile, ennemi ou autre).
Et puis, ainsi, tu peux aller ds ttes les directions...
c'est vrai. rowread ca lit plusieurs touches a la fois.
sinon la technique du if( t = kbhit... c pas mal mais c un peu long avec un GKeyFlush(); on evite de faire un OR.
et puis, ac _rowread, tu peux désactiver l'AUTO_INT_1 => ça va bcp plus vite !!!
(un gain pouvant aller jusqu'à 50% en vitesse, il parait...)
de rien.
par contre, je crois que _rowread ne lis pas "une fois", mais pendant "un certain temp";..
Par ex, si tu fais un boucle ac ton_rowread dedans, la touche appuyé sera détectée comme telle ds plusieurs passages de la boucle (puisque tu relacheras jamais la touche aussi vite que la boucle ne boucle...)
Je comprend alors pouquoi j'ai mi du temps pour maîtriser correctement certain jeux de serpents.