Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

News: / Annonces du mois d'octobre / Jeux: Happiness Adventure / Jeux: Digital Shadow / Sorties: [RMVXACE] Digital Shadow - (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

152 connectés actuellement

11855565 visiteurs
depuis l'ouverture

91 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

Lumen

Leo-Games

Eclipso

New RPG Maker

Tous nos partenaires

Devenir
partenaire



[RGSS] Installer automatiquement une police au lancement du jeu.

Dans RPG Maker VX Ace, chaque projet a un dossier Fonts qui est lu par le logiciel pour pouvoir afficher du texte avec votre police d'écriture. <br />Voici comment le faire sur RPG Maker XP.

Ecrit par Erwill le 09/03/2019


❤ 0

Installer automatiquement une police dans RPG Maker XP



Vous faites votre jeu sur rpg maker XP avec une police d'écriture très jolie, et vous décidez de le publier sur internet.
Mais oh malheur ! Cette police n'est pas installée dans les ordinateurs des joueurs, et donc, comme RPG Maker ne trouve pas cette police, il va afficher ça :

Spoiler (cliquez pour afficher)


Alors, je n'ai pas essayé, mais je suis sûr et certain que jouer un RPG sans le texte ce n'est pas très facile.
Enterbrain a très bien compris cela et sur RPG Maker VX Ace, le projet contient un dossier "Fonts" où VX Ace ira charger automatiquement toutes les polices dans ce dossier, mais pour RPG Maker XP, bah Enterbrain ne s'est pas penché là-dessus, on peut toujours demander au joueur d'installer manuellement la police d'écriture.
Une autre solution serait de mettre Font.default_name en Array de cette manière :

Portion de code : Tout sélectionner

1
Font.default_name = $fontface = ["Votre police trop cool","Arial"]



En gros, si Votre police trop cool n'est pas installée, ce sera la police Arial qui prendra le dessus. Mais bon, que serait votre super jeu sans votre super police ?
Une fonction de GDI32.dll qui s'appelle AddFontResource permet d'ajouter une police spécifiée, ce qui permettra à XP, après un redémarrage, de prendre en compte Votre police trop cool.

On va se rendre dans le script Main :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#==============================================================================
# ** Main
#------------------------------------------------------------------------------
#  After defining each class, actual processing begins here.
#==============================================================================
 
begin
  # Default Font
  Font.default_name = $fontface = "Arial"
  Font.default_size = $fontsize = 22
  # Prepare for transition
  Graphics.freeze
  # Make scene object (title screen)
  $scene = Scene_Title.new
  # Call main method as long as $scene is effective
  while $scene != nil
    $scene.main
  end
  # Fade out
  Graphics.transition(20)
rescue Errno::ENOENT
  # Supplement Errno::ENOENT exception
  # If unable to open file, display message and end
  filename = $!.message.sub("No such file or directory - ", "")
  print("Le ficher "#{filename}" n'a pas été trouvé.")
end



On va utiliser une condition grâce à la commande Font.exist?(), qui renvoie "True" sur la police est installée. En effet, on ne veut pas que le jeu se lance si la police est inexistante.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#==============================================================================
# ** Main
#------------------------------------------------------------------------------
#  After defining each class, actual processing begins here.
#==============================================================================
 
begin
  # Default Font
  Font.default_name = $fontface = "Votre police"
  Font.default_size = $fontsize = 22
  # Si la police est absente
  if !Font.exist?($fontface) 
  
  # Sinon on lance le jeu
  else
    # Prepare for transition
    Graphics.freeze
    # Make scene object (title screen)
    $scene = Scene_Title.new
    # Call main method as long as $scene is effective
    while $scene != nil
      $scene.main
    end
    # Fade out
    Graphics.transition(20)
  end
rescue Errno::ENOENT
  # Supplement Errno::ENOENT exception
  # If unable to open file, display message and end
  filename = $!.message.sub("No such file or directory - ", "")
  print("Le ficher \"#{filename}\" n'a pas été trouvé.")
end
 



Dans la condition !Font.exist?($fontface), AddFontResource entre en jeu, il sera inscrit en deux lignes, la troisième servira à redémarrer le jeu, si on choisit d’exécuter AddFontResource et ne redémarrant pas le jeu, RPG Maker XP ne prendra toujours pas en compte la police utilisée.

Dans AddFontResource.call() vous renseignez le nom du FICHIER de votre police d'écriture en n'oubliant pas l’extension du fichier.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#==============================================================================
# ** Main
#------------------------------------------------------------------------------
#  After defining each class, actual processing begins here.
#==============================================================================
 
begin
  # Default Font
  Font.default_name = $fontface = "Votre police"
  Font.default_size = $fontsize = 22
  # Si la police est absente
  if !Font.exist?($fontface) 
    # Definition de AddFontResource
    AddFontResource = Win32API.new('Gdi32', 'AddFontResource', 'p', 'l')
    # Appel de la fonction AddFontResource
    AddFontResource.call("Votre police.ttf") # Votre police (remplacez le nom par le véritable nom de votre fichier hein)
    # Redemmarage du jeu
    Thread.new {system "game.exe"}
  # Sinon on lance le jeu
  else
    # Prepare for transition
    Graphics.freeze
    # Make scene object (title screen)
    $scene = Scene_Title.new
    # Call main method as long as $scene is effective
    while $scene != nil
      $scene.main
    end
    # Fade out
    Graphics.transition(20)
  end
rescue Errno::ENOENT
  # Supplement Errno::ENOENT exception
  # If unable to open file, display message and end
  filename = $!.message.sub("No such file or directory - ", "")
  print("Le ficher \"#{filename}\" n'a pas été trouvé.")
end



Avec l'exemple ci-dessus, votre fichier doit être dans le dossier racine de votre projet, mais vous pouvez indiquer à la commande AddFontResource le répertoire de votre fichier.

Portion de code : Tout sélectionner

1
AddFontResource.call("Fonts/Votre police.ttf")



Maintenant, votre police s'installera automatiquement au lancement du jeu si celle-ci ne l'est pas.


Aucun commentaire n'a été posté pour le moment.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts | Ressources | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers