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 » Aide pour commencer (49 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Benjy Ecrit le: Mardi 15 juin 2004 à 18:56 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


voila je veut faire rebondier une balle contre les bord de l'ecran mai j'arrive pas!!! pouvez vous m'aider merci
Le langage C y'a pas mieux!!!
    
./Post n°1   Marquer comme non lu.
Sasume Ecrit le: Mardi 15 juin 2004 à 19:03 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Il suffit de changer le signe d'une de ses composante vitesse.
    
./Post n°2   Marquer comme non lu.
Benjy Ecrit le: Mardi 15 juin 2004 à 19:08 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


oui mai ca ca mon prob enfaite je voit pas commen faire un boucle pour ca

unsigned char sprite1[] =
{0x3C,0x7E,0xFF,0xFF,0xFF,0xFF,0x7E,0x3C};

inline void draw(int x, int y) {
  Sprite8(x, y, SPRITE_HEIGHT, sprite1, LCD_MEM, SPRT_XOR);
}
void _main(void)
{
  int x=78,y=85,key;
  clrscr();
  draw(x,y);
  printf_xy (0, 0, "%d", x);
  printf_xy (20, 0, "%d", y);
  while ((key = ngetchx()) != KEY_ESC) {
    clrscr();
    
    if(x==15 && y!=1)
    {
      x+=7;
    }
    else if(x==148 && y!=1)
    {
      x-=7;
    }
    else if(y==1 && x!=15)
    {
      y+=7;
    }
    y-=7;
    x+=7;
    printf_xy (0, 0, "%d", x);
    printf_xy (20, 0, "%d", y);
    draw(x,y);
  }
}

voila mon debut de code mai ca marche pas :(:(:(:(
Le langage C y'a pas mieux!!!
    
./Post n°3   Marquer comme non lu.
Sasume Ecrit le: Mardi 15 juin 2004 à 19:41 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Essaie de résonner avec un vecteur porteur de la direction de la balle.
Lorsque la balle rencontre un mur (pour savoir ça, tu testes ses coordonnées), tu inverses une des composantes du vecteur.
    
./Post n°4   Marquer comme non lu.
kaz00 Ecrit le: Mardi 15 juin 2004 à 19:45 Déconnecté(e)    Voir le profil de kaz00 Envoyer un email à kaz00 Visiter le site WEB de kaz00 Envoyer un message privé à kaz00  

au bout d'un moment, la balle fermera une boucle, c'est a dire quelle prendra plusieurs fois le meme tracé?
Mon site perso : http://progti89.free.fr

Je t'aime mon coeur!
    
./Post n°5   Marquer comme non lu.
geogeo Ecrit le: Mardi 15 juin 2004 à 20:28 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Cf tuto PolySnd sur mon site web:
http://perso.wanadoo.fr/tisofts/pages/polysnd/psnd_guide4.htm

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
    
./Post n°6   Marquer comme non lu.
Benjy Ecrit le: Mardi 15 juin 2004 à 21:12 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


ok merci j'avai reussi et sinon ouai cmment genere un nombre aleatoire qui soir soit 1 soit
-1 ????
Le langage C y'a pas mieux!!!
    
./Post n°7   Marquer comme non lu.
geogeo Ecrit le: Mardi 15 juin 2004 à 21:26 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


x=random (2);
if (x==0) x=-1;
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
    
./Post n°8   Marquer comme non lu.
Benjy Ecrit le: Mardi 15 juin 2004 à 21:31 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


merci :):)
Le langage C y'a pas mieux!!!
    
./Post n°9   Marquer comme non lu.
Benjy Ecrit le: Mardi 15 juin 2004 à 21:52 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


a si un dernier truc je voudrai que quand la balle touche un mur ca affiche un otre sprite pour ecraser la balle coimment je peut faire car ce que j'ai essayer ne marche pas :(:(:(:(
Le langage C y'a pas mieux!!!
    
./Post n°10   Marquer comme non lu.
geogeo Ecrit le: Mercredi 16 juin 2004 à 00:43 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Gestion des collisions, détection du mur grâce au coordonnées puis changement de sprite, dans le tuto de PolySnd, lors d'un rebond sur un mur on emet un son, il suffit juste de remplacer le son pas un sprite. :)
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
    
./Post n°11   Marquer comme non lu.
Benjy Ecrit le: Mercredi 16 juin 2004 à 07:32 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


ben c'est ce que j'avai fait mai on ne voit pas la diference!!!!!
#include <tigcclib.h>

unsigned char sprite1[] =
{0x3C,0x7E,0xFF,0xFF,0xFF,0xFF,0x7E,0x3C};

unsigned char sprite[] =
{0x20,0x70,0xF8,0xF8,0xF8,0xF8,0x70,0x20};

void draw(int x, int y) {
  Sprite8(x, y, 8, sprite1, LCD_MEM, SPRT_XOR);
}
void erase(int x, int y) {
  Sprite8(x, y, 8, sprite1, LCD_MEM, SPRT_OR);
}
short ran(void)
{
  short r=random (2);
  if (r==0) r=-1;
  return r;
}
void _main(void)
{
  int x=(LCD_WIDTH-1)/2,y=(LCD_HEIGHT-1)/2,F=0;
  short var_hor = ran(), var_ver = ran(),i=0,t=10000;
  INT_HANDLER Intrs [AUTO_INT_COUNT];
  for (F = FIRST_AUTO_INT; F <= LAST_AUTO_INT; F++)
  {
    Intrs [F - FIRST_AUTO_INT] = GetIntVec (AUTO_INT (F));
    SetIntVec (AUTO_INT (F), DUMMY_HANDLER);
  }
  ClrScr ();
  erase(x ,y);
  while (!_keytest (RR_ESC))
  {
    draw(x, y);
    
    x+=var_hor ; y+=var_ver;

    if(x+8 > LCD_WIDTH-1)
    var_hor = -1;
    if(y+8 > LCD_HEIGHT-1)
    var_ver = -1;
    if(x < 0)
    var_hor = 1;
    if(y < 0)
    {
      var_ver = 1;
      Sprite8(x, y, 8, sprite, LCD_MEM, SPRT_XOR);
    }

    if(_keytest (RR_UP))
    t-=100;
    if(_keytest (RR_DOWN))
    t+=100;

    erase(x ,y);
    for (i=0; i<t; i++);
  }
for (F = FIRST_AUTO_INT; F <= LAST_AUTO_INT; F++)
SetIntVec (AUTO_INT (F), Intrs [F - FIRST_AUTO_INT]);
}
Le langage C y'a pas mieux!!!
    
./Post n°12   Marquer comme non lu.
geogeo Ecrit le: Mercredi 16 juin 2004 à 11:59 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  



if(x+8 > LCD_WIDTH-1)
  var_hor = -1;
if(y+8 > LCD_HEIGHT-1)
  var_ver = -1;
if(x < 0)
  var_hor = 1;
if(y < 0)
{
  var_ver = 1;
  Sprite8(x, y, 8, sprite, LCD_MEM, SPRT_XOR);
}


La gestion des collisions se trouve ici et je ne comprend pas un truc, pourquoi effaces tu seulement la balle lorsque la coordonnées y est inféreiur à 0? Surtout que tu risque de planter la machine car on ne doit surtout pas dépasser l'écran.
-Edité le Mercredi 16 juin 2004 à 12:04 par geogeo-
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
    
./Post n°13   Marquer comme non lu.
Benjy Ecrit le: Mercredi 16 juin 2004 à 12:13 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


quoi??? j'efface la balle tou le temps c'est ca qui efface la balle erase(x ,y);
mai le code pour change le sprite en cas de collision avec un mur ne marche pas :(:( enfin on ne voit pas le changement pk????
Le langage C y'a pas mieux!!!
    
./Post n°14   Marquer comme non lu.
geogeo Ecrit le: Mercredi 16 juin 2004 à 12:22 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Bah trop rapide faut faire une boucle d'attente.
-Edité le Mercredi 16 juin 2004 à 12:27 par geogeo-
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
    
./Post n°15   Marquer comme non lu.
hubert_b Ecrit le: Mercredi 16 juin 2004 à 12:25 Déconnecté(e)    Voir le profil de hubert_b Envoyer un email à hubert_b Envoyer un message privé à hubert_b  

Tu devrais utiliser un pointeur sur ton sprite que tu changerais, la gestion serait alors beaucoup plus simple.
Et puis, tu clippes mal (comme disais geogeo)...
Hubert_B aKa nEUrOO
    
./Post n°16   Marquer comme non lu.
Benjy Ecrit le: Mercredi 16 juin 2004 à 12:30 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


je clippe?????? c'est a dire??
Le langage C y'a pas mieux!!!
    
./Post n°17   Marquer comme non lu.
hubert_b Ecrit le: Mercredi 16 juin 2004 à 12:33 Déconnecté(e)    Voir le profil de hubert_b Envoyer un email à hubert_b Envoyer un message privé à hubert_b  

1) limiter à la taille de l'écran, pour ne pas dépasser du buffer.
2) Pour la boucle d'attente, fait attention, ne fait pas une boucle vide, il se peut que gcc la fasse disparaître :(

Hubert_B aKa nEUrOO
    
./Post n°18   Marquer comme non lu.
Benjy Ecrit le: Mercredi 16 juin 2004 à 12:36 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


pff ca marche pas meme avec un boucle for je comprend pas ca m'enerve
et sinon j'ai limiter a la taille de l'ecran dans le code la non????
-Edité le Mercredi 16 juin 2004 à 12:36 par cerede2000-
Le langage C y'a pas mieux!!!
    
./Post n°19   Marquer comme non lu.
hubert_b Ecrit le: Mercredi 16 juin 2004 à 12:38 Déconnecté(e)    Voir le profil de hubert_b Envoyer un email à hubert_b Envoyer un message privé à hubert_b  

Poste ton code s'il te plait :)
Hubert_B aKa nEUrOO
    
  :: Index » Forum Ti68K » Programmation C » Aide pour commencer (49 réponse(s))
Pages : 1/3     « [1] 2 3 » »|

.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 71.37ms avec 18 requetes