Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » Questions (24 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Yagami Ecrit le: Dimanche 28 mai 2006 à 16:35 Déconnecté(e)    Voir le profil de Yagami Envoyer un email à Yagami Envoyer un message privé à Yagami  

Deja je voudrai savoir comment on fait pause d'une certaine duré pendant l'execution d'un programme? %)
    
./Post n°1   Marquer comme non lu.
Jfg Ecrit le: Dimanche 28 mai 2006 à 17:45 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


tu veux savoir comment on fait une pause d'une certaine durée ?

Si tu ne veux pas t'embetter, tu peux faire une boucle vide:
volatile int i;
for (i=0;i<1000;i++) {}

Si tu veux faire une pause d'une durée précise, il faut utiliser les intérruptions mais c'est beaucoup plus compliqué.
Kill Mario
    
./Post n°2   Marquer comme non lu.
240-185 Ecrit le: Lundi 29 mai 2006 à 09:51 Déconnecté(e)    Voir le profil de 240-185 Envoyer un email à 240-185 Envoyer un message privé à 240-185  

volatile ???

et pourquoi ne pas mettre un ; apres les parentheses du for #compris# ?
Tel un automate, le dinosaure noir s'avance vers le chef des Chomp et dit : "euh..."
    
./Post n°3   Marquer comme non lu.
Sasume Ecrit le: Lundi 29 mai 2006 à 09:58 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

1 - tigcc vire la boucle sinon ("optimisation" interdite par volatile)
2 - ça change quoi ? #trifus# Et au moins là c'est bien lisible, on sait qu'il y a une boucle vide.
-Edité le Lundi 29 mai 2006 à 09:59 par Sasume-
    
./Post n°4   Marquer comme non lu.
Yagami Ecrit le: Lundi 29 mai 2006 à 10:41 Déconnecté(e)    Voir le profil de Yagami Envoyer un email à Yagami Envoyer un message privé à Yagami  

[MODE NOOB ON]

Lec C et GCC c'est pareil?? #triso#


[MODE NOOB OFF]
#gni#
    
./Post n°5   Marquer comme non lu.
Yagami Ecrit le: Lundi 29 mai 2006 à 11:45 Déconnecté(e)    Voir le profil de Yagami Envoyer un email à Yagami Envoyer un message privé à Yagami  

c'est possible de creer des programme qui s'execute automatiquement sur la calto quanq on lalume??
    
./Post n°6   Marquer comme non lu.
Sasume Ecrit le: Lundi 29 mai 2006 à 12:06 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

./4 > C est un langage, GCC est un compilateur.
    
./Post n°7   Marquer comme non lu.
240-185 Ecrit le: Lundi 29 mai 2006 à 13:19 Déconnecté(e)    Voir le profil de 240-185 Envoyer un email à 240-185 Envoyer un message privé à 240-185  

Sasume> OK.




c'est possible de creer des programme qui s'execute automatiquement sur la calto quanq on lalume??

Non, ça est pas possible une fois (et toutes les autres fois d'ailleurs).
-Edité le Lundi 29 mai 2006 à 13:20 par 240-185-
Tel un automate, le dinosaure noir s'avance vers le chef des Chomp et dit : "euh..."
    
./Post n°8   Marquer comme non lu.
Nul Ecrit le: Lundi 29 mai 2006 à 13:44 Déconnecté(e)    Voir le profil de Nul Envoyer un email à Nul Envoyer un message privé à Nul  

Si c'est possible avec un TSR, si tu contrôles l'extinction de la machine.
Yagami, si tu veux plus d'infos sur les TSR: SP3 de TICT ou TSR de Greg Dietsche.
"De tous les animaux, l'homme a le plus de pente,
A se porter dedans l'excès."

Jean de la Fontaine
    
./Post n°9   Marquer comme non lu.
Yagami Ecrit le: Lundi 29 mai 2006 à 14:41 Déconnecté(e)    Voir le profil de Yagami Envoyer un email à Yagami Envoyer un message privé à Yagami  

Merci je vais voir ca... %)
    
./Post n°10   Marquer comme non lu.
Yagami Ecrit le: Lundi 29 mai 2006 à 15:55 Déconnecté(e)    Voir le profil de Yagami Envoyer un email à Yagami Envoyer un message privé à Yagami  

je comprend rien #confus# #gni#
    
./Post n°11   Marquer comme non lu.
Jfg Ecrit le: Lundi 29 mai 2006 à 18:13 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


C'est relativement compliqué, commence par quelque chose de plus simple.
Kill Mario
    
./Post n°12   Marquer comme non lu.
Yagami Ecrit le: Vendredi 2 juin 2006 à 22:02 Déconnecté(e)    Voir le profil de Yagami Envoyer un email à Yagami Envoyer un message privé à Yagami  

oué ok

sinon j'ai un probleme
maintenant que j'arrive a creer des sprite (enfin a peu pré ^^) et a les faire bouger aussi mais seulement quand je maintien une direction ya une courte pause avant que le sprit bouge

voila mon programme:

void _main(void)
{
  static unsigned char sprit[] = {0x10,0x10,0x38,0x7C,0x92,0x38,0x54,0x0};
  
  
  
  clrscr();
 short x=80,
       y=91,
       key;
 Sprite8(x,y,8,sprit,LCD_MEM,SPRT_XOR);
 
 do
 {
   key=ngetchx();
   if(key==340 )
    {Sprite8(x,y,8,sprit,LCD_MEM,SPRT_XOR);
    y=3+y;
      if(y>91)
          {
            y=91;
          }
    Sprite8(x,y,8,sprit,LCD_MEM,SPRT_XOR);}
    if(key==337)
       {Sprite8(x,y,8,sprit,LCD_MEM,SPRT_XOR);
        y=y-3;
        if(y<=0)
          {
            y=0;
          }
       Sprite8(x,y,8,sprit,LCD_MEM,SPRT_XOR);
       }
    if(key==344)
        {
          Sprite8(x,y,8,sprit,LCD_MEM,SPRT_XOR);
          x=x+3;
            if(x>151)
              {
                x=151;
              }
          Sprite8(x,y,8,sprit,LCD_MEM,SPRT_XOR);
        }
    if(key==338)
        {
          Sprite8(x,y,8,sprit,LCD_MEM,SPRT_XOR);
          x=x-3;
            if(x<0)
            {
              x=0;
            }
          Sprite8(x,y,8,sprit,LCD_MEM,SPRT_XOR);
        }
   
 }while(key != 264);
}

dsl j'ai pas pu "nomenclaturer" (^^) ca pas pris [edit: voila c'est fait ^^]
ya t'il un remede a cela?

