2013-03-19 5 views
0

Je veux faire quelque chose comme vraiment petit jeu. It is here.Toile vs HTML DOM?

utilisateur: honza Mot de passe: honza

Je ne sais pas se que je devrais utiliser la toile ou HTML DOM. Je veux seulement redessiner environ 20 images (10 dans les blocs bleus et 10 dans les blocs gris) quand je change une section, le zoome et bouge. Probablement il y aura une personne en mouvement. Quelle est ton opinion? Dois-je utiliser canvas ou HTML DOM?

+0

J'ai trouvé ce lien. Je pense que c'est ce dont tu as besoin. [Lire] (http://stackoverflow.com/a/13628035/2187426) – Lorin

+0

merci pour la réponse, il –

Répondre

0

Si vous pouvez faire toutes les animations nécessaires pour le jeu en utilisant des éléments DOM simples, alors je suppose que cela suffit, mais pour toute sorte d'animations complexes, je suggère d'utiliser la toile. Ce que vous avez décrit semble être parfaitement réalisable avec DOM, en supposant que votre personne en mouvement n'inclura pas d'animations non continues. Vous pouvez créer des animations relativement complexes sans toile, c'est juste beaucoup plus de travail que de faire la même chose avec du canvas.

Si vous faites cela pour apprendre de nouvelles choses, choisissez la toile, car elle vous servira mieux à l'avenir.

+0

des animations distille ses secrets complexes ... je vous remercie de votre réponse –

+0

Je crois sweetamylase est une meilleure réponse, car il contient des informations supplémentaires sur les compromis de performance. Le lien qu'il a posté est utile même si vous avez choisi de faire votre jeu avec l'approche DOM. – cernunnos

1

Manipulations (choses en mouvement, animation, couleurs, etc) changer dans le DOM provoque le navigateur pour repeindre et refusion les éléments, ce processus est consommateur de ressources. Particulièrement dans les cas où vous avez beaucoup de mises à jour visuelles constantes qui vont constamment déclencher le traitement du navigateur, ce qui se traduit par une expérience lente et décalée pour les utilisateurs de systèmes bas de gamme.

Toile, d'autre part aura pas autant que l'élément <canvas> serait la même taille, donc pas reflow et des animations, etc ne fera que provoquer repaint dans le <canvas>. Voir ceci pour une explication plus complète: http://www.phpied.com/rendering-repaint-reflowrelayout-restyle/

+0

il n'y aura pas beaucoup de mises à jour visuelles constantes - je ne mettrai à jour 20 images quand je change de section, déplacer la personne lorsque l'utilisateur appuyez sur les touches fléchées et je ferai zoom du contenu ... Je suis toujours hésitant ... –