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

Bitmap.draw_text_plus

 
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
Nuri Yuri
Administrateur
Administrateur


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

MessagePosté le: Mar 20 Aoû - 13:17 (2013)    Sujet du message: Bitmap.draw_text_plus

Pour faire simple, voici une méthode ajoutée à la classe bitmap permettant de dessiner les texts à la Pokémon de manière simple. C'est utilise pour les interfaces faites en sprites.
Classe Bitmap :
Code:
#===
#¤Classe Bitmap
#---
#%Ajout de methodes et Constantes
#---
#© 22/05/2011 - Nuri Yuri (塗 ゆり)
#===
class Bitmap
  Rect_blt=Rect.new(0,0,1,1)
  #===
  #§Draw_text_plus
  #---
  #%Dessine les texts à la pokémon
  #%color est l'id de la couleur, type est le dessin soit tout entouré soit partiellement(0)
  #===
  def draw_text_plus(x,y,w,h,text,align=0,color=0,type=0)
    col_int=Constant::Color_int[color]
    col_ext=Constant::Color_ext[color]
    col_base=self.font.color
    text=text.to_s
    #Dessin de l'exterieur du text
    self.font.color=col_ext
    draw_text(x+1,y,w,h,text,align)
    draw_text(x+1,y+1,w,h,text,align)
    draw_text(x,y+1,w,h,text,align)
    #SI c'est un dessin du type totalement entouré
    if type != 0
      draw_text(x-1,y,w,h,text,align)
      draw_text(x,y-1,w,h,text,align)
      draw_text(x-1,y-1,w,h,text,align)
      draw_text(x-1,y+1,w,h,text,align)
      draw_text(x+1,y-1,w,h,text,align)
    end
    #Dessin de l'interieur du text
    self.font.color=col_int
    draw_text(x,y,w,h,text,align)
    #Fin de la methode
    self.font.color=col_base
    true
  end
  #===
  #§Draw_window
  #---
  #%Dessine une fenêtre
  #%px,py sont les positions dans le bitmap
  #%sw,sh sont les tailles de la fenêtre (variable selon data)
  #%bmp est le bitmap où extraire les bordures de la fenêtre
  #%data est l'array qui informe sur les tailles à prendre pour le découpage.
  #===
  def draw_window(px,py,sw,sh,bmp,data)
     #Réservé à POD et PSP v1.0
  end
end

Module Constant
Code:
#===
#¤Module Constant
#---
#%Contient toute les constantes
#---
#© 22/05/2011 - Nuri Yuri (塗 ゆり)
#===
module Constant
  #Couleurs des textes
  Color_int=Array.new(15)
  Color_ext=Array.new(15)
  Color_int[0]=Color.new(90, 90, 82)     #Gris foncé
  Color_int[1]=Color.new(110, 110, 255) #Bleu
  Color_int[2]=Color.new(255, 60, 60) #Rouge
  Color_int[3]=Color.new(60, 200, 60) #Vert
  Color_int[4]=Color.new(110, 255, 255) #Bleu Clair
  Color_int[5]=Color.new(255, 110, 255) #Rose
  Color_int[6]=Color.new(255, 255, 110) #Jaune
  Color_int[7]=Color.new(110, 110, 110) #Gris
  Color_int[8]=Color.new(255, 255, 255) #Blanc
  Color_int[9]=Color.new(239, 239, 239) #Pkdx inversé
  Color_int[10]=Color.new(90, 90, 90)   #Pkdx normal
  Color_int[11]=Color.new(41, 82, 57)   #Cdd
  Color_int[12]=Color.new(0, 0, 216) #Bleu Pokemon_Status
  Color_int[13]=Color.new(198, 0, 0) #Rouge Pokemon_Status
  Color_int[14]=Color.new(99, 255, 148) #Options
  Color_int[15]=Color.new(41, 41, 41) #Panneau
  Color_int[16]=Color.new(214,255,123) #Texte curseur Pokédex
 
  Color_ext[0]=Color.new(165, 165, 173)
  Color_ext[1]=Color.new(160, 160, 255)
  Color_ext[2]=Color.new(255, 110, 110)
  Color_ext[3]=Color.new(110, 200, 110)
  Color_ext[4]=Color.new(60, 255, 60)
  Color_ext[5]=Color.new(255, 60, 255)
  Color_ext[6]=Color.new(255, 255, 60)
  Color_ext[7]=Color.new(90, 90, 90)
  Color_ext[8]=Color.new(132, 132, 132)
  Color_ext[9]=Color.new(140, 140, 140)
  Color_ext[10]=Color.new(214, 222, 222)
  Color_ext[11]=Color.new(90, 137, 107)
  Color_ext[12]=Color.new(115, 148, 255) #Bleu Pokemon_Status
  Color_ext[13]=Color.new(255, 115, 115) #Rouge Pokemon_Status
  Color_ext[14]=Color.new(33, 148, 140) #Options
  Color_ext[15]=Color.new(107, 132, 148) #Panneau
  Color_ext[16]=Color.new(107,173,57) #Texte curseur Pokédex
 
  C_Trans=Color.new(0,0,0,0)
  #Fenêtres
  Window1=[5,4,5,5,4,5]  # => [width_droite,w_centre,w_gauche,h_haut,h_centre,h_bas]
  Window2=[4,15,4,8,16,4]
  Window3=[15,4,15,11,2,11]
  Message1=[14,8,22,8,6,8]
  Bouton1=[7,6,7,7,3,11]
 
  F_1s2=0.5