PS: c'est lent par rapport a GFA BASIC :D
-Edité le Samedi 3 juin 2006 à 08:59 par Yagami-
-Edité le Samedi 3 juin 2006 à 09:08 par Yagami-
-Edité le Samedi 3 juin 2006 à 09:09 par Yagami-
    
./Post n°13   Marquer comme non lu.
Jfg Ecrit le: Vendredi 2 juin 2006 à 22:31 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


utilise "_keytest". Par exemple:

if (_keytest(RR_ENTER))
printf("la touche entrer est appuyée");
if (_keytest(RR_UP))
printf("la fleche du haut est appuyée");


(au passage, tu ne trouve pas qu'il y a un "un peu" de code qui se répète ?)


[edit: mais à partir du moment où tu utilise _keytest, il faut que tu rediriges les intérruptions. Pour savoir comment faire regarde d'autres topics]
-Edité le Vendredi 2 juin 2006 à 22:32 par Jfg-
Kill Mario
    
./Post n°14   Marquer comme non lu.
RHJPP Ecrit le: Vendredi 2 juin 2006 à 23:09 Déconnecté(e)    Voir le profil de RHJPP Envoyer un email à RHJPP Envoyer un message privé à RHJPP  


Yagami, pour conserver l'indentation, il faut utiliser les balises [code].
    
./Post n°15   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 2 juin 2006 à 23:26 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Et ça s'appelle "indenter", pas "nomenclaturer". :)
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°16   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 2 juin 2006 à 23:31 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Yagami :
ya t'il un remede a cela?

http://tigcc.ticalc.org/doc/kbd.html#kbhit
Tu as aussi OSdequeue (à utiliser avec kbd_queue) qui est plus rapide que ngetchx et kbhit (mais ne nécessite pas de détourner les interruptions - _keytest contourne la lecture des touches du système de AMS :().
Il y a aussi des fonctions pour régler la vitesse de répétition des touches curseur: http://tigcc.ticalc.org/doc/kbd.html#OSInitKeyInitDelay, http://tigcc.ticalc.org/doc/kbd.html#OSInitBetweenKeyDelay.
-Edité le Vendredi 2 juin 2006 à 23:31 par Kevin Kofler-
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°17   Marquer comme non lu.
Yagami Ecrit le: Samedi 3 juin 2006 à 07:45 Déconnecté(e)    Voir le profil de Yagami Envoyer un email à Yagami Envoyer un message privé à Yagami  

merci je v voir cela
(au passage, tu ne trouve pas qu'il y a un "un peu" de code qui se répète ?)

comment je fais alors?


Et ça s'appelle "indenter", pas "nomenclaturer".

merci pour le vocabulaire ( moi etre #triso# ) #gni#
....

voila j'ai utilisé les truc avec OSdequeue et tout maintenan kan je maintien un bouton ben mon sprit bouge plus #confus#
-Edité le Samedi 3 juin 2006 à 10:34 par Yagami-
    
./Post n°18   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 3 juin 2006 à 16:15 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Yagami :
(au passage, tu ne trouve pas qu'il y a un "un peu" de code qui se répète ?)

comment je fais alors?

#define KTEST(k,v,u,l,c) if (key==k) { \
  Sprite8(x,y,8,sprit,LCD_MEM,SPRT_XOR); \
  v+=u; \
  if (v c l) { \
    v=l; \
  } \
  Sprite8(x,y,8,sprit,LCD_MEM,SPRT_XOR);\
}

 do
  {
    key=ngetchx();
    KTEST(KEY_DOWN,y,3,91,>)
    KTEST(KEY_UP,y,-3,0,<)
    KTEST(KEY_RIGHT,x,3,151,>)
    KTEST(KEY_LEFT,x,-3,0,<)
  } while(key != KEY_ESC);
 }

Je me suis aussi permis de remplacer tes 340 etc. codés en dur par KEY_DOWN etc. pour que ce soit compatible TI-92+/V200. Cf. compat.h.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°19   Marquer comme non lu.
geogeo Ecrit le: Samedi 3 juin 2006 à 18:08 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Sans macro on peut faire ceci.

#define MON_PAS 3
while (key!=KEY_ESC) {
  if (key==KEY_DOWN || key==KEY_UP ||
      key==KEY_LEFT || key==KEY_RIGHT) 
  Sprite8(x,y,8,sprit,LCD_MEM,SPRT_XOR);
  
  if (key==KEY_DOWN) {
    y += MON_PAS;
    if (y>LCD_HEIGHT-1)
      y = LCD_HEIGHT-1;
  }
  else if (key==KEY_UP) {
    y -= MON_PAS;
    if (y<0)
      y = 0;
  }
  if (key==KEY_LEFT) {
    x -= MON_PAS:
     if (x<0)
      x = 0;
  }  
  else if (key==KEY_RIGHT) {
    x += MON_PAS; 
     if (x>LCD_WIDTH-1)
      x = LCD_WIDTH;
  }
}
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
  :: Index » Forum Ti68K » Programmation C » Questions (24 réponse(s))
Pages : 1/2     « [1] 2 » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 56.48ms avec 18 requetes