Faire défiler un décor

maxpeg0705 Messages postés 61 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 21 septembre 2005 - 9 janv. 2005 à 10:41
maxpeg0705 Messages postés 61 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 21 septembre 2005 - 10 janv. 2005 à 11:47
Bonjour,



Je suis en train de faire un jeu avec mIRC.

Je l'ai mis en plein ecran (fenetre sans bordure, toujours visible, agrandie) et je centre la map sur le plein ecran.

Et je voudrai que le personnage soit toujours visible, j'ai du mal à expliquer ^^

C'est à dire que avec une map plus grande que l'écran, quand le
personnage bouge, le décor aussi pour que le personnage reste dedans



Voici les parties du code qui sont concernées :



%mmorpg.largeur ====> largeur du plein ecran

%mmorpg.hauteur ====> hauteur du plein ecran

width dans la hash table Game ====> largeur de la map

height dans la hash table Game ====> hauteur de la map

Heros.X =======> Position du joueur sur l'axe X

Heros.Y =======> Position sur du joueur l'axe Y



Avec ce code le jeu est centré en plein écran :



drawcopy -nr @Game.Buffer 0 0 640 640 @Game $calc((%mmorpg.largeur -
($hget(Game,width) * 16)) / 2) $calc(%mmorpg.hauteur / 2 -
($hget(Game,height) * 16) / 2) $calc($hget(Game,width) * 16)
$calc($hget(Game,height) * 16)



Pour que le personnage reste visible quand la map est + grande que l'écran j'ai essayé sans succès :



drawcopy -nr @Game.Buffer $calc(($hget(Game,Heros.X) -
($hget(Game,width) * 16)) / 2) $calc(($hget(Game,Heros.Y) -
($hget(Game,height) * 16)) / 2) 640 640 @Game $calc((%mmorpg.largeur -
($hget(Game,width) * 16)) / 2) $calc(%mmorpg.hauteur / 2 -
($hget(Game,height) * 16) / 2) $calc($hget(Game,width) * 16)
$calc($hget(Game,height) * 16)



Dans ce cas là, le décor défile mais ce n'est pas bon.



J'espère que j'ai été assez compréhensible





Merci d'avance





maxpeg0705

3 réponses

cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
9 janv. 2005 à 11:01
pourquoi ce n'est pas bon ??

moi pour faire défiler un truc voila ce que je fais :

je drawscroll la plus grand partie de l'écran vers la direction voulue,
et pour le bord je drawcopy depuis le buffer qui contient l'image plus
grande pour pas que l'image devienne noire sur le bord... je sais pas
si j'me suis bien expliqué, mais normalement ca saccade moins qu'un
drawcopy sur l'ensemble

PaDa
0
maxpeg0705 Messages postés 61 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 21 septembre 2005 1
9 janv. 2005 à 11:01
En fait je voudrai que quand le personnage approche du bord de la map
affichée sur l'écran, si la map continue que ca défile mais que si
c'est la fin de la map ca ne défile pas trop pour que le personnage
reste visible

maxpeg0705
0
maxpeg0705 Messages postés 61 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 21 septembre 2005 1
10 janv. 2005 à 11:47
Oui avec un drawscroll c mieux :) mais tu peux m'expliquer un peu mieux
comment ne pas avoir du blanc PaDa ? Je n'ai pas bien compris la fin.

Et je voudrai que lors du démarrage l'image s'affiche de telle sorte
que le personnage soit centré parce que otrement le drawscroll ne va
pas assez vite quand le personnage va vers le bas et qu'il est vers le
bas de l'écran



Merci


maxpeg0705
0
Rejoignez-nous