Page 1 sur 2

[R] Réaliser un zoom

Posté : sam. 29 nov. 2014 11:34
par sozary
Rebonjour :(!

Je suis confronté à un soucis!

Je voudrais juste un renseignement: connaissez vous Pokémon (bon on ne juge pas ici! :mrgreen: )? Dans ce jeu nous avons une sorte de zoom sur la carte, j'aimerais faire de même avec la mienne: voir fichiers joins. Il faut réaliser un screen de la map puis un scale? car cette opération me semble bien coûteuse en mémoire!

Re: [..] Réaliser un zoom

Posté : sam. 29 nov. 2014 16:37
par Faco
Salut,

Je pence pas que dans pokemon ils utilisent un zoom, je pence qu'ils gèrent "2 images".
Donc le joueur dans la "petite image" et une "grande image" pour la carte en global.

Je dis ça, j'en sais rien mais je pence :)

Re: [..] Réaliser un zoom

Posté : sam. 29 nov. 2014 19:47
par sozary
Ahah! Si tu le penSe alors :D ! Je vais voir en faisant des recherches plus poussées!

Re: [..] Réaliser un zoom

Posté : sam. 29 nov. 2014 23:34
par mikell
En fait si la carte est suffisamment détaillée tu peux faire un zoom, avec un GDIPlus_BitmapCloneArea que tu affiches ensuite plus grand
Pis si c'est pas ça que tu veux faire bin t'as qu'à poser ta question de manière plus précise :mrgreen:

Re: [..] Réaliser un zoom

Posté : dim. 30 nov. 2014 00:01
par sozary
Ah! En effet mikell! Mais juste, quand tu dis l'afficher plus grand, tu parles de gdi scale?

Re: [..] Réaliser un zoom

Posté : dim. 30 nov. 2014 06:59
par mikell
_GDIPlus_ImageScale, _GDIPlus_ImageResize, _GDIPlus_GraphicsDrawImage*
On peut aussi sauver l'image en fichier temp puis un simple GUICtrlSetImage (mais ça peut sortir pixellisé)
ça dépend de comment fonctionne ton code - dont à propos duquel tu ne fournis AUCUNE info Image

Re: [..] Réaliser un zoom

Posté : dim. 30 nov. 2014 15:27
par sozary
Bon, voilà, j'ai du réarranger tout le code du coup! Je vous donne le .rar contenant le strict minimum. Carte.au3 est le fichier contenant tout!

L'UDF que j'ai principalement utilisé est GEngine, de matwachich.

Re: [..] Réaliser un zoom

Posté : dim. 30 nov. 2014 15:27
par sozary
Mais il y a un petit probleme de fluidité aussi :mrgreen:

Re: [..] Réaliser un zoom

Posté : dim. 30 nov. 2014 17:48
par mikell
Code inutilisable
G-Engin a des sous-includes avec plein de fonctions GDI+ et WinApi qui provoquent des erreurs 'duplicate function name'
Flemme de me taper le tri ... ^^'

Re: [..] Réaliser un zoom

Posté : dim. 30 nov. 2014 20:37
par sozary
Vous me conseilleriez de coder ça à coup de _GDIXXX plutôt? :?
Oui cela me marquait duplicate erreur etc... mais j'en avais besoin pour mon probleme de transparence!
Peut on palier ce soucis justement? De mettre mon sprite de player avec la transparence à même la carte? Cela serais plus simple!

Re: [..] Réaliser un zoom

Posté : lun. 01 déc. 2014 17:35
par TommyDDR
Fournissez l'UDF modifié ;)

Re: [..] Réaliser un zoom

Posté : lun. 01 déc. 2014 19:18
par sozary
Oui! Désolé!

Re: [..] Réaliser un zoom

Posté : lun. 01 déc. 2014 20:55
par mikell
Haha comprend vite mais faut expliquer longtemps :mrgreen:

Mais hum le fond de la gui reste blanc et le petit personnage quand il se déplace fait une trainée façon comète
Je vais passer la main, je dois pas avoir une carte graphique à la hauteur :?

Re: [..] Réaliser un zoom

Posté : lun. 01 déc. 2014 21:10
par sozary
Et ben mikell, si tu n'aimes pas les comètes, tu vas être servis :mrgreen: !

Lien du projet complet

Re: [..] Réaliser un zoom

Posté : lun. 01 déc. 2014 21:54
par mikell
Ah, là étrangement ça marche :mrgreen:

Bon oui et en fait tu veux zoomer quoi exactement ?
Parce que la question initiale du post #1 n'est pas vraiment d'une clarté limpide

Re: [..] Réaliser un zoom

Posté : lun. 01 déc. 2014 22:09
par sozary
Alors, déjà j'aimerais savoir si mon personnage pourrais ne plus laisser cette trainée d'image et qu'il se déplace un peu moins vite, mais toujours à 16 pixels/appui de touche, mais que on ne prenne en compte les touches tapées qu'après 250 ms par exemple.
Ensuite je voudrais avoir un zoom ou l'on puisse afficher 6*16 pixels a gauche de perso, en haut, en bas et a droite, de façon à réaliser en fait un scrolling, et si on est sur les bloc de maps de fin,on affiche du noir après le décors. Or je sais pas comment réaliser cela!

Re: [..] Réaliser un zoom

Posté : mar. 02 déc. 2014 22:04
par mikell
Pour la vitesse

Code : Tout sélectionner

Func _bas()
    HotKeySet("{DOWN}")
    ;....code....
    Sleep(250)
    HotKeySet("{DOWN}", "_bas")
EndFunc
Pour le zoom le résultat souhaité n'est toujours pas clair

Re: [..] Réaliser un zoom

Posté : mar. 02 déc. 2014 23:27
par sozary
Oui mais pour la fonction bas, elle ne reçoit aucun argument :(!
Ou alors je met mes imports d'images en global et ma fonction _bas plus bas?

Pour l'explication: j'ai une image qui représente la map vu de loin (enfin vu normal mais c est un peu petit). En gros je voudrais avoir un ecrans de scrolling comme sur l'image "centé.png". En gros quand j'avance, la carte vue de loin me fourni un zoom sur la carte à l'endroit ou est le joueur et cela avec 5*16 pixels de chaque côtés!

Re: [..] Réaliser un zoom

Posté : mer. 03 déc. 2014 13:43
par TommyDDR
Par zoom vous entendez "sous partie d'une image" ? ou vraiment zoom (agrandir l'image en plus) ?

Quelle que soit la réponse, voici une fonction qui permet de prendre une zone d'une image (image chargée en mémoire avec gdi) et aussi de l'agrandir.

Code : Tout sélectionner

_GDIPlus_BitmapCloneArea()

Re: [..] Réaliser un zoom

Posté : mer. 03 déc. 2014 14:05
par sozary
Oui, je pense que je vais utiliser sa! Et il faudrait donc régénérer un sous partie a chaque mouvement du coup non?