ca vaut ce que ca vaut mais j'ai regardé deux meme prog sur PB et BB (rasters de unkof)
Resultat:
BB :
taille exe : 1264ko
temps cpu : entre 74 et 92 (souvent à 88 )
memoire utilisée : 5912ko
PB:
taille exe : 103ko
temps cpu : entre 81 et 96 (souvent 94)
memoire utilisée 2868ko
si qq'un a une routine afficher le framerate je suis preneur.
Info : impossible de s'incrire à ce forum sous Firefox, à chaque fois il me dit que le code de validation n'est pas bon (et non je n'ai pas des pb de vue )
kamelito a écrit :Info : impossible de s'incrire à ce forum sous Firefox, à chaque fois il me dit que le code de validation n'est pas bon (et non je n'ai pas des pb de vue )
J'utilise Firefox , et je n'ai pas de problème.
pour la CPU , tu peux mettre un delay(10) dans la boucle pour la libérer , c'est à toi de voir.
pour le framerate il y a des exemples un peu partout , notamment sur http://www.purearea.net
; English forum:
; Author: waffle
; Date: 29. May 2003
; Example for calculating the actual FrameRate
; This code does NOT run directly, it must be included in the main loop of your own program/game...
TimeDelay.l=100
MasterTimer.l=ElapsedMilliseconds()
;game loop
Repeat
FlipBuffers()
;and other code...
TimeDelay=ElapsedMilliseconds()-MasterTimer
MasterTimer=ElapsedMilliseconds()
FrameRate.f=1000/TimeDelay
Until quit
Temps = ElapsedMilliseconds()
repeat
;/Calcul le temps d'affichage d'une image
If ElapsedMilliseconds()-Temps>1000
Temps = ElapsedMilliseconds()
Delta=1000.0/FPS
FPS=0
Else
FPS+1
EndIf
Flipbuffer()
until ....
Moi non plus une fois le compte crée sous IE, c'est la création qui ne marche pas.
>pour la CPU , tu peux mettre un delay(10) dans la boucle pour la libérer , >c'est à toi de voir.
>pour le framerate il y a des exemples un peu partout , notamment sur
>http://www.purearea.net
Merci, c'est difficle à voir, mais avec un delay de 100 milliseconds j'ai 9 images/s donc 90 sans delay.
Je trouve pas logique que pour afficher du texte dans un screen il faille faire startdrawing()/stopdrawing().
Pourquoi est-ce nécessaire? Il me semble logique que si je fais un drawtext() ca sera pour le screen que je viens d'ouvrir...
Don't you think ? (ca rajoute de l'overhead pas nécessaire IMHO)
dans startdrawing() tu précises sur quelle surface tu écris ou dessine .
ça peut être l'écran , un sprite , une image, l'imprimante, une fenêtre , une texture .
Tu vois que c'est quand même utile de savoir ce que tu veux faire
Je comprends mieux maintenant merci, mais je trouve tjs pas ca logique de prime abord. Il aurait été dans ce cas plus logique de rajouter un paramètre pour spécifier l'output et par défaut prend l'écran ou la fenêtre ouverte
Je sais j'aime pas admettre que j'ai tort
comtois a écrit :dans startdrawing() tu précises sur quelle surface tu écris ou dessine .
ça peut être l'écran , un sprite , une image, l'imprimante, une fenêtre , une texture .
Tu vois que c'est quand même utile de savoir ce que tu veux faire
c'est parce que les fonctions de dessin sont relativement bas niveau... l'idée c'est de faire un startdrawing pour l'élément sur lequel tu veux dessiner, de faire tous tes tracés, et d'arrêter de dessiner... Parce que le start/stop bouffe quand même un peu de temps...
Dr. Dri a écrit :c'est parce que les fonctions de dessin sont relativement bas niveau... l'idée c'est de faire un startdrawing pour l'élément sur lequel tu veux dessiner, de faire tous tes tracés, et d'arrêter de dessiner... Parce que le start/stop bouffe quand même un peu de temps...
Dri
Justement c'est ce que je voulais dire en qq sorte ca bouffe du temps pas nécessaire selon moi. Enfin j'ai pas mesurer l'overhead mais ca fait qd meme deux sous routines en plus. Or si tu dis ok je veux afficher sur l'écran, tu récupéres le pointeur bien avant de tracer et pas besoin de stardrawing/stopdrawing dans ta boucle principale. Pour ce qui est de l'affichage dans une fenetre c'est pas génant mais si tu fais une démo ou un jeu t'y perds IHMO.
Startdrawing() initialise ... euh... plein de choses (je connais pas les détails, mais on accède pas à la mémoire vidéo aussi simplement qu'à la ram), et stopdrawing() rend la surface à nouveau disponible pour une utilisation normale.
Ça évite de faire tout ça à chaque fois qu'une commande de dessin est appelée.
En tout cas, c'est ce que j'ai compris.
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
filperj a écrit :Startdrawing() initialise ... euh... plein de choses (je connais pas les détails, mais on accède pas à la mémoire vidéo aussi simplement qu'à la ram), et stopdrawing() rend la surface à nouveau disponible pour une utilisation normale.
Ça évite de faire tout ça à chaque fois qu'une commande de dessin est appelée.
En tout cas, c'est ce que j'ai compris.
exactement, si en blitz tu n'as pas de telle fonction, c'est probablement parce qu'elles sont exécutées de facon transparente avec chaque fonction de "dessin"