Pourquoi afficher un sprite en-dehors de la View réduit-il les performances ? En fait, je me demande s'il est possible d'afficher ainsi en dehors d'une View, et donc d'une fenêtre, sans que rien ne "déborde" au final. J'imagine que s'il y avait effectivement un affichage qui dépassait ainsi, ça serait visible, et que comme ce n'est pas le cas, rien n'est affiché. Donc pourquoi faut-il que l'utilisateur vérifie que le Drawable est bien dans la View avant de l'afficher pour gagner des performances ? Un tel travail n' est-il pas déjà fait dans Draw() ? Sinon, devrait-il l'être ?Très simplement : les choses les plus rapides à afficher sont celles que tu n'affiches pas. Et plus tu les élimines tôt, plus tu gagnes en performances.
Ne serait-il pas intéressant de faire du dirty rectangle drawing comme la SDL ?C'est un concept d'un autre temps, et ce ne serait pas vraiment applicable à la façon dont les choses fonctionnent ;)
Si la partie logique de ton jeu est bien conçue tu devrais pouvoir faire ce test très facilement.C'est très simple avec un tableau à deux dimensions de Sprite dont les indices déterminent la position. Ca l'est un peu moins quand on a un niveau dont les indices n'indiquent en rien cette position. Et c'est encore plus compliqué quand on a des objets autres que de type Sprite ! C'est pour ça que je rêve d'un attribut Rect chez les Transformable.
J'ai encore quelques questions pour le 1. Dans ce cas, comment ça se passe, techniquement, quand on dessine hors de la fenêtre sans que ça ne s'affiche au final ?OpenGL coupe tout ce qui dépasse, tout simplement. Mais de toute façon pour dessiner en dehors de la fenêtre, faudrait être très fort ; l'OS ne nous laisse pas faire n'importe quoi.
C'est très simple avec un tableau à deux dimensions de Sprite dont les indices déterminent la position. Ca l'est un peu moins quand on a un niveau dont les indices n'indiquent en rien cette position. Et c'est encore plus compliqué quand on a des objets autres que de type Sprite ! C'est pour ça que je rêve d'un attribut Rect chez les Transformable.Dans une application complexe, il faudra très certainement une structure de partitionnement (quad tree, kd-tree, grille, ...) pour gérer efficacement l'affichage et les collisions.