rpgmakerxp.frbb.net

Un forum basé sur le rpg making via rmxp
 
AccueilPortailFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 Créer une Window

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
berka
Admin
Admin
avatar

Masculin
Nombre de messages : 842
Age : 27
Localisation : Devant mon ordi!
Projet en cours: : Secret ^^
Date d'inscription : 16/03/2007

niveau du maker
mapping:
0/100  (0/100)
events:
50/100  (50/100)
scriptage:
100/100  (100/100)

MessageSujet: Créer une Window   Lun 24 Sep - 23:20

Voici un tutorial pour vous enseigner les premières bases du ruby!

Tout d'abord pour certains points comme les variables vous devez au moins avoir lu les tutoriaux de Tonyryu, qui sont très bien faits.

Ce tutorial est fait pour vous aider aider a créer une Window sous Rpgmaker XP.

Citation :
Qu'est ce qu'une Window ?

Une Window est une fenetre, affichable sous rpgmxp. Elle permet d'afficher des textes, des images, des informations sur le héro, les valeurs de variables, ...

Bon maintenant place a la pratique :content:

Tout d'abord, le script d'une Window doit etre placé dans le gestionnaire des scripts (F11) sous le script Window_Selectable et au dessus de script main. Le titre importe peu.

Créez un nouveau script (inser)

Tapez une premiere ligne:
Code:
class Window_Exemple < Window_Base

    Le "class" sert lors de l'appel du script, il est present dans tous les scripts (de base).
    Pour créer une Window, ce que nous allons faire, Mettez, "Window_Exemple" Avec des majuscules et un underscore "_" pour separer, sans espaces.
    "< Window_Selectable" ou "< Window_Base" (toujours avec des majuscules ) fait "dependre" la window de la Window_Base/Selectable


Ensuite, saut de ligne:
Code:
def initialize

    Ici on ouvre une ouvre une definition pour "creer la fenetre", pour l'initialiser. Comme on l'ouvre, il faudra penser a la fermer avec un end, plus tard !


Là on va determiner la position et les dimensions de la fenetre:
Code:
super(x, y, long, larg)

    super commande les valeurs dans les parentheses:
    sachez que la fenetre de jeu de rmxp fait 640 ppx sur 480 ppx
    x: la position horizontale de la fenetre, en partant du coin haut a gauche (valeur comprise entre 0 et 640)
    y: la position verticale de la fenetre, en partant du coin haut a gauche (valeur comprise entre 0 et 480)
    long: la longueur de la fenetre (horizontale) comprise entre 0 et 640
    larg: la largeur de la fenetre (verticale) comprise entre 0 et 480
    n'oubliez pas les "," et les espaces apres chaque valeur

    exemple: super(100, 200, 50, 75)


ensuite une ligne obligatoire:
Code:
self.contents = Bitmap.new(width - 32, height - 32)
    cette ligne, en gros, elle sert a definir les marges du windowskin, il ne faut pas les changer


ensuite on definit les variables concernant les polices:
Code:
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize

    ces variables, appelées depuis le script main, contiennent les noms et la taille des polices utilisées (les variables sont precedees du signe $)
    Vous pouvez tres bien mettre:
    Code:
    self.contents.font.name = "arial"
    self.contents.font.size = 24


Ensuite on appelle le rafraichissement:
Code:
refresh
    ce mot va envoyer a la seconde definition (def refresh) lors de l'execution du script


rappelez vous on a ouvert une definition, il faut la fermer !
Code:
end

allez on embraye sur la definition refresh, la plus interressante:
Code:
def refresh

on efface tout ce que la window contient:
Code:
self.contents.clear

pour y mettre ce que l'on veut:
    du texte:
    Code:
    self.contents.draw_text(4, 0, 120, 32, "TEXTE")
    sans oublier les ""
    une icone:
    Code:
    bitmap = RPG::Cache.icon("035-Item05")
    avec ensuite son opacité (.../225) et sa position (nombres comme super)
    Code:
    self.contents.blt(4, 4, bitmap, Rect.new(0, 0, 24, 24), 255)
    un chara:
    Code:
     draw_actor_graphic(actor, x, y)
        bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
        cw = bitmap.width / 4
        ch = bitmap.height / 4
        src_rect = Rect.new(0, 0, cw, ch)
        self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
    ou encore diverses infos du héro:
    Code:
    draw_actor_parameter($game_actors[ID du héro], x, y, truc)
    avec truc le numéro:
    Code:
    0=atk
    1=pdef
    2=mdef
    3=str
    4=dex
    5=agi
    6=int

    les hp:
    Code:
    draw_actor_hp($game_actors[ID du héro], x, y)
    les sp:
    Code:
    draw_actor_sp($game_actors[ID du héro], x, y)
    le nom:
    Code:
    draw_actor_name($game_actors[ID du héro], x, y)
    l'exp:
    Code:
    draw_actor_exp($game_actors[ID du héro], x, y)
    le niveau:
    Code:
    draw_actor_level($game_actors[ID du héro], x, y)
    la classe:
    Code:
    draw_actor_class($game_actors[ID du héro], x, y)
    et pleins d'autres choses Shocked


Une fois que vous avez fait votre choix, il faut fermer:
la def refresh:
Code:
end
et la class Window...
Code:
end

Le code est fini ?
Non :==-*/25

Il faut afficher la fenetre !

on va faire simple, on ne va pas l'appeller depuis une scene (on y reviendra ^^) , mais d'un event:

creez un nouvel event,avec un declanchement au contact du hero, mettez appel d'un script

et mettez:
Code:
@variable = Window_Exemple.new
la elle s'affiche, pour la fermer:
Code:
@variable.dispose
pour la mettre a jour:
Code:
@variable.update

apres pour enlever le windoskin apres:
Code:
@variable = Window_Exemple.new
mettez:
Code:
@variable.windowskin = nil

etc

voila voila!
la vous savez coder cheers

apres place aux scene, qui sont tout juste plus difficiles!

bonus, Window "squelette":
Code:
class Window_Truc < Window_Base

  def initialize
    super(0, 0, 160, 96)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    refresh
  end

  def refresh
    self.contents.clear

  end
end

_________________

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgmakerxp.frbb.net
 
Créer une Window
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» ma presentation
» a window to the past feat. melfice
» Probleme avec windows 8
» A window in the Past...
» windows phone

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
rpgmakerxp.frbb.net :: Les Tutoriaux :: Les Tutoriaux :: Apprendre le Ruby-
Sauter vers: