Sujet précédent :: Sujet suivant |
Auteur |
Message |
Zohran Support Technique

Inscrit le: 14 Mai 2011
Messages: 906 Localisation: France 
|
Posté le: Ven 10 Jan - 14:36 (2014) Sujet du message: Message Style Pokémon RF/VF |
|
|
Bonjour, voilà, en ce moment je m'amuse à coder un SK pokémon reproduisant intégralement les systèmes de pokémon rouge feu et vert feuille. Je recode une BDD de script de A à Z.
Je tenais à vous faire malgré tout profiter de ce script. Vous pouvez le mettre n'importe où, il n'utilise aucun script extérieur de RMXP. Voici le pack de ressource nécessaire: https://www.mediafire.com/?l9nl5l509u5hnn2 (2 fichiers PNG à mettre dans le dossier windowskin + la police d'écriture de pokémon RF/VF à installer)
SCREEN depuis ma BDD vide

Code: | class Message def initialize(texte1 = "", texte2 = "", couleur = 0, suivant = false) @texte1 = texte1 @texte2 = texte2 @couleur = couleur @suivant = suivant @noir = Color.new(96, 96, 96, 255) @bleu = Color.new(48, 80, 200, 255) @rouge = Color.new(224, 8, 8, 255) @gris = Color.new(208, 208, 200, 255) @fond = Sprite.new @fond.bitmap = Bitmap.new("Graphics/Windowskins/Dialogue") @fond.x = 5 @fond.y = 115 @fond.z = 0 @fenetre = Sprite.new @fenetre.bitmap = Bitmap.new(640, 480) @fenetre.bitmap.font.name = "Power Red and Green" @fenetre.bitmap.font.size = 14 case @couleur when 0 @fenetre.bitmap.font.color = @noir when 1 @fenetre.bitmap.font.color = @bleu when 2 @fenetre.bitmap.font.color = @rouge end @fenetre.bitmap.draw_text(16, 121, 208, 14, @texte1) @fenetre.bitmap.draw_text(16, 123 + 14, 208, 14, @texte2) @fenetre.z = 2 @ombre = Sprite.new @ombre.bitmap = Bitmap.new(640, 480) @ombre.bitmap.font.name = "Power Red and Green" @ombre.bitmap.font.size = 14 @ombre.bitmap.font.color = @gris @ombre.bitmap.draw_text(17, 122, 208, 14, @texte1) @ombre.bitmap.draw_text(17, 124 + 14, 208, 14, @texte2) @ombre.z = 1 if @suivant == true @fleche = Sprite.new @fleche.bitmap = Bitmap.new("Graphics/Windowskins/Flèche") @fleche.x = 16 + @fenetre.bitmap.text_size(@texte2).width + 3 @fleche.y = 139 @fleche.z = 2 end end def supprimer @fond.dispose @ombre.dispose @fenetre.dispose @fleche.dispose if @fleche != nil end def maj_fleche(i) case i when 0 @fleche.y = 139 when 6 @fleche.y = 140 when 12 @fleche.y = 141 when 18 @fleche.y = 140 when 24 @fleche.y = 139 end end end
|
Le script est brut pour l'instant car ensuite il sera appelé par plusieurs autres scripts que j'aurais codé, MAIS il est simple à utiliser malgré tout.
Si vous l'appelez depuis un event, appelez-le de cette manière, tout en mettant ATTENDRE 1 frame après cette commande:
Code: | Graphics.freeze message = Message.new("Je suis complètement épuisée.", "Tu aurais de l'eau s'il te plaît?", 2, true) i = 0 Graphics.transition(20) loop do if i > 24 i = 0 end i += 1 Graphics.update Input.update message.maj_fleche(i) if Input.trigger?(Input::C) break end end message.supprimer |
Les arguments: Message.new(1ère ligne de texte, 2ème ligne de texte, couleur, si un autre message suit)
Si vous ne voulez pas mettre de texte à la 2ème ligne, mettez "". Pour les couleurs, il y en a 3, comme dans RF/VF: 0-noir, 1-bleu, 2-rouge. Le dernier argument: mettre true ou false. C'est pour dire si un message va suivre après celui-ci. Si c'est le cas, la flèche sera présente sur le message, montrant que la boîte de dialogue n'est pas terminée (comme dans RF/VF).
La boîte de dialogue sera positionnée en haut à droite car elle est conçu pour une résolution GBA à la base, à vous d'adapter les X et Y du script |
|
Revenir en haut |
|
 |
Publicité
|
Posté le: Ven 10 Jan - 14:36 (2014) Sujet du message: Publicité |
|
|
|
|
Revenir en haut |
|
 |
Nuri Yuri Administrateur

Inscrit le: 15 Oct 2008
Messages: 6 383 ~Entity~Localisation: Nancy  ID Steam: Nuri_Yuri
|
Posté le: Ven 10 Jan - 15:56 (2014) Sujet du message: Message Style Pokémon RF/VF |
|
|
C'est un peu léger et ça ne remplis pas vraiment la fonction prévu. Un message devrait s'écrire de cette façon : «Sal» => «Salut » => «Salut toi» => «Salut toi ! » (En fonction de la vitesse). Enfin pourquoi pas sinon, je ne comprend pas pourquoi tu as choisi d'initialiser deux bitmaps de 640x480 alors que tu pouvais faire avec un de la taille de la boite. |
|
Revenir en haut |
|
 |
