GL-MPRI-2014 / Ocawai

OCAWAI
8 stars 3 forks source link

touche "map" #55

Closed dbusatto closed 9 years ago

dbusatto commented 9 years ago

Ce serais compliqué de faire qe la touche m dézoome suffisament pour afficher toute la map (au lieu de spammer 17 fois 'a') ? Je l'avais fait avec un set_camera et un magic number mais ça n'étais adapté qu'a mon écran, donc je l'ai viré au merge

VLanvin commented 9 years ago

Ca devrait pas être trop dur. Je vais voir ça.

TheoWinterhalter commented 9 years ago

Tu peux laisser la touche A enfoncée aussi au lieu de maltraiter ton clavier. ;) Sinon, ça devrait pouvoir se faire, mais le magic number n'est pas qu'un problème pour ça puisque ça dépend de la map.

Par contre pour l'instant, chez moi ça me fait du 8 frames par seconde quand je vois tout.

Bon ben j'ai pas à m'en charger. ^^

VLanvin commented 9 years ago

C'est fait, j'ai mis un facteur de 1.5 qui permet d'afficher toute la map même quand le curseur est pas au centre. Par contre, la map est peut-être trop petite du coup. Si c'est gênant, c'est rapide à enlever.

VLanvin commented 9 years ago

Par contre je suis pas sur qu'on puisse avoir mieux que ~20fps (voire moins) en zoom minimal. Il y a 10000 tiles à afficher, et on n'est pas partis sur une approche très optimisée pour le module Render.

dbusatto commented 9 years ago

merci! pour ce qui est des fps, pour moi ne touche afficher map si ça affiche une image fixe ça me va, donc c'est parfait comme ça :)

TheoWinterhalter commented 9 years ago

Ouais, on pourra envisager une minimap qui est plus simple, mais en effet, c'est beaucoup à supporter mais du moment qu'on peut facilement rezoomer pour avoir un meilleur framerate.

dbusatto commented 9 years ago

Le maintient de 'a' ou 'z' ne marche plus chez moi, je soupsonne le smooth zoom d'etre le coupable. La touche m marche très bien par contre. Ca concerne pas directement ce tiquet mais vu que ça a été cité...

TheoWinterhalter commented 9 years ago

Aie, ça marchait avant ? C'est ennuyeux, chez moi ça marche toujours. Il va falloir que tu fasses un git bissect pour essayer de retrouver le commit qui correspond à l'apparition du bug.

VLanvin commented 9 years ago

Ouep ça marche nickel chez moi aussi, c'est curieux. Et il n'y a pas de raison que le smooth zoom empêche ça, bien qu'il ne soit pas aussi bien codé que ce que j'aurais voulu.

dbusatto commented 9 years ago

après bisect, c'est ce que je pensais : [0e008f215b4079d8e85da59d3b8c65bf95657da3] C'est pas que ça dézoome pas en continu, en fait au début ça dézoome un peu mais en dézoomant mon nombre de fps tombe en chute libre jusqu'a ce que ça freeze (meme si le compteur reste a 35). Spammer 'a' est beaucoup plus fluide

dbusatto commented 9 years ago

et il y a autre chose, si j'appuie sur a pendant disons 5 secondes en continu, il dézoome un tout petit peu, freeze, et au moment ou je relache a il finit de dézoomer, comme si j'avais juste appuyé rapidement sur a

VLanvin commented 9 years ago

Le fait qu'il finisse de dézoomer après un moment de freeze est un comportement qui ne m'étonne pas trop si tes fps chutent. Je ne suis pas tout à fait sur, mais je pense que ça vient de la pile d'évènements qui devient trop grande et qui fait trop de boulot à gérer. Surtout qu'à chaque évènement je supprime l'interpolateur précédent et j'en recrée un. Ce qui serait possible, c'est de mettre un délai de telle façon qu'il n'est pas possible de se déplacer/zoomer tant que le dernier déplacement/zoom n'est pas terminé. Sachant qu'un déplacement se fait (normalement) en 0.1s, ça ne devrait pas être gênant.

VLanvin commented 9 years ago

C'est réglé. J'ai aussi ajouté un paramètre de vitesse de déplacement à la caméra, plutôt que d'avoir un magic number qui se balade (un de moins, il en reste un paquet à chasser). Du coup, j'ai doublé la vitesse de déplacement pour garder une certaine réactivité, j'espère que ça suffira. Tu me diras si ça va mieux.

VLanvin commented 9 years ago

J'ai complètement changé ma méthode d'interpolation du zoom/mouvement pour prendre en compte un facteur dt (temps depuis la dernière update) plutôt que le temps depuis la création. Le rendu est bien plus fluide, surtout à haut framerate. Comme je n'ai pas réussi à reproduire ton problème, il faudrait que tu me dises si ça marche pour toi. Merci :)

dbusatto commented 9 years ago

Ca a marché! c'est fluide maintenant, et je peut rester apuyé, merci !