le5ejumeau
Messages postés130Date d'inscriptionmardi 11 mars 2003StatutMembreDernière intervention 9 juillet 2009
-
31 août 2007 à 17:29
le5ejumeau
Messages postés130Date d'inscriptionmardi 11 mars 2003StatutMembreDernière intervention 9 juillet 2009
-
1 sept. 2007 à 16:40
Bonjour à tous,
J'ai codé un petit bout de code qui dessine à l'ecran un rectangle et le fait bouger. le probleme c'est que la mémoire aloué à mon application ne fait qu'augmenter et je n'arrive pas à resoudre le probleme. pouvez vous m'aider?
voila le petit bout de code :
pctJeux etant une picturebox
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 31 août 2007 à 23:44
Salut,
Ce n'est pas nécessairement une fuite, suivant la configuration de la machine utilisée pour les tests, le GC n'a pas forcément besoin de perdre du temps à libérer "instantanement" ce qui est libérable.
Sinon :
g.DrawRectangle(new Pen(Brushes.Red, 10), i_X, i_Y, 100, 10);
Quel est l'intérêt de recréer le même stylo à chaque fois ?
Autres questions :
- as tu vraiment besoin d'enchainer les dessins à cette fréquence là ?
- as tu vraiment besoin d'utiliser un contrôle PictureBox (censé afficher une image) comme surface de dessin ?
le5ejumeau
Messages postés130Date d'inscriptionmardi 11 mars 2003StatutMembreDernière intervention 9 juillet 2009 1 sept. 2007 à 11:13
Merci coq pour cette réponse. C'est vrai j'avais pas pensé à cà. le GC ne va pas libérer de la mémoire si cela n'est pas nécessaire.
effectivement, je n'ai pas besoin de recréer mon stylo à chaque fois.
Par contre pour l'anchainement des images, l'idée c'était de faire un casse-brique et de faire un processus avec une boucle qui s'occupe de faire bouger la balle.
Par contre pour l'utilisation d'un picture box je sais pas, c'etait pour moi le plus logique. C'est mieux de dessiner directement sur la form ?
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 1 sept. 2007 à 12:58
Ba si le picturebox n'affiche rien oui, consommer des ressources pour dessiner sur une surface vierge n'a pas réellement de sens.
Par contre tu utilises GDI+ pour faire un jeu, n'aurais tu pas intérêt à regarder du côté de DirectX / XNA ? (à moins que GDI+ soit requis)
Ma remarque sur le rafraichissement portait sur le fait que dès que tu as fini de faire le rendu tu recomences directement, alors qu'au final l'oeil humain ne pourra pas toutes les voir.
le5ejumeau
Messages postés130Date d'inscriptionmardi 11 mars 2003StatutMembreDernière intervention 9 juillet 2009 1 sept. 2007 à 16:40
D'accord je comprend, afficher plus de 50 images par secondes sa sert pas à grand chose. Je vais me pencher sur XNA je connais pas donc ca va pas me faire de mal d'apprendre à programmer pour la xbox. ...