Pokémon Script Project Index du Forum

S’enregistrer | Rechercher | Connexion
 Information des admins 
Si vous désirez parler de PSP ou obtenir du soutient là dessus, merci d'aller faire un tour sur https://pokemonworkshop.com/forum/index.php Imbécile heureux

Message Style Pokémon RF/VF

 
Poster un nouveau sujet   Répondre au sujet    Pokémon Script Project Index du Forum -> Game Making -> Ressources techniques -> Scripts
Sujet précédent :: Sujet suivant   
Auteur Message
Zohran
Support Technique
Support Technique


Inscrit le: 14 Mai 2011
Messages: 906
Localisation: France
Masculin

MessagePosté 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é






MessagePosté le: Ven 10 Jan - 14:36 (2014)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Nuri Yuri
Administrateur
Administrateur


Inscrit le: 15 Oct 2008
Messages: 6 383
~Entity~
Localisation: Nancy
Non renseigné (Visible...)
ID Steam: Nuri_Yuri

MessagePosté 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
Facebook Twitter
Zohran
Support Technique
Support Technique


Inscrit le: 14 Mai 2011
Messages: 906
Localisation: France
Masculin

MessagePosté 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
Administrateur


Inscrit le: 15 Oct 2008
Messages: 6 383
~Entity~
Localisation: Nancy
Non renseigné (Visible...)
ID Steam: Nuri_Yuri

MessagePosté 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
Facebook Twitter
Mack
Membre


Inscrit le: 30 Mar 2008
Messages: 466
Localisation: Derrière toi =P

MessagePosté 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
Administrateur


Inscrit le: 15 Oct 2008
Messages: 6 383
~Entity~
Localisation: Nancy
Non renseigné (Visible...)
ID Steam: Nuri_Yuri

MessagePosté 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
Facebook Twitter
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 02:03 (2017)    Sujet du message: Message Style Pokémon RF/VF

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Pokémon Script Project Index du Forum -> Game Making -> Ressources techniques -> Scripts Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Thème par Thomas et l'équipe de la refonte PSP 2012 (version 1.0)
Traduction par : phpBB-fr.com