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 » Balle rebondissante (45 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Invité Ecrit le: Vendredi 17 décembre 2004 à 19:48 Déconnecté(e)    
 
Voilà un petit programme de test que j'ai fait hier (en moins de 5 minutes, quand même...) :
http://akt.corporation.free.fr/files/src/ball/ball.c
Il suffit de le compiler avec TIGCC. Il fait rebondir un point sur les bords de l'écran (240x128 ).
Je voulais juste savoir pourquoi est-ce que quand je ne mets pas
char buffer[10];
sprintf (buffer, "%d %d", x, y);
DrawStr (150, 10, buffer, A_REVERSE);
,
le point noircit l'écran en quelques secondes alors que quand je le mets j'ai tout le temps de voir le point se déplacer. Comment optimiser ça ? Après j'aurais besoin de beaucoup de rapidité dans mon programme, et déjà là c'est lent...

EDIT : Une capture qui montre juste ce que ça fait :
http://akt.corporation.free.fr/files/src/ball/screen.bmp
-Edité le Vendredi 17 décembre 2004 à 19:54 par AS-
    
./Post n°1   Marquer comme non lu.
limmt Ecrit le: Vendredi 17 décembre 2004 à 19:53 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


utilise pas drawstr c'est ca qui ralentit énormément ton prog :)
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°2   Marquer comme non lu.
Invité Ecrit le: Vendredi 17 décembre 2004 à 19:54 Déconnecté(e)    
 
Je pensais me faire une fonction pour ça, mais ça serait encore plus long !
Et je ne connais pas les interruptions de l'assembleur...
    
./Post n°3   Marquer comme non lu.
limmt Ecrit le: Vendredi 17 décembre 2004 à 19:56 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


les interruptions de l'assembleur???
tu veut dire les interruptions du processeur?
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°4   Marquer comme non lu.
Invité Ecrit le: Vendredi 17 décembre 2004 à 19:58 Déconnecté(e)    
 
Oui, pour afficher du texte beaucoup plus vite.
> tu veut dire les interruptions du processeur?
C'est de l'assembleur non ? Alors moi je dis interruptions de l'assembleur, parce que certains boulets m'ont déjà demandé si je parlais de plantages...
    
./Post n°5   Marquer comme non lu.
limmt Ecrit le: Vendredi 17 décembre 2004 à 20:15 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


les interruptions existent en C aussi bien qu'en assembleur. C'est des fonctions exécutées automatiquement en fonction de certains évémements. Timer, appui sur la touche ON, ou déclenchement logiciel (TRAP)...
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°6   Marquer comme non lu.
Sasume Ecrit le: Vendredi 17 décembre 2004 à 20:28 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

C'est surtout le sprintf qui ralentit.
Couplé à DrawStr, c'est imparable :)

Il y a d'autres méthodes.
    
./Post n°7   Marquer comme non lu.
limmt Ecrit le: Vendredi 17 décembre 2004 à 20:32 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


comment veut tu changer sprintf??
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°8   Marquer comme non lu.
Jfg Ecrit le: Vendredi 17 décembre 2004 à 22:18 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Déja tu peux commencer par afficher ce que tu veux une fois sur deux.
-Edité le Vendredi 17 décembre 2004 à 22:27 par jfg-
Kill Mario
    
./Post n°9   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 17 décembre 2004 à 23:21 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  


Oui, la manière la plus simple d'optimiser ça est de n'afficher le compteur qu'une fois tous les 20 cycles (ou 100, 1000, bref ce qu'il faut pour que ça aille vite).
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°10   Marquer comme non lu.
Invité Ecrit le: Samedi 18 décembre 2004 à 07:25 Déconnecté(e)    
 
#confus#
Comment fait-on pour exécuter une instruction une fois tous les 20 cycles ?
    
./Post n°11   Marquer comme non lu.
limmt Ecrit le: Samedi 18 décembre 2004 à 07:52 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


if() avec une variable a incrémenter :) ou bien tu utilise tout simplement une interruption ;)
:)
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°12   Marquer comme non lu.
Jfg Ecrit le: Samedi 18 décembre 2004 à 09:51 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Tu peux te passer de compteur en utilisant ta variable 'x' si elle varie toujours de 1 en 1.
Kill Mario
    
./Post n°13   Marquer comme non lu.
limmt Ecrit le: Samedi 18 décembre 2004 à 11:44 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


euh alors tu pourra uniquement l'afficher tous les 16 32 64 128... cycles
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°14   Marquer comme non lu.
Jfg Ecrit le: Samedi 18 décembre 2004 à 11:58 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Non. Pour 13 par exemple:

if (x%13==0)
printf(...
Kill Mario
    
./Post n°15   Marquer comme non lu.
limmt Ecrit le: Samedi 18 décembre 2004 à 12:23 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


x%13 > c'est pas un peu lent ca?
vaudrit pas mieux faire: ((x>>4)<<4-x)==0 pour 16?
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°16   Marquer comme non lu.
bobti89 Ecrit le: Samedi 18 décembre 2004 à 13:35 Déconnecté(e)    Voir le profil de bobti89 Envoyer un email à bobti89 Visiter le site WEB de bobti89 Envoyer un message privé à bobti89  

Je crois bien que tigcc optimise les %
bob ou bob, vous ne voyez pas la différence. Pourtant il y en a une fondamentale, l'un est écrit à l'endroit, l'autre à l'envers.

Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici
    
./Post n°17   Marquer comme non lu.
Jfg Ecrit le: Samedi 18 décembre 2004 à 14:25 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Oui c'est lent :). J'avais oublié qu'on était dans un topic qui parlait des optimisations vitesses.
C'était juste pour montrer qu'on n'est pas obligé d'afficher les compteurs tout les 2^n frames
Kill Mario
    
./Post n°18   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 18 décembre 2004 à 16:55 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  


limmt :
x%13 > c'est pas un peu lent ca?
vaudrit pas mieux faire: ((x>>4)<<4-x)==0 pour 16?

x&15 plutôt...
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.
limmt Ecrit le: Samedi 18 décembre 2004 à 17:06 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


a merde oué c'est vrai c'est encore plus rapide, j'avais pas pensé à ca :)
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
  :: Index » Forum Ti68K » Programmation C » Balle rebondissante (45 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 49.94ms avec 22 requetes