Zohran Support Technique

Inscrit le: 14 Mai 2011
Messages: 906 Localisation: France 
|
Posté le: Ven 10 Jan - 17:06 (2014) Sujet du message: Message Style Pokémon RF/VF |
|
|
Yuri a écrit: | C'est un peu léger et ça ne remplis pas vraiment la fonction prévu. Un message devrait s'écrire de cette façon : «Sal» => «Salut » => «Salut toi» => «Salut toi ! » (En fonction de la vitesse). Enfin pourquoi pas sinon, je ne comprend pas pourquoi tu as choisi d'initialiser deux bitmaps de 640x480 alors que tu pouvais faire avec un de la taille de la boite. |
Oui c'est léger, ce n'est que provisoire, par contre, tu pourrais peut-être me conseiller, si j'ai créée 2 bitmaps, ça veut dire que j'ai pas bien compris complètement comment me servir de cette classe alors, comment aurais-tu procédé?
Idem pour la vitesse, c'est en jouant sur les dimensions du bitmap? |
|
Revenir en haut |
|
 |
Nuri Yuri Administrateur

Inscrit le: 15 Oct 2008
Messages: 6 383 ~Entity~Localisation: Nancy  ID Steam: Nuri_Yuri
|
Posté le: Ven 10 Jan - 17:15 (2014) Sujet du message: Message Style Pokémon RF/VF |
|
|
Pour ma part, j'en ai crée un, et l'ombre, je la dessine avant de dessiner le texte clair. Ainsi elle sera forcément derrière le message clair donc j'économise un sprite et un bitmap soit environ 1.171875 Mo de RAM dans ton cas précis. (Imagines que tu as un joueur sur Windows XP avec 256Mo de RAM et que tu fais ça sans cesse, il va vite finir avec un RGSSError Can't create Bitmap.) D'où l'intérêt d'ailleurs de créer un bitmap de la taille de la boite de message : il pèsera 9.43359375 Ko au lieu de 1.171875 Mo soit quasiment une réduction de 127 fois et ce n'est pas négligeable. |
|
Revenir en haut |
|
 |
Mack Membre
Inscrit le: 30 Mar 2008
Messages: 466 Localisation: Derrière toi =P
|
Posté le: Ven 10 Jan - 17:20 (2014) Sujet du message: Message Style Pokémon RF/VF |
|
|
Bah, en faite un bitmap c'est comme une feuille transparente, avec certain outils tu peux y dessiner dessus. Les lignes du types :
Code: | bitmap = Bitmap.new("Graphics/Windowskins/Flèche") |
Permettent de transformer ta feuille en cette image. ( Donc La feuille change de taille, puis se colorie toute seule. ) Tandis que :
Code: | bitmap = Bitmap.new(640,480) |
Permet de créer ne feuille transparente de taille 640,480.
Pour dessiner une image sur une feuille tu peux utiliser :
Code: | bitmap.blt(x , y, bitmap, src_rect) |
bitmap c'est un autre bitmap ( donc pour toi ça serait ta flèche, ou ton fond ) Et src_rect correspond à la partie du bitmap que tu veux dessiner.
Par exemple pour dessiner le fond, écrire du texte, puis dessiner la flèche :
Code: | dbitmap = RPG::Cache.windowskin("Dialogue") cw = dbitmap.width ch = dbitmap.height src_rect = Rect.new(0, 0, cw, ch) bitmap.blt(x,y, dbitmap, src_rect) bitmap.draw_text(17, 122, 208, 14, @texte1) fbitmap = RPG::Cache.windowskin("Flèche") cw = fbitmap.width ch = fbitmap.height src_rect = Rect.new(0, 0, cw, ch) bitmap.blt(x,y, fbitmap, src_rect) |
Si tu comprends pas mieux, j'te feras un vrai exemple ^^. |
|
Revenir en haut |
|
 |
Nuri Yuri Administrateur

Inscrit le: 15 Oct 2008
Messages: 6 383 ~Entity~Localisation: Nancy  ID Steam: Nuri_Yuri
|
Posté le: Ven 10 Jan - 18:20 (2014) Sujet du message: Message Style Pokémon RF/VF |
|
|
Je déconseille l'utilisation de Bitmap#blt si ce n'est pas dans une but de dessin compliqué de bitmap ou de restructuration à partir d'un "Tileset" (tiles de 8x8 par exemple). C'est une procédure assez lente si tu as déjà l'image tu utilises un Sprite et si besoins Sprite#src_rect. |
|
Revenir en haut |
|
 |
Contenu Sponsorisé
|
Posté le: Aujourd’hui à 21:06 (2018) Sujet du message: Message Style Pokémon RF/VF |
|
|
|
|
Revenir en haut |
|
 |
|