19Fermer21
PolluxLe 02/07/2008 à 15:43
Lionel Debroux (./19) :
Ca, c'est moins clair. Il n'est pas absolument interdit de faire des animations quand il y a save&restore: quand il y a eu une animation (il _suffit_ de programmer le moteur de jeu pour - j'ai pas écrit que c'était _toujours_ facile, cf. le premier point ^^), il ne faut pas restaurer les anciens sprites et il faut réinitialiser les sprites sauvegardés.

Mais du coup à cause de ces sauvegardes/restaurations c'est plus lent quand il faut mettre à jour les animations : tu échanges de la performance dans le meilleur cas au détriment de la performance dans le pire des cas, c'est une mauvaise idée pour la fluidité.
si on utilise une bonne lib si oui

Ca, c'est faux wink
J'ai créé demo22 d'ExtGraph SVN exprès pour être un contre-exemple flagrant à cette quote. demo22 met en perspective:
* un bourrinage de redessin intégral (utilisant le tilemap engine);
* un bourrinage de save&restore tant que le fond ne bouge pas (il bouge tous les deux ticks d'AI5, donc à un peu moins de 10 Hz avec les réglages par défaut).
Je veux dire par "bourrinage" qu'il n'y a aucune synchro avec l'écran (écriture directe dans les planes), et qu'il n'y a pas non plus un gaspillage de CPU pour simuler le moteur du jeu.

Evidemment, le mode intelligent, comprenant save&restore, fait plus de frames en 15s. Même si comme je viens de l'écrire, dans un programme réel, l'écart serait moindre.
Si j'avais utilisé des sprites préshiftés pour le mode bête, le mode intelligent serait quand même plus rapide. Ce n'est pourtant pas que les fonctions d'ExtGraph, que ce soit le tilemap engine ou les sprites préshiftés, sont lentes wink

J'ai pas essayé, mais je crois comprendre que tu cherches juste à optimiser pour le cas moyen : si oui c'est un peu bête, à moins d'avoir un jeu extrêmement gourmand en AI ça n'avance à rien d'afficher 3x plus rapidement quand il n'y a pas grand chose qui change. Il faut concentrer ses efforts sur le pire cas, c'est lui qui va déterminer si c'est fluide ou saccadé ; si la lib est performante et que les graphismes sont pas hyper compliqués, ça donnera aussi une solution 100% satisfaisante pour le meilleur cas, donc s'embêter avec des restaurations partielles ça ne vaut pas le coup.