end

(Les scripts ne sont pas mis sous sploiler car tous les navigateurs découlant de Chromium (Google Chrome et Opéra 15) ajoute des séquences considérés comme illégales par le compilateur ruby il faut donc citer ce message pour copier les scripts.)

Utilisation :
L'utilisation est très simple, c'est la même qu'avec draw_texte sauf qu'il y a deux nouveau arguments : color qui permet de chosir la couleur qu'on veut et type qui défini le type de dessin :
Les couleurs sont réglés dans le module constant par leur id, vous en avez 16 mais vous pouvez en ajouter plus à souhait il suffit d'attribuer Color_int[id] et Color_ext[id].
Le type quant à lui défini si vous dessiné du Pokémon like ou du text avec contours, le type doit juste être différent de 0 pour intégrer les contours.
Code:
sprite=Sprite.new
sprite.bitmap=Bitmap.new(640,480)
sprite.bitmap.draw_text_plus(0,0,640,16,"Texte à la pokémon centré et de couleur rouge",1,2)
sprite.bitmap.draw_text_plus(0,16,640,16,"Texte avec contours ayant la couleur du dex",0,10,1)

Voilà, c'est assez simple, néanmoins, il faudra faire quelque chose dans votre projet pour automatiser les informations du texte :
Code:
#Placez ça dans main avant $scene=Scene_Title.new
Font.default_name=$fontface
Font.default_size=$fontsize

Ceci permet de définir par défaut la police du texte et sa taille ce qui évite d'avoir toujours à faire machin.bitmap/contents.font.name= etc...

Voilà.
Revenir en haut
Facebook Twitter
Publicité






MessagePosté le: Mar 20 Aoû - 13:17 (2013)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
TouzaxA
Membre


Inscrit le: 27 Juil 2012
Messages: 2 669

MessagePosté le: Mar 20 Aoû - 13:24 (2013)    Sujet du message: Bitmap.draw_text_plus

Merci pour le partage, Yuri. ^^
Revenir en haut
Overheat45
Membre


Inscrit le: 23 Jan 2012
Messages: 325
Localisation: Réunion
ID Steam: 00

MessagePosté le: Mar 20 Aoû - 13:32 (2013)    Sujet du message: Bitmap.draw_text_plus

Désolé mais je n'ai pas vraiment compris à quoi il sert.
Tu pourrais préciser?
Revenir en haut
Visiter le site web du posteur Skype Yahoo Messenger ICQ AIM GTalk/Jabber
Rox
Membre


Inscrit le: 25 Juin 2010
Messages: 273
Survivant
Localisation: En cavale
Masculin

MessagePosté le: Mar 20 Aoû - 13:36 (2013)    Sujet du message: Bitmap.draw_text_plus

Je crois que ça permet de faire des dialogues à la Pokémon sans passer par window (le système classique d'édition de dialogue).
Enfin peut être que je me trompe complètement aussi x)
Revenir en haut
TouzaxA
Membre


Inscrit le: 27 Juil 2012
Messages: 2 669

MessagePosté le: Mar 20 Aoû - 13:36 (2013)    Sujet du message: Bitmap.draw_text_plus

Rox a écrit:
Je crois que ça permet de faire des dialogues à la Pokémon sans passer par window (le système classique d'édition de dialogue).
Enfin peut être que je me trompe complètement aussi x)



