- InvitéInvité
Problème Script
Sam 2 Mai 2009 - 23:41
Bonsoir , voici la ligne qui pose problème
self.contents = Bitmap.new(width - 32, height - 32)
Pourriez vous m'éclairer à ce sujet, merci d'avance.
self.contents = Bitmap.new(width - 32, height - 32)
Pourriez vous m'éclairer à ce sujet, merci d'avance.
Re: Problème Script
Dim 3 Mai 2009 - 10:37
Cette ligne, insérée dans l'initialize de chaque fenetre (sous vx, dans Window_Base) crée un bitmap.
Ce bitmap contiendra toutes les données affichées dans la fenetre.
en gros, tu as 2 composants dans la fenetre: le bitmap de cadre, crée à partir d'un windowskin, et le bitmap contents, avec lequel seront fusionnés tous les textes, images affichées sur la fenetre:
self.contents.draw_text(...) # on appelle la méthode Bitmap#draw_text du bitmap contents.
On peut noter aussi le processus de raffraichissement:
Dans chaque méthode refresh, on commence par efface contents: self.contents.clear
puis on redessine dessus tous les elements de la fenetre.
Cette opération se fait à chaque frame, donc environ 60 fois par secondes, ce qui est très lourd pour une fenetre complexe. Il faut donc mettre un compteur de rafraichissement, pour tout rafraichir uniquement lorsque c'est nécessaire. (Cf. Sprite_Timer).
si l'on étudie les dimensions de contents:
(width - 32, height - 32)
width et height sont les dimensions de la fenetre
on retire 32 pix à chacun, ce qui fait que l'on a des marges de 16 pix de chaque coté de la fenetre. Pourquoi ? pour éviter que le contenu dépasse sur les bordures du windowskin. Enfin, comme un bitmap doit avoir une taille non nulle (>0), on ne peut pas créer de fenetre de dimensions inférieures à 32*32.
Voila
Berka
Ce bitmap contiendra toutes les données affichées dans la fenetre.
en gros, tu as 2 composants dans la fenetre: le bitmap de cadre, crée à partir d'un windowskin, et le bitmap contents, avec lequel seront fusionnés tous les textes, images affichées sur la fenetre:
self.contents.draw_text(...) # on appelle la méthode Bitmap#draw_text du bitmap contents.
On peut noter aussi le processus de raffraichissement:
Dans chaque méthode refresh, on commence par efface contents: self.contents.clear
puis on redessine dessus tous les elements de la fenetre.
Cette opération se fait à chaque frame, donc environ 60 fois par secondes, ce qui est très lourd pour une fenetre complexe. Il faut donc mettre un compteur de rafraichissement, pour tout rafraichir uniquement lorsque c'est nécessaire. (Cf. Sprite_Timer).
si l'on étudie les dimensions de contents:
(width - 32, height - 32)
width et height sont les dimensions de la fenetre
on retire 32 pix à chacun, ce qui fait que l'on a des marges de 16 pix de chaque coté de la fenetre. Pourquoi ? pour éviter que le contenu dépasse sur les bordures du windowskin. Enfin, comme un bitmap doit avoir une taille non nulle (>0), on ne peut pas créer de fenetre de dimensions inférieures à 32*32.
Voila
Berka
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|