[RPG-MAKER.FR] Oniromancie: tout l'univers de RPG Maker en français - Tutoriels - [XP] Installer automatiquement une police au lancement du jeu.

Oniromancie: Tutoriels - [XP] Installer automatiquement une police au lancement du jeu.


Découvrir
RPG Maker

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

Apprendre
RPG Maker

Guides
Tutoriels
Astuces
Making-of


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Nylu
Par NanakyTim

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

Situation du site web Oniromancie / News: Vote du public aux Alex d'Or ! / OST: Retranchement / Jeux: Onirarium / Jeux: The Best Game In The World /

Chat  (90 connectés)

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

34 connectés actuellement

10055624 visiteurs
depuis l'ouverture

9 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires






TOP
GAMEMAKING


Les 5 plus
visités

Akademiya RPG Maker

Alex d'Or

Blog of Chaos17

BloGecko

ConsoleFun

Au hasard

Le Studio du Chat Vert

Akademiya RPG Maker

RPG Maker - La Communauté

Les deux derniers

Zarok

Akademiya RPG Maker

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs




[XP] Installer automatiquement une police au lancement du jeu.
Ecrit par Erwill

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 | News | Forum | Flash-news | Sorties | Chat | Commentaires | Galerie | Blogs | Articles perso | Screen de la semaine | Palmarès | Livre d'or | Recherche | Interviews | OST | L'Annuaire | Divers
Apprendre: Le Wiki | Tutoriels | Guides | Gaming-Live | Tests | Making-of
Télécharger: Programmes | Scripts | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | Collection Oniro | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Hébergés: Aëdemphia | Fighting Robots Quest | Geex | Inexistence | La Légende d'Ibabou | Nylu | Sarcia | Super Mario RPG - Lost Souls
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