Multiple OpenWindowedScreen ?

Sujets variés concernant le développement en PureBasic
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Multiple OpenWindowedScreen ?

Message par Dräc »

Bonjour, avant de me lancer vers de lourdes modifications dans mon code, je vais consulter la sagesse du forum :)

Jusqu’à présent mon prog utilisait un OpenWindowedScreen.
Cependant, cette fonction a les memes limitations que OpenSreen pour ce qui est de sa taille maxi.
Or j’ai besoin de créer un ecran plus grand, d’où mes questions :

Quelle est la meilleure manière d’y arriver : faut-il utiliser les images pour simuler mon écran et la librairie 2DDrawing par exemple ?
Les performances sont elles les memes ?

Ensuite ca se corse car avec ca j’aimerai ouvrir plusieurs écrans de grande taille affichant différentes régions d’une meme carte ( de mon jeu)

Selon moi, deux gd principes
1- soit créer une carte du jeu à la dimension voulue en mémoire (sans l’afficher à l’écran) et d’afficher dans des fenetres d’un MDIGadget des images de taille plus petite pointant sur des regions différentes de la carte.
Avantage : il suffit d’entretenir la carte pour que l’affichage soit à jour dans les fenetres MDIGadget
Inconvénient : ca prend de la place mémoire

2- soit construire directement la région de la carte de chaque fenetre
Avantage : la taille mémoire
Inconvénient : le tps machine surement…

La solution 2 collerait à mon codage actuel, simplement on ne peut ouvrir qu’une seule screen.

Bref, selon vous quelle est la meilleure manière d’y parvenir (surtout en performance)?
Existe t-il déjà des solutions connues ?
Quelqu’un a un exemple concret ?
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

je crois qu'on ne peut ouvrir qu'un openwindowedscreen !
SI j'étais toi je transformerait ma carte en tableau dans un coin de ton ecran comme si tu avec une fnêtre j'afficherais la partie du code correspondant a ce que je veut montrer !
Si ta map n'est pas transposable en tableau alors utilise la commande GrabImage qui te permet de n'avoir qu'une partie de l'image ou bien ClipSprite qui permet de n'afficher qu'une partie d'un sprite
Voilà...j'éspère que ça t'aidera !
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Message par Dräc »

Salut Thyphoon,

Tu as raison, on ne peut créer qu’une seule Screen (que ce soit avec OpenScreen ou OpenWindowedScreen) et là est tout l’intérêt de ma question ;)

Je voulais finalement savoir si quelqu’un c’était penché sur la question de la meilleure méthode à employer pour contourner cette limitation, mais visiblement ca n’inspire pas grand monde, meme sur le forum anglais…

Rq : au passage, personnellement j’évite d’utiliser ClipSprite sur de trop gros sprite, car si la fonction permet de n’afficher à l’écran que la partir non « clippée », elle traite malgré tout le sprite en entier ce qui peut s’avérer long…
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Qu'elle est la resolution de ta map ? en pixel ?
Est ce qu'elle change rapidement ! ou bien s'ecoule t'il un certain nombre de seconde avant qu'il ne change ?
Si j'étais toi ! Je ferais un grabsprite sur ton sprite de Map et j'afficherais a chaque boucle une sprite temporaire (créer avec grapsrpite) et simplement a chaque mouvement je referais un grab !

heuuuuuu je suis claire ou pas? :P
Répondre