derniere version
Bon, ben, merci Willpower de t'être intéressé à ce topic.
Merci à tous.
Je suis arrivé à optimiser assez bien pour l'instant donc je pense que le sujet est résolu.
Info à retenir : firefox n'aime pas du tout gérer un gros DOM... mais pas du tout. et je vais me pencher sur le lancement de tache en parallèle pour toute la gestion dite mathématique (et plus graphique) de la cité.
Encore merci à tous.
Une petite question encore:
Pour mes animations d'images, vaut-il mieux que je les gères par des gif (qui changent en fonction de l'animation que je veux) ou que je gère tout avec des png changer à la volée par setinterval?
J'aurais tendance à penser que le gif est mieux question ressources utilisés et temps de traitement non fait...
Je n'ai jamais étudié la question, mais je suis formellement convaincu que le gif doit être bien mieux pour des animations répétées.
slt Willpower,
c'est bien ce que je pensais...
Le seul hic c'est que si je veux gérer un mode pause, à moins de changer mes gif par des png, les animations continueront...
Mais c'est pas si grave. Merci de ton avis.
Je up le message car j'ai voulu passer en html5 avec canvas.
Je travaille actuellement au rendu du moteur de terrain et je suis de plus en plus décu par javascript.
nouveau moteur
Qu'est-ce que cela va être qu'en je vais appliquer mes textures...
Pourtant, je fais tous (pour l'instant avec des lineto) mais il est déjà (au vu) des performances impossible d'essayer de rafraichir l'image en temps réel.
Il y a t-il un moyen d'accéler l'accés et le traitement d'un canvas? ou une astuce...
Oui laisser tombeer canva qui n'est pas fait pour faire du rendu 2D pas plus que word/vba
mais utiliser webGL.
et tout cela n'a rien a voir avec le langage
si tu utilise C et le canevas 2D de windows pour faire un moteur de rendu 3D
au mieux en une semaine tu affiche un paysage simple.
il ne faut pas confondre le langage et la techno que tu utilise pour dessiner.
ce n'est pas par hazard qu'on en est venu à faire des GPU et ce n'est pas par hazard que M$ à pondu DirectX pour l'utiliser ni que Linux et consors ont pondu OpenGL. le processeur généralise de ton PC ne fera jamais de rendu 3D en temps réel et ceux même avec le langage le plus performant.
A+JYT
pour les animations il y a aussi la methode des sprites qui permet dans un setInterval de modifier non pas l'image, mais sa partie visible...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
houla, pas mal !
par contre je ne pourrais plus t'aider, ça sort totalement du domaine de mes compétences.![]()
sekaijin : Je me souviens à l'époque avoir fait un moteur de jeu 3d iso en delphi (pascal), qui était le même principe que celui que j'ai montré. Il dessiné sur une form et tout était calculé par mes soins sans passer par des biblio tierce ou processeur graphique, j'arrivais à rafraichir la map sans scintillement, le tout en recalculant tout et reaffiché chaque image en temps réel...
Heu tu veux dire 3d, nn? parce que sinon je comprend plus rien. (je croyais que justement canvas servait à cela...Oui laisser tombeer canva qui n'est pas fait pour faire du rendu 2D pas plus que word/vba
Concernant Webgl, je ne trouve pas de tuto digne de ce nom (et suis nul en Anglais, oui je ais faudrait que je mis mette).
SpaceFrog
Tu peux développer un peu plus? Un sprite n'est qu'une image non?pour les animations il y a aussi la methode des sprites qui permet dans un setInterval de modifier non pas l'image, mais sa partie visible...
Donc si je remplace sprite par image dans ta phrase, je comprend pas ce que tu appelle la méthode des sprites...
Mais ça m'intéresse.
De plus, je n'ai pas besoin d'actualiser la map en temps réel, elle sera crée et affichée en début de parti et ces tout.
J'avoue par contre avoir du mal à saisir les notions d'effacement d'une partie du dessin, de "zindex" des image drawer dedans et tout, bref ce qui permet d'optimiser tout cela.
Mais je continu mo apprentissage (mon but étant de rentrer dans la nouvel ère du web).
Si vous connaissez des bon cours webGL? J'ai firefox 12, il est pas compatible...
Willpower, c'est pas grave, tu m'as déjà bien aider, merci d'être venu jeter un oeil...
Chez moi ta map fonctionne bien.
La mer se dessine instantanément sous chrome et firefox et s'efface après un délai d'environ : 1 sec sous firefox et 0.3 sec sous chrome.
La mer étant une surface en théorie "plate", tu peux placer une simple image .png par dessus ton canevas pour cacher la zone où doit se trouver celle-ci, par une zone bleue et le reste de ton image transparente. (note, ton image, bien qu'en "position absolute", devra se trouver DANS les balises de ta map pour laisser les évènements se propager correctement vers cette dernière.)
Dans cette optique, les sprites qui n'ont rien à voir avec le canvas peuvent devenir utile pour limiter le nombre d'images chargées.
Enfin, le z-index sert à définir a quel niveau de superposition se trouve l'élément, autrement dis, celui qui aura le z-index le plus élevé, sera au premier plan et cachera ceux derrière. Note que le z-index ne fonctionne que pour les élément du DOM sortis du flux d'affichage logique, typiquement ceux qui ont la propriété de style : position:absolute;![]()
oui un sprite est une image ...
le principe du sprite est basé sur le dessin animé ...
voici un exemple
http://www.developpez.net/forums/d90...-dessin-anime/
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag![]()
Venez sur le Chat de Développez !
Oui sauf que la map n'est pas la même à chaque fois, beaucoup de random()tu peux placer une simple image .png par dessus ton canevas pour cacher la zone où doit se trouver celle-ci,. Donc la mer est calculé sur la map... Mais surement qu'à terme, la map sera fixe (pas de random, là c'est plus un générateur de terrain), donc oui j'appliquerai ta méthode.
Concernant les zindex, oui je sais ce que sait (tu pense bien qu'avec la version précédente du moteur et les image()), je gérais déjà toute la hiérarchie d'affichage par zindex mais là où je bloque, c'est la notion de zindex avec des images drawer dans canvas, sans composant image().
Mais j'ai vite survolé cette partie, je vais mis plonger.
A put****, je comprend plein de truc maintenant. Je croyais que la propagation d'événement se faisait sur les objets dont l'affichage était dessus-dessous et non l'implémentation dedans/dehors...(note, ton image, bien qu'en "position absolute", devra se trouver DANS les balises de ta map pour laisser les évènements se propager correctement vers cette dernière.)
SpaceFrog, je vais voir ton lien, merci
Partager