Problème de transparence picturebox et grosse lenteur !

Signaler
Messages postés
25
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
27 avril 2008
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Bonjour à tous, je suis toujours sur le développement d'un petit jeu point n' click, j'ai fait des tests cet après-midi et j'ai constaté un problème très ennuyeux :

Je comptais mettre une image de fond pour le formulaire qui me servirait de décor pour les personnages, mon personnage principal est un gif avec fond transparent qui peut bouger quand on clique sur le formulaire pour le déplacer là ou a eu lieu le clic. Avec cette méthode, la transparence du gif fonctionne mais le personnage se déplace extrêmement lentement, je pense que le formulaire est très sollicité et se redessine à chaque pixel !

J'ai donc essayé en utilisant une picturebox pour mon décor à laquelle j'ai dit qu'elle apparaisse en Arrière-plan et qu'elle s'ajuste sur toute la taille du formulaire. Avec cette manière, je n'ai aucun problème de lenteur, le personnage se déplace très bien sauf que l'effet de transparence du gif n'opère plus, j'ai droit à un vieux rectangle gris en fond du gif et pas moyen de l'enlever en mettant background "Web > Transparent"

Aidez moi s'il vous plait :o !!

10 réponses

Messages postés
339
Date d'inscription
dimanche 26 janvier 2003
Statut
Membre
Dernière intervention
25 mars 2009
4
oulàlà les forms ne sont pas faites pour du jeu!

Et si tu apprenais DirectX plutôt?
Messages postés
25
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
27 avril 2008

Ceci est un projet pour mon BTS, mon épreuve orale sur ce projet est mi-juin, je ne sais pas si je peux me permettre du consacrer du temps à l'apprentissage de DirectX, est-ce difficile ? par où commencer ? Je pense être assez juste en temps :p

Sinon j'ai justement choisi un point n' click car je pense que c'est le type de jeu le plus facilement reproductible en WinForms !
Messages postés
339
Date d'inscription
dimanche 26 janvier 2003
Statut
Membre
Dernière intervention
25 mars 2009
4
Quand je vois comment la transparence rame déjà sur une image statique, pas étonnant que ton gif lutte.

Ce n'est pas trop tard pour DirectX mais va falloir te retrousser les manches et trouver un vieux SDK DirectX 9 si tu veux programmer en C#: il y a de cela qq mois Microsoft a abandonné le projet Managed DirectX.
Les tutorials de Drunken Hyena font référence en sus de la doc officielle Microsoft (http://www.drunkenhyena.com/cgi-bin/directx.pl), mais comme là c'est vraiment trop juste en temps, tu peux utiliser un moteur de jeu tout fait.

Et là je ne peux que te conseiller http://www.garagegames.com/products/torque/tgb/, le moteur 2D de GarageGames. Avec ça tu vas monter ton projet dans le faible temps imparti sans probleme.
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009

Regarde peut être du coté Microsoft XNA Game, j'ai jamias regardé mais c'est le language utilisé pour faire des jeux pour le xbox live arcade si je ne dis pas de bêtises. C vaut peut être le coup de jeter un coup d'oeil.
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009

je viens de trouver un petit lien avec des explication en video http://www.microsoft.com/france/vision/WebcastMsdn.aspx?eID=c5de77c9-d078-4536-9f65-122c4f94448a
Messages postés
25
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
27 avril 2008

Ce moteur 2D a l'air très sympa mais il est très payant aussi apparament xD, de plus, cela semble beaucoup assister le créateur, je ne sais pas si cela laisse beaucoup de place au code, chose pour laquelle je serais évalué !
Messages postés
25
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
27 avril 2008

Merci pour les liens tout de même ;)
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
36
Salut, dans un jeu on invalide ou redessine, uniquement les pixels qui ont changés entre 2 animations.
Messages postés
25
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
27 avril 2008

Salut,

Merci pour ces précisions, aurais-tu une idée pour rendre le jeu fluide ?

Merci
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
36
Un jeu sa tourne dans une boucle, à chaque frame tu dessines la nouvelle position et/ou animation de ton personnage et tu effaces l'ancienne position, effacer ça veut dire redessiner le background uniquement à l'emplacement précédent du personnage, pour garde un maximum de fluidité. On n'utilise pas un gif animé mais une série de bitmap ou une bande de bitmap ( plusieurs bitmaps alignés ). Si tu as du mal avec ces conceps utilise XNA, un framework et un moteur de jeu C# made in Microsoft :

http://msdn2.microsoft.com/fr-fr/directx/bb870299.aspx