C'est ça. ^^
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: Mar 20 Aoû - 13:41 (2013)    Sujet du message: Bitmap.draw_text_plus

@kakinny : Il sert à simplifier le codage des interfaces, plus besoins de créer une Window pour afficher un simple texte, un sprite contenant tous les texte peut être suffisant voir dessiner dans les images.
Ces fonctions me servent ici :
http://puu.sh/46mPi.png
Et là :
http://puu.sh/46mQD.png (Boite de message et choix)
Pour les messages ça s'est limité à :
@spc.bitmap.draw_text_plus(@x,@y*(23-@h)+@h,20,16,str,0,@color)
Et pour les choix :
@Buttons[i].bitmap.draw_text_plus(x,y,w,h,txt,a,c,t)
Déjà l'un des avantage est qu'on a pas à chercher la couleur et l'autre c'est que la fonction fait les deux types en une seul fonction :b
Revenir en haut
Facebook Twitter
Overheat45
Membre


Inscrit le: 23 Jan 2012
Messages: 325
Localisation: Réunion
ID Steam: 00

MessagePosté le: Dim 25 Aoû - 06:52 (2013)    Sujet du message: Bitmap.draw_text_plus

Edit:

SALUT!

Désolé de vous déranger mais il y a peu de temps, j'ai rajouté ce script à mon projet, mais je ne sais pas comment l'utiliser, car je n'utilise jamais draw_text.
(Enfin je pense).

Pouvez vous m'aider?

Et c'est quoi w et h?


Dernière édition par Overheat45 le Dim 25 Aoû - 07:04 (2013); édité 1 fois
Revenir en haut
Visiter le site web du posteur Skype Yahoo Messenger ICQ AIM GTalk/Jabber
TouzaxA
Membre


Inscrit le: 27 Juil 2012
Messages: 2 669

MessagePosté le: Dim 25 Aoû - 07:01 (2013)    Sujet du message: Bitmap.draw_text_plus

C'est utile seulement si tu rescript toutes tes interfaces. Sinon, ça sert à rien. ^^
Revenir en haut
Overheat45
Membre


Inscrit le: 23 Jan 2012
Messages: 325
Localisation: Réunion
ID Steam: 00

MessagePosté le: Dim 25 Aoû - 07:11 (2013)    Sujet du message: Bitmap.draw_text_plus

Oui mais d'après l'image de Yuri, on peux l'utiliser pour faire un effet lettre comme dans pokémon noir, et j'en ai vraiment besoin.
Le problème c'est que je n'arrive pas à effacer le texte de l'écran.
PS: Je sais ce que c'est que y et h maintenant.
Revenir en haut
Visiter le site web du posteur Skype Yahoo Messenger ICQ AIM GTalk/Jabber
TouzaxA
Membre


Inscrit le: 27 Juil 2012
Messages: 2 669

MessagePosté le: Dim 25 Aoû - 07:18 (2013)    Sujet du message: Bitmap.draw_text_plus

Il suffit de faire:
tonTexte.dispose

Ou si c'est temporaire:
tonTexte.visible = false
(Faut remettre true pour l'afficher)

Sachant qu'il ne faut pas juste se contenter de le masquer. Il faut le supprimer avec dispose quand on en à plus besoin.
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: Dim 25 Aoû - 07:23 (2013)    Sujet du message: Bitmap.draw_text_plus

Si la variable est dropé je laisse 10 secondes de vie au texte \o/
(Le RGSS a très peu de fuite de mémoire grâce au GC du ruby :b)
Revenir en haut
Facebook Twitter
Overheat45
Membre


Inscrit le: 23 Jan 2012
Messages: 325
Localisation: Réunion
ID Steam: 00

MessagePosté le: Dim 25 Aoû - 07:26 (2013)    Sujet du message: Bitmap.draw_text_plus

C'est possible d'utiliser les commandes tels que \N[1]?
Revenir en haut
Visiter le site web du posteur Skype Yahoo Messenger ICQ AIM GTalk/Jabber
Nuri Yuri
Administrateur
Administrateur


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

MessagePosté le: Dim 25 Aoû - 07:39 (2013)    Sujet du message: Bitmap.draw_text_plus

Faut que tu le fasse avant d'appeler la méthode (sinon utilisation de regexp inutilement => GROS ralentissements).
str=str.gsub(/\\[Nn]\[([0-9]+)\]/) { $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : "" }
Revenir en haut
Facebook Twitter
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 07:55 (2017)    Sujet du message: Bitmap.draw_text_plus

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