Résolution DirectX

Résolu
Ze_Dam Messages postés 340 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 7 juillet 2005 - 17 août 2004 à 20:18
ShadowMaster Messages postés 184 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 18 août 2005 - 18 août 2004 à 23:00
Bonjour.

Voilà je fais une application en 2D avec DirectX 7 mais j'ai un conflit avec les résolutions. Le prog se décline sous la forme d'un jeu 2D (style Zelda pour être plus clair). Donc le perso est au centre de l'écran, quand on appuye sur la touche gauche la map est déplacé vers la droite, etc.

Ma résolution sous Windows est 1024 * 768. Cette résolution ne convenant pas très bien pour mon application, j'estime qu'il serait plus intéressant de faire mon appli en 800 * 600 (celà convient mieux pour diverses raisons. Donc dès le début du prog, voilà le code pour la résolution :

Set DD = DX.DirectDrawCreate("")
DD.SetDisplayMode 800, 600, 32, 0, DDSDM_DEFAULT

Rien d'étonnant jusque là. Bref je lance l'appli, tout marche très bien, la résolution, et tout et tout, je pe déplacer le personnage (le perso ne bougeant pas car c'est la map qui est déplacée évidemment). Je complie, et je le réessaye normalement sous Windows, et là, problème, celà ne marche pas comme en éxécution avec vb. J'ai comme une plaque noir à droite de l'écran et en dessous, caractéristique de la résolution. Mais la plus étonnant, c'est que ca marchait bien en éxécution sous vb !!!! Alors pour résoudre le prolème, je suis obligé de passer manuellement en 800 * 600 via les "propriétés d'affichage" de Windows, mais pourtant, la résolution est bien changée par mon prog à son lancement !!!!

Merci de m'aider,

Damien GERARD.

48 réponses

cs_gwen49 Messages postés 113 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 19 juillet 2006
18 août 2004 à 13:20
ok mais m1tenan tout marche!
3
cs_gwen49 Messages postés 113 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 19 juillet 2006
17 août 2004 à 22:53
l'argument "32" de

DD.SetDisplayMode 800, 600, 32, 0, DDSDM_DEFAULT

signifie que tu est en 32 Bits essaies de le mettre en 16 Bits.(
DD.SetDisplayMode 800, 600, 16, 0, DDSDM_DEFAULT
) Cela n'a pas grand chose a voir mais je sais que j'ai eu quelques Pb de ce type et cela marchait ainsi

j'espere que cela fonctionnera

@+
0
ShadowMaster Messages postés 184 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 18 août 2005
18 août 2004 à 01:25
essaye ça:

Set DD = DX.DirectDrawCreate("")
DD.SetCooperativeLevel Form1.hWnd, DDSCL_FULLSCREEN Or DDSCL_EXCLUSIVE Or DDSCL_ALLOWREBOOT
DD.SetDisplayMode 800, 600, 32, 0, DDSDM_DEFAULT

si ça marche toujours pas:
DD.SetDisplayMode 800, 600, 32, 0, DDSDM_STANDARDVGAMODE

sinon est ce que tu compile bien en code Natif?
0
Ze_Dam Messages postés 340 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 7 juillet 2005
18 août 2004 à 09:17
Je l'ai mis en 16 bits mais celà ne change malheureusement rien. ShadowMaster, ta première proposition est exactement ce que j'ai dans mon code, j'ai ensuite essayé de mettre DDSDM_STANDARDVGAMODE à la place de DDSDM_DEFAULT mais celà ne change rien du tout. Je compile ausse en code natif ; j'ai tout de même essayé de complirer sans code natif mais celà ne change rien du tout.

Mais ce qui m'étonne le plus, c'est que en mode Run de vb, tout marche très bien, puis il suffit que je le compile pour l'essayer sous Windows normalement et que là celà ne va pas. Donc pour que celà marche, je suis obligé de basculer la résolution Windows manuellement pour qu'elle soit la même que celle du prog qui devrait normalement s'en charger lui-même !!!!!

Merci beaucoup de votre aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_gwen49 Messages postés 113 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 19 juillet 2006
18 août 2004 à 10:39
essaie de changer la résolution d'écran dans ton programme sans DirectX.

regarde par la http://www.vbfrance.com/code.aspx?ID=7892
0
Ze_Dam Messages postés 340 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 7 juillet 2005
18 août 2004 à 11:32
Bon je suis allé voir la source. Je l'insère correctement dans mon prog. Le prog vérifie si l'utilisateur à la résolution 800 * 600 * 32 après quoi on bascule dasn cette résolution (selon la source que tu m'as donnée). Le problème, c'est que le prog est instable : l'image est mauvaise, de plus, les icones de la barre des taches ne sessent de clignoter, il y a aussi un bord de 2cm de noir tout autour de l'écran.

Bien évidemment, à la fermeture du prog, je suis obligé de remettre dans la résolution d'avant, mais ca, ce n'est pas un problème : il me suffit de récupérer la résolution dès le démarrage du prog.
0
cs_gwen49 Messages postés 113 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 19 juillet 2006
18 août 2004 à 11:36
Ton ordi il est chelou!!! J'ai une idée : je t'envoi mon email par message privé et tu m'envoie ton prog. Comme ça on pourra savoir si cela vien de ton ordi!
0
Ze_Dam Messages postés 340 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 7 juillet 2005
18 août 2004 à 11:54
J'espère que tu as bien recu mon mail car :

- msn ne parvient pas à envoyer la source (37 ko c'est lourd ...)
-Tiscali a encore des problèmes de serveur et je ne sais même pas s'il a été envoyé ou non (il est dans les mess envoyé mais un mess d'erreur m'indique que l'envoi n'a pas été possible......
0
cs_gwen49 Messages postés 113 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 19 juillet 2006
18 août 2004 à 11:55
je l'ai pas reçu
0
Ze_Dam Messages postés 340 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 7 juillet 2005
18 août 2004 à 11:58
merde y a rien qui va chez moi ahh la technologie ... bon je réessaye
0
Ze_Dam Messages postés 340 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 7 juillet 2005
18 août 2004 à 12:00
ah ca a marché ce coup-ci
0
cs_gwen49 Messages postés 113 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 19 juillet 2006
18 août 2004 à 12:01
c bon
0
cs_gwen49 Messages postés 113 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 19 juillet 2006
18 août 2004 à 12:08
c'est étrange.
je m'explique. je vois que tu as utilisé ma scource(ça fait plaisir!). ça tombe bi je la connai. avec la scource que tu m'a envoyé il y a des pb d'affichage. Sur la scource que j'ai mis sur vbfrance tout va bien. J'en conclu que tu a changé quelque chose qui fait planter l'affichage, et que tu devrai retélécharger ma scource, a mon avis ce serai le + simple

je pense que ça marchera.

O fait si tu trouve le moyen de detecter le terrain en dessous du perso (o,herbe etc...) pourra tu m'envoyer ton code???

merci d'avance
0
cs_gwen49 Messages postés 113 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 19 juillet 2006
18 août 2004 à 12:11
putain je vien de me rendre compte que sur ma scource C pareil!!! :-(
je croi qu'on est embarqué dans le mm bato maintenan
0
Ze_Dam Messages postés 340 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 7 juillet 2005
18 août 2004 à 12:11
je t'ai mis dans l'e-amil que je t'envoyais la source sans la tienne pour que tu voie d'abord quel est mon problème initiale. Mais j'ai aussi ma source modifiée avec la tienne, ne te tracasse pas
0
Ze_Dam Messages postés 340 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 7 juillet 2005
18 août 2004 à 12:14
eh la source que tu m'as donnée n'est pas de toi, c'est de <Tilois>, tu t'es ptet trompée dans l'URL que tu m'as donnée, non ?
0
Ze_Dam Messages postés 340 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 7 juillet 2005
18 août 2004 à 12:15
ah non je me goure c juste c la tienne scuse
0
Ze_Dam Messages postés 340 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 7 juillet 2005
18 août 2004 à 12:16
tu parlais de la source de départ, ben oui, car je débute en directX 7 et la tienne me semblait excelente pour comprendre la 2D
0
cs_gwen49 Messages postés 113 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 19 juillet 2006
18 août 2004 à 12:22
DD.SetDisplayMode 1024, 768, 32, 0, DDSDM_DEFAULT
ça marche visiblement mais je comprend toujours pas pourquoi
0
Ze_Dam Messages postés 340 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 7 juillet 2005
18 août 2004 à 12:23
en effet Gwenael, plus on avance, plus c la m****. le prog marche en run mé po en mode normal sous Windows pour une raison inconnue, et si on utilise la mise à résolution sans directX, même si on arrivait à bien cailbrai à l'écran, ben il est instable. J'ai lu un coup les commentaires de ta source, apparemment, tt le monde ne l'a testé qu'en Run de VB.

G vu que tu désirais savoir comment savoir quel bloc se trouvait à proximité du perso, ben voilà, à mon avis, avec les données PosMondeX et posMondeY, on peux déterminer (avec deux trois calculs quels blocs sont à gauche, en haut, etc. tt ca pour le système des murs, etc pour arreter le perso, pour encore mieux, y fodrais avoir le perso, de dos, de gauche et de droite aussi, ainsi, qd l'utilisateur appuye sur la touche gauche, on met biensur la map un cran à droite, mais on charge le perso face gauche.

En tt cas, bon courage pour trouver le prob des résolutions.
0
Rejoignez-nous