Vous n'êtes pas identifié.
bah depuis que j'utilise le grayscale, j'ai emmerde sur emmerde.
des que j'utilise peek(...,...) pour le clavier ca fait bugger la graph100 quand j'utilise grayscale. Alors je voudrais que tu m'expliques ta methode pour le clavier que tu utilises dans bomberman.
Hors ligne
En fait ça dépend... mais la ft que j'utilise le plus souvent c le bioskey. avec un switch et des cases.
Exemple:
debut_boucle: key=bioskey(0); switch(key) { case K_RIGHT: { bla bla tes instructions } case K_UP: etc... default: goto debut boucle; //si key ne prend aucune de ces valeurs on va à debut_boucle }
En fait key va être la valeur testée. si key=K_RIGHT on éxécute certaines instructions, etc...
Mais /!Attention/! Il faut définir au préalable les valeurs de K_RIGHT etc...
Ms comme aujourd'hui je suis sympa, je te donne tous les codes bioskey de la g100 (tiré des sources de leadfiner et de roeoender, puis réarrangées)
#include <stdio.h> #include <bios.h> #define K_F1 15104 #define K_F2 15360 #define K_F3 15616 #define K_F4 15872 #define K_F5 16128 #define K_F6 16384 #define K_SHIFT 10752 #define K_CTRL 7424 #define K_OPTN 14848 #define K_LEFT 19200 #define K_RIGHT 19712 #define K_UP 18432 #define K_DOWN 20480 #define K_ALPHA 14336 #define K_VARS 17920 #define K_PUISS 3678 #define K_ESC 256 #define K_X_THETA_T 7745 #define K_A K_X_THETA_T #define K_LOG 12354 #define K_B K_LOG #define K_LN 11843 #define K_C K_LN #define K_SIN 8260 #define K_D K_SIN #define K_COS 4677 #define K_E K_COS #define K_TAN 8518 #define K_F K_TAN #define K_A_PLUS_B_on_C 8775 #define K_G K_A_PLUS_B_on_C #define K_X2 9032 #define K_H K_X2 #define K_BRACKET_LEFT 5961 #define K_I K_BRACKET_LEFT #define K_BRACKET_RIGHT 9290 #define K_J 9290 #define K_COMA 9547 #define K_K K_COMA #define K_RIGHT_ARROW 9804 #define K_L K_RIGHT_ARROW #define K_M 2103 #define K_N 2360 #define K_O 2617 #define K_DEL 21248 #define K_ACon 17664 #define K_P 1332 #define K_Q 1589 #define K_R 1846 #define K_MULTIPLY 8019 #define K_S K_MULTIPLY #define K_DIVIDE 5204 #define K_T K_DIVIDE #define K_U 561 #define K_V 818 #define K_W 1075 #define K_PLUS 11608 #define K_X K_PLUS #define K_MINUS 5465 #define K_Y K_MINUS #define K_Z 2864 #define K_MARK 13358 #define K_SPACE K_MARK #define K_X10X 20992 #define K_GUILL K_X10X #define K_MINUS_BRACKET 3072 #define K_EXE 7168 main() { debut_boucle: key=bioskey(0); switch(key) { case K_RIGHT: {printf("right");goto debut_boucle;} case K_UP: {printf("up");goto debut_boucle;} default: goto debut boucle; //si key ne prend aucune de ces valeurs on va à debut_boucle } }
Voilou j'espère que t'auras plus t'emmerdes!
@+
Hors ligne
c'est bcp mieux que la fonciton que j'utilisais !!! va falloir que je reface le gestion du clavier dans HighWay et je vai essayer de foutre des niveaux de gris si j'y arrive !!!
Hors ligne
Je n'utilise pas uniquement celle-ci... tu eux utiliser aussi les grayscales avec truc dans ce genre (ms bcp - rapide)
#include <stdio.h> int waitkey() {int v=getch(); if (v==0) v=getch(); return v;} main() { testkey: instuctions(); test: { key=0; key=waitkey(); if (key!=0) { if (key==80) instructions(); if (key==72) instructions(); if (key==28) instructions(); } } goto test;
Tu peux pour + de lisibilité mettre des #define ds ton header pr remplacer les valeurs de key par des variables 'lettrées' (UP, RIGHT, POINT, etc...)
Pour cela aide toi des sources de Duobab, qui sont très complètes, ou de celles de leadfiner.
Bonne prog!
Hors ligne
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRRRRRRRRRGGGGGGGGGGGLLLLLLLLLLL!!!!!! Non MDR c impossible pr le moment.
Déjà que j'ai du mal à réadapter le GMaxX (le nom du motuer de BomerMan) aux grayscale on me demande de faire un jeu à plusieurs. Je dis pas que c'est pas faisable, mais ce sera extrêmement lent. De plus c pas l'écran splitté qui me gêne, ce sont les touches multiples.
Ms quoique... ton idée pourrait être pas mal en fait! Je vais y réfléchir pour la suite, ms ce sera pas pour le 20 Juillet LoL!
Hors ligne
j'ai abandonné la conversion de mon jeu engrayscale (trop chiant à faire et plien de bug). et puis je suis degouté, ta fonction casiomax (key=bioskey(0) attend qu'un touche soit pressée donc le prog ne fait rien d'autre pdt ce temps donc je retourne à la fonction de whyp avec son key=peekb(0x41,0xAF) qui en quelque sorte laisse le prog tourné et des Key est egale à un touche precise alors il fait un truc en particulier.
Mais sa fonction fou un peu le bordel... tant pis
Hors ligne
Non!!! T'as pas compris!!! Il faut que tu mettes les instructions qui sont éxécutées pdt la boucle dans le default!!
key=bioskey(0); switch(key) { case ... case ... default: là tu mets tes instructions si aucune touche n'est pressée! }
Abandonne pas la conversion en grayscale, tu le regretteras pas!
Hors ligne
Et puis tu peut utiliser la methode des touches multiples qui va beaucoup plus vite et permet de supprimer une interuption qui fait gagner un peu plus de temps aussi
Hors ligne
faudrait faire un tuto pour debutant pour les touches multiples !
Hors ligne