A voir également:
- Ruby rpg maker
- Windows movie maker windows 11 - Télécharger - Montage & Édition
- Movie maker windows 10 - Guide
- Karaoke maker - Télécharger - DJ & Karaoké
- Brave frontier rpg - Télécharger - Rôle RPG
- Thundersoft free slideshow maker - Télécharger - Visionnage & Diaporama
13 réponses
gagner79
Messages postés
261
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
20 décembre 2009
40
28 mai 2008 à 14:57
28 mai 2008 à 14:57
ensuite il faut que tu mettes la condition pour que le cadre ne s'affiche que quand un interrupteur est activé :
if $game_switches[numéro de l'interrupteur] == true
self.visible = true
else self.visible = false
end
tu mets ca après Window_Base.new
ensuite il faut que tu appelle le script :
tu met un événement avec appeler un script comme commande
et tu met le script suivant :
Cadre.new
alors ca te donne quoi ?
if $game_switches[numéro de l'interrupteur] == true
self.visible = true
else self.visible = false
end
tu mets ca après Window_Base.new
ensuite il faut que tu appelle le script :
tu met un événement avec appeler un script comme commande
et tu met le script suivant :
Cadre.new
alors ca te donne quoi ?
gagner79
Messages postés
261
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
20 décembre 2009
40
28 mai 2008 à 14:51
28 mai 2008 à 14:51
moi je peux t'apprendre c'est très facile
commencons tout de suite si tu veux
pour faire un script je te conseille d'utiliser les autres scripts ou des bouts de script afin de ne pas avoir à faire tout tout seul
exemple : afficher un cadre sur la map quand un certain interrupteur est activé
pour ca tu te bases sur le script "Window_Base"
tu fait nouveau script au-dessus de main, tu choisis un nom, celui-ci n'auras aucune importance
un script commence souvent par : "class" + le nom du script
exemple : class Cadre
ensuite il faut que tu crée une méthode, quand tu vas appeler le script, il ira direct sur "def initialize" pour t'expliqué tout ce qui est écrit entre un "def" et un "end" qui suit est appelé méthode
on crée donc la méthode initialize :
def initialize
ensuite on rajoute ce qu'il fut pour faire le cadre : "Window_Base.new(x, y, width, height)"
qu'est ce que ca veut dire ? ca appelle tout simplement la méthode initialize du script Window_Base
ce qui est entre parenthèses est appeler "argument"
ils sont séparés par une virgule, on en a donc 4 ici
le 1er argument : x
tu le remplaces par la position du cadre en partant de la gauche : 0 = tout à gauche
tout à droite = 640
le 2ème argument : y
tu le remplaces par la position du cadre en partant du haut : 0 = tout en haut
tout en bas = 480
le 3ème : width
sache que du ruby c'est de l'anglais dans tous les sens
width signifie "largeur"
le 4ème : height
height siginfie "hauteur"
exemple :
class Cadre
def initialize
Window_Base.new(0, 0, 100, 100)
end
end
voila le début
commencons tout de suite si tu veux
pour faire un script je te conseille d'utiliser les autres scripts ou des bouts de script afin de ne pas avoir à faire tout tout seul
exemple : afficher un cadre sur la map quand un certain interrupteur est activé
pour ca tu te bases sur le script "Window_Base"
tu fait nouveau script au-dessus de main, tu choisis un nom, celui-ci n'auras aucune importance
un script commence souvent par : "class" + le nom du script
exemple : class Cadre
ensuite il faut que tu crée une méthode, quand tu vas appeler le script, il ira direct sur "def initialize" pour t'expliqué tout ce qui est écrit entre un "def" et un "end" qui suit est appelé méthode
on crée donc la méthode initialize :
def initialize
ensuite on rajoute ce qu'il fut pour faire le cadre : "Window_Base.new(x, y, width, height)"
qu'est ce que ca veut dire ? ca appelle tout simplement la méthode initialize du script Window_Base
ce qui est entre parenthèses est appeler "argument"
ils sont séparés par une virgule, on en a donc 4 ici
le 1er argument : x
tu le remplaces par la position du cadre en partant de la gauche : 0 = tout à gauche
tout à droite = 640
le 2ème argument : y
tu le remplaces par la position du cadre en partant du haut : 0 = tout en haut
tout en bas = 480
le 3ème : width
sache que du ruby c'est de l'anglais dans tous les sens
width signifie "largeur"
le 4ème : height
height siginfie "hauteur"
exemple :
class Cadre
def initialize
Window_Base.new(0, 0, 100, 100)
end
end
voila le début
gagner79
Messages postés
261
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
20 décembre 2009
40
9 juil. 2008 à 14:25
9 juil. 2008 à 14:25
oui il est possible d'utiliser une image à la place du windowskin, et c'est facile :
pour afficher une image sur l'écran c'est super simple :
exemple : on importe l'image est dans le dossier Pictures, l'image s'appelle ici "cadre"
le script est le suivant :
@image = Sprite.new
@image.bitmap = RPG::Cache.picture("cadre")
il faut ensuite choisir les coordonnées de l'image :
@image.x = 100
@image.y = 100
l'écran fait 480 pixels de hauteur et 640 de largeur, donc pour mettre l'imag en bas :
@image.y = 480 - la hauteur de l'image
@image.x = 640 - la largeur de l'image
! pour savoir la taille d'une image, il suffit de faire un clique-droit puis Propriétés
ainsi on a crée une image sur l'écran
maintenant il faut pouvoir écrire dessus, on ne pas écrire directement sur l'écran ni directement sur une image, il faut donc le faire sur un cadre, mais comme on en veut pas, on le mettra invisible
créez un cadre comme je vous ai expliqué, à la même position que l'image, et invisible
pour le rendre invisible, on peut utiliser "self.visible = false" mais le probème, c'est qu'on ne verra pas ce qu'il y a dessus non plus !
donc on utilise "self.opacity = 0", pour rendre le cadre totalement invisible, tout en voyant ce qui est écrit dessus
pour écrire la valeur d'une variable :
la valeur d'une variable est donnée pas "$game_variables[numéro de la variable]"
text = $game_variables[numéro de la variable]
self.contents.draw_text(0, 0, 100, 32, text)
vous essayez et ... PROBLEME : la valeur de la variable est un nombre, alors que draw_text sert à écrire une chaîne de caractères ! il faut donc la transformer, pour cela on met ".to_s" :
text = $game_variables[numéro de la variable].to_s
self.contents.draw_text(0, 0, 100, 32, text)
pour afficher une image sur l'écran c'est super simple :
exemple : on importe l'image est dans le dossier Pictures, l'image s'appelle ici "cadre"
le script est le suivant :
@image = Sprite.new
@image.bitmap = RPG::Cache.picture("cadre")
il faut ensuite choisir les coordonnées de l'image :
@image.x = 100
@image.y = 100
l'écran fait 480 pixels de hauteur et 640 de largeur, donc pour mettre l'imag en bas :
@image.y = 480 - la hauteur de l'image
@image.x = 640 - la largeur de l'image
! pour savoir la taille d'une image, il suffit de faire un clique-droit puis Propriétés
ainsi on a crée une image sur l'écran
maintenant il faut pouvoir écrire dessus, on ne pas écrire directement sur l'écran ni directement sur une image, il faut donc le faire sur un cadre, mais comme on en veut pas, on le mettra invisible
créez un cadre comme je vous ai expliqué, à la même position que l'image, et invisible
pour le rendre invisible, on peut utiliser "self.visible = false" mais le probème, c'est qu'on ne verra pas ce qu'il y a dessus non plus !
donc on utilise "self.opacity = 0", pour rendre le cadre totalement invisible, tout en voyant ce qui est écrit dessus
pour écrire la valeur d'une variable :
la valeur d'une variable est donnée pas "$game_variables[numéro de la variable]"
text = $game_variables[numéro de la variable]
self.contents.draw_text(0, 0, 100, 32, text)
vous essayez et ... PROBLEME : la valeur de la variable est un nombre, alors que draw_text sert à écrire une chaîne de caractères ! il faut donc la transformer, pour cela on met ".to_s" :
text = $game_variables[numéro de la variable].to_s
self.contents.draw_text(0, 0, 100, 32, text)
Bonjour, premierement désolé de pas avoir repondu plutot, en ce moment, internet est pas trop disponible (ou plutot, disont que je ne l'ai pas la ou je suis, obligé d'aller chez un pote. Merci pour ces info, je vais essayer, faire ma ptite image et je verrai comment je peux me personaliser tout ça =)
merci beaucoup pour ton aide, j'attend tes prochain post avec impatience =) (sur tout et n'importe quoi, du moment que sa concerne les script, sa m'interesse pour mieu comprendre
merci beaucoup pour ton aide, j'attend tes prochain post avec impatience =) (sur tout et n'importe quoi, du moment que sa concerne les script, sa m'interesse pour mieu comprendre
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gagner79
Messages postés
261
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
20 décembre 2009
40
4 juil. 2008 à 14:27
4 juil. 2008 à 14:27
oui en effet petite erreur de ma part
pour pouvoir voir le cadre sur la map, rajoutez ca à la fin du script :
class Scene_Map
alias cadre_main main
def cadre_main
cadre = Cadre.new
end
alias cadre_update update
def cadre_update
cadre.update
end
end
ensuite revenez dans initialize de Cadre et enlevez ca :
if $game_switches[numéro de l'interrupteur] == true
self.visible = true
else self.visible = false
end
ensuite après le "end"
on va rajouter une méthode qui permet de voir tout le temps le cadre sur la map :
def update
puis le contenu de la méthode :
vous pouvez d'abord rajouter ca pour ne voir le cadre que si un interrupteur est activé :
if $game_switches[numéro de l'interrupteur]
self.visible = true
else self.visible = false
end
n'oubliez pas de remplacer "numéro de l'inteerrupteur" par le numéro de l'interrupteur qui permmettra de voir le cadre
ensuite si vous voulez afficher quelquechose dans le cadre, revenez dans initialize, et rajoutez :
self.contents = Contents.new(self.width - 32, self.height -32)
n'oubliez pas que self renvoie au cadre, self.contents c'est pour pouvoir écrire ou mettre une image sur le cadre
ensuite revenez dans update
et mettez :
self.contents.draw_text(x, y, 100, 32, "Message")
ici on écrit "Message"
remplacez x par la position x du message (x=0 étant tout à gauche du cadre) puis remplacez y de la même facon
puis si ca donne une erreur dites moi laquelle SVP
pour pouvoir voir le cadre sur la map, rajoutez ca à la fin du script :
class Scene_Map
alias cadre_main main
def cadre_main
cadre = Cadre.new
end
alias cadre_update update
def cadre_update
cadre.update
end
end
ensuite revenez dans initialize de Cadre et enlevez ca :
if $game_switches[numéro de l'interrupteur] == true
self.visible = true
else self.visible = false
end
ensuite après le "end"
on va rajouter une méthode qui permet de voir tout le temps le cadre sur la map :
def update
puis le contenu de la méthode :
vous pouvez d'abord rajouter ca pour ne voir le cadre que si un interrupteur est activé :
if $game_switches[numéro de l'interrupteur]
self.visible = true
else self.visible = false
end
n'oubliez pas de remplacer "numéro de l'inteerrupteur" par le numéro de l'interrupteur qui permmettra de voir le cadre
ensuite si vous voulez afficher quelquechose dans le cadre, revenez dans initialize, et rajoutez :
self.contents = Contents.new(self.width - 32, self.height -32)
n'oubliez pas que self renvoie au cadre, self.contents c'est pour pouvoir écrire ou mettre une image sur le cadre
ensuite revenez dans update
et mettez :
self.contents.draw_text(x, y, 100, 32, "Message")
ici on écrit "Message"
remplacez x par la position x du message (x=0 étant tout à gauche du cadre) puis remplacez y de la même facon
puis si ca donne une erreur dites moi laquelle SVP
Rebonjour
bon, j'ai suivi ce que tu as dit, parfois sa bugger, je relisait ce que tu avais écrit, comprenant mieux petit a petit ...
voila, maintenant, le jeu se lance (enfin !!!) mais .... il bug quand je suis a l'ecran titre, une fois que j'ai choisie "nouvelle partie" tou se fige et je reçoit un message d'érreur "Game.exe a rencontré un probème et dois fermer" .... d'ou viens le problème? je te donne mon script, dit moi où j'ai faux stp =) :
class Cadre
def initialize
Window_Base.new(0, 0, 130, 130)
end
end
class Scene_Map
alias cadre_main main
def main
cadre = Cadre.new
end
alias cadre_update update
def update
cadre.update
self.contents.draw_text(0, 0, 100, 32, "hello")
end
end
bon, j'ai suivi ce que tu as dit, parfois sa bugger, je relisait ce que tu avais écrit, comprenant mieux petit a petit ...
voila, maintenant, le jeu se lance (enfin !!!) mais .... il bug quand je suis a l'ecran titre, une fois que j'ai choisie "nouvelle partie" tou se fige et je reçoit un message d'érreur "Game.exe a rencontré un probème et dois fermer" .... d'ou viens le problème? je te donne mon script, dit moi où j'ai faux stp =) :
class Cadre
def initialize
Window_Base.new(0, 0, 130, 130)
end
end
class Scene_Map
alias cadre_main main
def main
cadre = Cadre.new
end
alias cadre_update update
def update
cadre.update
self.contents.draw_text(0, 0, 100, 32, "hello")
end
end
Bonjour,
La règle numéro 6 du forum demande de ne pas rédiger de messages en langage SMS.
Un minimum d’attention dans l’orthographe et la grammaire nous permettrait déjà de comprendre ton message, et éventuellement d’y répondre.
Des logiciels de traitement de texte comme Open Office (ou Word) permettent de corriger les fautes de français, donc ce n’est vraiment pas difficile, même si faire des efforts pour écrire lisiblement n’est pas ta tasse de thé.
Pour répondre a ta question, je te conseille d’aller voir le site officiel de Ruby en France, http://www.rubyfr.org/
Bonne programmation.
La règle numéro 6 du forum demande de ne pas rédiger de messages en langage SMS.
Un minimum d’attention dans l’orthographe et la grammaire nous permettrait déjà de comprendre ton message, et éventuellement d’y répondre.
Des logiciels de traitement de texte comme Open Office (ou Word) permettent de corriger les fautes de français, donc ce n’est vraiment pas difficile, même si faire des efforts pour écrire lisiblement n’est pas ta tasse de thé.
Pour répondre a ta question, je te conseille d’aller voir le site officiel de Ruby en France, http://www.rubyfr.org/
Bonne programmation.
Je n'ai pas très bien compris ^^'
Si il aurait moyen d'avoir de l'aide sur MSN voici mon adresse :
Sore-light@hotmail.fr
Si il aurait moyen d'avoir de l'aide sur MSN voici mon adresse :
Sore-light@hotmail.fr
gagner79
Messages postés
261
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
20 décembre 2009
40
5 juil. 2008 à 14:16
5 juil. 2008 à 14:16
bon, j'ai fait encore quelques erreurs, alors j'ai tout refait de manière plus explicite, et en
approfondissant tout
tout ce qui est après une dièse (#) est un commentaire, il n'est donc pas lu par RPG Maker
tout ce qui est entre "=begin" et "=end" est aussi un commentaire, c'est pareil que mettre des #,
mais ca évite d'en mettre à chaque ligne
=begin
voici une classe :
class Cadre
end
voici une méthode :
def initialize
end
pour l'appeler on met Cadre.new
cette méthode est spéciale et c'est la seule qui est appelée par autre chose que par son nom
voici une méthode traditionelle :
def methode
end
pour l'appeler on met Cadre.methode
ces méthodes ne s'appellent que par leur nom, ici "methode"
! Une méthode se met TOUJOURS dans une classe et JAMAIS dans une autre méthode
voici une superclasse
< Window_Base
une superclasse ce met TOUJOURS juste après le nom de la classe, ici après "class Cadre"
pour appelez cette superclasse, on met "super"
vous constaterez que ça appelle en fait le script Window_Base, on aurait donc très bien pu
mettre "Window_Base.new", quand on appelle Window_Base, on va directement à sa
méthode "initialize", cette méthode nécessite 4 arguments, les voici :
(x, y, width, height)
remplacez x par la coordonnée horizontale du cadre, x=0 étant tout à gauche
remplacez y par la coordonnée verticale du cadre, y=0 étant tout en haut
remplacez width par la largeur du cadre
remplacez height par la hauteur du cadre
"self" renvoie TOUJOURS à quelquechose qu'on a défini AVANT, ici le cadre
pour écrire un message, on met :
self.contents.draw_text(0, 0, 100, 32, message)
remplacez les 4 premiers arguments comme précédemment, et le dernier par le message à
écrire dans le cadre, ENTRE GUILLEMENTS
voici une variable locale :
stock = "Bonjour !"
une variable locale ne peut être utilisée que dans la méthode où elle a été définie
voici une variable d'instance
@stock = "Salut !"
une variable d'instance ne peut être utilisée que dans la classe où elle a été définie mais
peut passer à travers les méthodes de la classe où elle a été définie
voici une variable globale
$stock = "Génial !"
une variable globale peut passer à travers tous les scripts, partout quoi
il existe une autre sorte de variable, très peut utilsée, qui peut passer à travers les méthodes
d'un même script, mais pas entre les scripts :
@@stock = "Bof bof !"
=end
class Cadre < Window_Base #Window_Base = pour créer un cadre
def initialize
super(100, 100, 100, 100) #on crée le cadre
self.contents = Bitmap.new(100 - 32, 100 - 32) #pour pouvoir écrire quelquechose dessus
refresh #on va à "def refresh"
end
def refresh
self.contents.clear #on efface tout
self.contents.draw_text(0, 0, 100, 32, "Message") #on écrit "Message"
end
def update
refresh
end
end #de Cadre
class Scene_Map #quand on est sur la map
#ca c'est un peu plus compliqué (c'est pour copier la méthode "main" du script Scene_Map,
#puis pour faire apparaître le cadre sur la map :
alias cadre_main main
def main
$cadre = Cadre.new
cadre_main
$cadre.dispose
end
alias cadre_update update
def update
$cadre.update
cadre_update
end
end #de Scene_Map
après avoir créé un cadre, on peut le définir et le redéfinir, par exemple :
on crée un événement, puis appeler un script, et on met Cadre.x = 20
le cadre a donc changer de position
il existe beaucoup de petits trucs pour faire des trucs avec les cadres, en voici la liste :
x : changer la position x
exemple : $cadre.x = 20
y : changer la position y
exemple : $cadre.y = 110
width : changer la largeur
exemple : $cadre.width = 200
height : changer la hauteur
exemple : $cadre.height = 80
visible : rendre le cadre visible ou invisible
exemple : $cadre.visible = true (pour rendre le cadre visible)
$cadre.visible = false (pour rendre le cadre invisible)
opacity (ou back_opacity) : changer la transparence (maximum = 255)
exemple : $cadre.opacity = 0 (transparent)
CONTENTS :
contents : pour pouvoir écrire sur un cadre
exemple : $cadre.contents = Bitmap.new($cadre.width - 32, $cadre.height - 32)
($cadre.width - 32 sert à ce qu'on puisse écrire partout sur le cadre, mais qu'on ne
puisse pas déborder)
contents.draw_text : écrire sur le cadre
exemple : $cadre.contents.draw_text(0, 0, 60, 32, "SENSAS !")
contents.blt : afficher une image sur le cadre
exemple : icon = RPG::Cache.icon("021-Potion01")
$cadre.contents.blt(0, 0, icon, Rect.new(0, 0, 24, 24), 250)
(l'image est ici "021-Potion01" d'RPG Maker)
FONT :
contents.font.face : changer la police du cadre
exemple : $cadre.contents.font.face = "Arial"
contents.font.name : changer la taille de la police du cadre
exemple : $cadre.contents.font.size = 12
contents.font.color : changer la couleur de la police du cadre
exemple : $cadre.contents.font.color = Color.new(0, 255, 10, 200)
("Color.new" permet de créer une couleur, voici ses arguments :
le 1er -ici 0- est la dose de rouge
le 2ème -ici 255- est la dose de vert
le 3ème -ici 10- est la dose de bleu
le 4ème -ici 200- est la dose de clairté)
! Ne fonctionne que si c'est dans le script
Il en existe plein d'autres, à vous de les découvrir ! lol
il est aussi possible de connaitre ces informations, exemples :
savoir la position x du cadre :
print $cadre.x
savoir si le cadre est visible ou non :
print $cadre.visible
(si true : il est visible, si false : il est invisible)
! Si vous voulez définir le cadre dans le script,
faites le dans update
Plus tard je vous expliquerai comment créer des
trucs pour les cadres, ce qui est plus difficile
mais un peu plus "amusant".
approfondissant tout
tout ce qui est après une dièse (#) est un commentaire, il n'est donc pas lu par RPG Maker
tout ce qui est entre "=begin" et "=end" est aussi un commentaire, c'est pareil que mettre des #,
mais ca évite d'en mettre à chaque ligne
=begin
voici une classe :
class Cadre
end
voici une méthode :
def initialize
end
pour l'appeler on met Cadre.new
cette méthode est spéciale et c'est la seule qui est appelée par autre chose que par son nom
voici une méthode traditionelle :
def methode
end
pour l'appeler on met Cadre.methode
ces méthodes ne s'appellent que par leur nom, ici "methode"
! Une méthode se met TOUJOURS dans une classe et JAMAIS dans une autre méthode
voici une superclasse
< Window_Base
une superclasse ce met TOUJOURS juste après le nom de la classe, ici après "class Cadre"
pour appelez cette superclasse, on met "super"
vous constaterez que ça appelle en fait le script Window_Base, on aurait donc très bien pu
mettre "Window_Base.new", quand on appelle Window_Base, on va directement à sa
méthode "initialize", cette méthode nécessite 4 arguments, les voici :
(x, y, width, height)
remplacez x par la coordonnée horizontale du cadre, x=0 étant tout à gauche
remplacez y par la coordonnée verticale du cadre, y=0 étant tout en haut
remplacez width par la largeur du cadre
remplacez height par la hauteur du cadre
"self" renvoie TOUJOURS à quelquechose qu'on a défini AVANT, ici le cadre
pour écrire un message, on met :
self.contents.draw_text(0, 0, 100, 32, message)
remplacez les 4 premiers arguments comme précédemment, et le dernier par le message à
écrire dans le cadre, ENTRE GUILLEMENTS
voici une variable locale :
stock = "Bonjour !"
une variable locale ne peut être utilisée que dans la méthode où elle a été définie
voici une variable d'instance
@stock = "Salut !"
une variable d'instance ne peut être utilisée que dans la classe où elle a été définie mais
peut passer à travers les méthodes de la classe où elle a été définie
voici une variable globale
$stock = "Génial !"
une variable globale peut passer à travers tous les scripts, partout quoi
il existe une autre sorte de variable, très peut utilsée, qui peut passer à travers les méthodes
d'un même script, mais pas entre les scripts :
@@stock = "Bof bof !"
=end
class Cadre < Window_Base #Window_Base = pour créer un cadre
def initialize
super(100, 100, 100, 100) #on crée le cadre
self.contents = Bitmap.new(100 - 32, 100 - 32) #pour pouvoir écrire quelquechose dessus
refresh #on va à "def refresh"
end
def refresh
self.contents.clear #on efface tout
self.contents.draw_text(0, 0, 100, 32, "Message") #on écrit "Message"
end
def update
refresh
end
end #de Cadre
class Scene_Map #quand on est sur la map
#ca c'est un peu plus compliqué (c'est pour copier la méthode "main" du script Scene_Map,
#puis pour faire apparaître le cadre sur la map :
alias cadre_main main
def main
$cadre = Cadre.new
cadre_main
$cadre.dispose
end
alias cadre_update update
def update
$cadre.update
cadre_update
end
end #de Scene_Map
après avoir créé un cadre, on peut le définir et le redéfinir, par exemple :
on crée un événement, puis appeler un script, et on met Cadre.x = 20
le cadre a donc changer de position
il existe beaucoup de petits trucs pour faire des trucs avec les cadres, en voici la liste :
x : changer la position x
exemple : $cadre.x = 20
y : changer la position y
exemple : $cadre.y = 110
width : changer la largeur
exemple : $cadre.width = 200
height : changer la hauteur
exemple : $cadre.height = 80
visible : rendre le cadre visible ou invisible
exemple : $cadre.visible = true (pour rendre le cadre visible)
$cadre.visible = false (pour rendre le cadre invisible)
opacity (ou back_opacity) : changer la transparence (maximum = 255)
exemple : $cadre.opacity = 0 (transparent)
CONTENTS :
contents : pour pouvoir écrire sur un cadre
exemple : $cadre.contents = Bitmap.new($cadre.width - 32, $cadre.height - 32)
($cadre.width - 32 sert à ce qu'on puisse écrire partout sur le cadre, mais qu'on ne
puisse pas déborder)
contents.draw_text : écrire sur le cadre
exemple : $cadre.contents.draw_text(0, 0, 60, 32, "SENSAS !")
contents.blt : afficher une image sur le cadre
exemple : icon = RPG::Cache.icon("021-Potion01")
$cadre.contents.blt(0, 0, icon, Rect.new(0, 0, 24, 24), 250)
(l'image est ici "021-Potion01" d'RPG Maker)
FONT :
contents.font.face : changer la police du cadre
exemple : $cadre.contents.font.face = "Arial"
contents.font.name : changer la taille de la police du cadre
exemple : $cadre.contents.font.size = 12
contents.font.color : changer la couleur de la police du cadre
exemple : $cadre.contents.font.color = Color.new(0, 255, 10, 200)
("Color.new" permet de créer une couleur, voici ses arguments :
le 1er -ici 0- est la dose de rouge
le 2ème -ici 255- est la dose de vert
le 3ème -ici 10- est la dose de bleu
le 4ème -ici 200- est la dose de clairté)
! Ne fonctionne que si c'est dans le script
Il en existe plein d'autres, à vous de les découvrir ! lol
il est aussi possible de connaitre ces informations, exemples :
savoir la position x du cadre :
print $cadre.x
savoir si le cadre est visible ou non :
print $cadre.visible
(si true : il est visible, si false : il est invisible)
! Si vous voulez définir le cadre dans le script,
faites le dans update
Plus tard je vous expliquerai comment créer des
trucs pour les cadres, ce qui est plus difficile
mais un peu plus "amusant".
Ok! Merci des renseignement, je vais m'amuser a bidouiller tout ça pour mieux comprendre =)
vivement que tu me disent d'autre chose que l'ont peux faire dans un cadre (mon but étant d'arriver a la fin a faire une belle interface de jeu. et j'aurai une petite question, que je pense, tu y viendra plus tard (voire bien plus tard) c'est comment faire pour creer une interface dans les combat dans un t-rpg, où il serai possible d'utiliser la souris pourcliquer sur les bouton, pour que ce soit plus facile a gerer?
je prescise d'avance mon but: avoir le style de combat du jeu "dofus" (je m'avance, j'utilise des pa pour attaquer, je m'ecarte de l'ennemis pour esquiver les coup). bon, pour le script du combat, j'ai, mais c'est pas tout a fait ça...
(si quelqu'un connai un script qui ferai ça (et pas une seule possibilité de bouger) et qui fait un combat au tour par tour (et pas tout mes joueur, puis tout les ennemis ...) je suis preneur :D
revenons a nos moutons. En plus de tes conseils, j'apprend sur des tutorial, ce qui me permet de mieux comprendre, afin de ne pas trop te deranger sur tout les probleme que je recontre, essayer de les corriger moi-meme et t'envoyer la reponse si besoin :p.
amicalement
vivement que tu me disent d'autre chose que l'ont peux faire dans un cadre (mon but étant d'arriver a la fin a faire une belle interface de jeu. et j'aurai une petite question, que je pense, tu y viendra plus tard (voire bien plus tard) c'est comment faire pour creer une interface dans les combat dans un t-rpg, où il serai possible d'utiliser la souris pourcliquer sur les bouton, pour que ce soit plus facile a gerer?
je prescise d'avance mon but: avoir le style de combat du jeu "dofus" (je m'avance, j'utilise des pa pour attaquer, je m'ecarte de l'ennemis pour esquiver les coup). bon, pour le script du combat, j'ai, mais c'est pas tout a fait ça...
(si quelqu'un connai un script qui ferai ça (et pas une seule possibilité de bouger) et qui fait un combat au tour par tour (et pas tout mes joueur, puis tout les ennemis ...) je suis preneur :D
revenons a nos moutons. En plus de tes conseils, j'apprend sur des tutorial, ce qui me permet de mieux comprendre, afin de ne pas trop te deranger sur tout les probleme que je recontre, essayer de les corriger moi-meme et t'envoyer la reponse si besoin :p.
amicalement
gagner79
Messages postés
261
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
20 décembre 2009
40
>
Cephirius
8 juil. 2008 à 15:18
8 juil. 2008 à 15:18
Qu'est-ce que tu veux faire précisément dans le cadre ?
Cephirius
>
gagner79
Messages postés
261
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
20 décembre 2009
8 juil. 2008 à 20:20
8 juil. 2008 à 20:20
en personellement, je voudrai creer une interface de combat personalisé, donc au lieu d'aller chercher les sort dans un menu, les avoir directement dans le menu que je situerai en bas de l'ecran (si tu vois le jeu "dofus" c'est un tres bon exemple de ce que je voudrai, enfin, juste la barre de sort) je voudrai qu'il y ai aussi les barre de vie/mana (peut etre pas en fait, je ne sais pas encore) et d'autre chose si sa me viens a l'esprit, d'où l'envie de comprendre comment faire pour la reéditer si l'envie se fait sentir...
avec une petite prescision, le cadre, serai il possible d'utiliser une image que je créerai au lieu de l'image de base, afin encore une fois de personalisé l'interface, et pas utiliser que des cadre carré ...
merci =)
avec une petite prescision, le cadre, serai il possible d'utiliser une image que je créerai au lieu de l'image de base, afin encore une fois de personalisé l'interface, et pas utiliser que des cadre carré ...
merci =)
gagner79
Messages postés
261
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
20 décembre 2009
40
26 juil. 2008 à 14:17
26 juil. 2008 à 14:17
=begin
Pour faire un cadre, on utilise Window_Base, donc pour créer un truc qui fera bouger un cadre
d'une façon précise il faut aller dans Window_Base, il faudra mettre :
class Window_Base
Appellons cela "nouveau"
il nous faut pouvoir bouger le cadre à partit d'ailleurs que Window_Base, pour cela on doit mettre
"attr_accessor", et comme on a appelé ça "nouveau", il faudra mettre :
attr_accessor :nouveau
Il existe déja une méthode initialize dans le script Window_Base d'RPG Maker, il va donc falloir
la copier, on utilise "alias" pour copier une méthode existante. Après "alias" il faut rajouter le
nom de la méthode qu'on crée, suivi du nom de la méthode qu'on copie, il faudra mettre :
alias nouveau_initialize initialize
on a mis "nouveau_initialize" mais on aurait très bien pu mettre "salut_ca_va" : ça n'a
absolument aucune importance
quand on change la position d'un cadre par exemple, on va dans la méthode "update", il va
donc falloir copier la méthode "update", de la même façcon que pour la méthose "initialize", il
faudra mettre :
alias nouveau_update update
Quand on créera un cadre, il ne faut pas qu'il fasse directement "nouveau", il faut donc le dire
dans la méthode "initialize" qui, je le rappelle, est appelé quand on crée le cadre, il faudra
mettre :
def initialize
self.nouveau = false
end
Rappel : ici, self renvoie au cadre
Il nous faut appeler dedans la méthode qu'on a copié dans la méthode "initialize", il faudra
mettre :
nouveau_initialize
Une méthode est parfois accompagné d'arguments, ici, c'est la cas, et je vous les rappelle :
le 1er : la coordonnée x
le 2ème : la coordonnée y
le 3ème : la largeur
le 4ème : la hauteur
Il va falloir rajouter ces arguments à la méthode "initialize", et comme "nouveau_initialize" est
une copie identique de la méthode "initialize", il faudra mettre :
def initialize(x, y, width, height)
et :
nouveau_initialize(x, y, width, height)
pour le moment on a donc :
class Window_Base
attr_accessor :nouveau
alias nouveau_initialize initialize
alias nouveau_update update
def initialize(x, y, width, height)
nouveau_initialize(x, y, width, height)
self.nouveau = false
end
end
On a fait la moitié !
Il nous donc maintenant décrire ce que va faire le cadre quand on lui dire de faire "nouveau",
il va d'abord falloir mettre "s'il fait nouveau ?", en ruby, voilà ce que ça donne :
if self.nouveau == true
en anglais, "true" veut dire "vrai", donc si on avait remplacé "true" par "false", le cadre ferait
"nouveau" quand on lui dit pas de le faire et ne le ferait pas quand on lui dit de le faire,
fin bref...
Pour information "if self.nouveau == true" c'est se compliquer la vie, car ruby se dit que s'il voit
"if self.nouveau", c'est pareil, on peut donc mettre en français "si nouveau ?", en ruby :
if self.nouveau
Petite parenthèse :
"if" sert à rentrer une condition, donc tout ce qui suit "if " sur cette ligne est vrai ou faux, donc
"true" ou "false". Au départ le cadre ne fait pas "nouveau" donc si on posait la question
"nouveau ?", il dirait non, donc en ruby :
self.nouveau == true
nous renverrait "false", donc "non", ainsi on peut déterminer si le cadre fait "nouveau" ou non.
Fin de la parenthèse.
Si on dit au cadre de faire "nouveau", il le fera continuellement, jusqu'à ce qu'on lui dit d'arrêter,
pour cela on utilise la méthode "update", il faudra mettre :
def update
if self.nouveau
end
end
vous contasterez qu'une condition se termine par un "end"
On peut mettre un "sinon" à une condition, avec "else", par exemple :
if self.nouveau
#s'il fait nouveau
else
#s'il ne fait pas nouveau
end
Ensuite il faut décrire ce que fera le cadre quand on lui dira de faire "nouveau", de "if" à "end",
par exemple, si vous voulez qu'il se mette au milieu de l'écran, il faudra mettre :
self.x = 320 - self.width / 2
self.y = 240 - self.height / 2
Je vous rappelle que l'écran fait 640 de largeur et 480 de hauteur.
N'oubliez pas de rajouter "nouveau_initialize" dans la méthode "update".
Et voilà ! Terminé !
=end
class Window_Base
attr_accessor :nouveau
alias nouveau_initialize initialize
alias nouveau_update update
def initialize(x, y, width, height)
nouveau_initialize(x, y, width, height)
self.nouveau = false
end
def update
if self.nouveau
self.x = 320 - self.width / 2
self.y = 240 - self.height / 2
end
end
end
Pour faire un cadre, on utilise Window_Base, donc pour créer un truc qui fera bouger un cadre
d'une façon précise il faut aller dans Window_Base, il faudra mettre :
class Window_Base
Appellons cela "nouveau"
il nous faut pouvoir bouger le cadre à partit d'ailleurs que Window_Base, pour cela on doit mettre
"attr_accessor", et comme on a appelé ça "nouveau", il faudra mettre :
attr_accessor :nouveau
Il existe déja une méthode initialize dans le script Window_Base d'RPG Maker, il va donc falloir
la copier, on utilise "alias" pour copier une méthode existante. Après "alias" il faut rajouter le
nom de la méthode qu'on crée, suivi du nom de la méthode qu'on copie, il faudra mettre :
alias nouveau_initialize initialize
on a mis "nouveau_initialize" mais on aurait très bien pu mettre "salut_ca_va" : ça n'a
absolument aucune importance
quand on change la position d'un cadre par exemple, on va dans la méthode "update", il va
donc falloir copier la méthode "update", de la même façcon que pour la méthose "initialize", il
faudra mettre :
alias nouveau_update update
Quand on créera un cadre, il ne faut pas qu'il fasse directement "nouveau", il faut donc le dire
dans la méthode "initialize" qui, je le rappelle, est appelé quand on crée le cadre, il faudra
mettre :
def initialize
self.nouveau = false
end
Rappel : ici, self renvoie au cadre
Il nous faut appeler dedans la méthode qu'on a copié dans la méthode "initialize", il faudra
mettre :
nouveau_initialize
Une méthode est parfois accompagné d'arguments, ici, c'est la cas, et je vous les rappelle :
le 1er : la coordonnée x
le 2ème : la coordonnée y
le 3ème : la largeur
le 4ème : la hauteur
Il va falloir rajouter ces arguments à la méthode "initialize", et comme "nouveau_initialize" est
une copie identique de la méthode "initialize", il faudra mettre :
def initialize(x, y, width, height)
et :
nouveau_initialize(x, y, width, height)
pour le moment on a donc :
class Window_Base
attr_accessor :nouveau
alias nouveau_initialize initialize
alias nouveau_update update
def initialize(x, y, width, height)
nouveau_initialize(x, y, width, height)
self.nouveau = false
end
end
On a fait la moitié !
Il nous donc maintenant décrire ce que va faire le cadre quand on lui dire de faire "nouveau",
il va d'abord falloir mettre "s'il fait nouveau ?", en ruby, voilà ce que ça donne :
if self.nouveau == true
en anglais, "true" veut dire "vrai", donc si on avait remplacé "true" par "false", le cadre ferait
"nouveau" quand on lui dit pas de le faire et ne le ferait pas quand on lui dit de le faire,
fin bref...
Pour information "if self.nouveau == true" c'est se compliquer la vie, car ruby se dit que s'il voit
"if self.nouveau", c'est pareil, on peut donc mettre en français "si nouveau ?", en ruby :
if self.nouveau
Petite parenthèse :
"if" sert à rentrer une condition, donc tout ce qui suit "if " sur cette ligne est vrai ou faux, donc
"true" ou "false". Au départ le cadre ne fait pas "nouveau" donc si on posait la question
"nouveau ?", il dirait non, donc en ruby :
self.nouveau == true
nous renverrait "false", donc "non", ainsi on peut déterminer si le cadre fait "nouveau" ou non.
Fin de la parenthèse.
Si on dit au cadre de faire "nouveau", il le fera continuellement, jusqu'à ce qu'on lui dit d'arrêter,
pour cela on utilise la méthode "update", il faudra mettre :
def update
if self.nouveau
end
end
vous contasterez qu'une condition se termine par un "end"
On peut mettre un "sinon" à une condition, avec "else", par exemple :
if self.nouveau
#s'il fait nouveau
else
#s'il ne fait pas nouveau
end
Ensuite il faut décrire ce que fera le cadre quand on lui dira de faire "nouveau", de "if" à "end",
par exemple, si vous voulez qu'il se mette au milieu de l'écran, il faudra mettre :
self.x = 320 - self.width / 2
self.y = 240 - self.height / 2
Je vous rappelle que l'écran fait 640 de largeur et 480 de hauteur.
N'oubliez pas de rajouter "nouveau_initialize" dans la méthode "update".
Et voilà ! Terminé !
=end
class Window_Base
attr_accessor :nouveau
alias nouveau_initialize initialize
alias nouveau_update update
def initialize(x, y, width, height)
nouveau_initialize(x, y, width, height)
self.nouveau = false
end
def update
if self.nouveau
self.x = 320 - self.width / 2
self.y = 240 - self.height / 2
end
end
end
https://rpgfusionv2.1fr1.net/t5756-apprendre-le-ruby-rgss
Intègre les bases du ruby ;)
Intègre les bases du ruby ;)
gagner79
Messages postés
261
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
20 décembre 2009
40
5 juil. 2008 à 14:13
5 juil. 2008 à 14:13
alors oui je vois le problème
il fallait créer une méthode update dans la classe Cadre, afin d'y mettre self.contents.draw_text(0, 0, 100, 32, "hello")
la classe Scene_Map sert juste à mettre le cadre sur la map, donc pas besoin d'y toucher, autre chose d'important :
il faut toujours mettre
self.contents = Bitmap.new(width - 32, height - 32)
pour pouvoir écrire quelquechose sur la map, et remplacer width par la largeur que tu as choisi et height par la taille du cadre
de plus je m'étais un peu trompé dans mes explications désolé
voici donc la correction :
class Cadre
def initialize
Window_Base.new(0, 0, 130, 130)
self.contents = Bitmap.new(130 - 32, 130 - 32)
end
def refresh
self.contents.clear #on efface tout
self.contents.draw_text(0, 0, 100, 32, "hello") #on écrit "hello"
end
def update
refresh #renvoie à def refresh
end
end
class Scene_Map
alias cadre_main main
def main
cadre = Cadre.new
cadre_main
cadre.dispose
end
alias cadre_update update
def update
cadre.update
cadre_update
end
end
il fallait créer une méthode update dans la classe Cadre, afin d'y mettre self.contents.draw_text(0, 0, 100, 32, "hello")
la classe Scene_Map sert juste à mettre le cadre sur la map, donc pas besoin d'y toucher, autre chose d'important :
il faut toujours mettre
self.contents = Bitmap.new(width - 32, height - 32)
pour pouvoir écrire quelquechose sur la map, et remplacer width par la largeur que tu as choisi et height par la taille du cadre
de plus je m'étais un peu trompé dans mes explications désolé
voici donc la correction :
class Cadre
def initialize
Window_Base.new(0, 0, 130, 130)
self.contents = Bitmap.new(130 - 32, 130 - 32)
end
def refresh
self.contents.clear #on efface tout
self.contents.draw_text(0, 0, 100, 32, "hello") #on écrit "hello"
end
def update
refresh #renvoie à def refresh
end
end
class Scene_Map
alias cadre_main main
def main
cadre = Cadre.new
cadre_main
cadre.dispose
end
alias cadre_update update
def update
cadre.update
cadre_update
end
end
gagner79
Messages postés
261
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
20 décembre 2009
40
8 août 2008 à 15:15
8 août 2008 à 15:15
Voici maintenant un truc super important : les variables (pas celles de rpg maker, celles de Ruby)
Il en existe 4 types :
(type : - nom
- exemple
- où on peut l'utiliser)
1er type : - variable locale
- variable
- dans la méthode où on l'a définie uniquement
2ème type : - variable d'instance
- @variable
- dans la classe où on l'a définie uniquement
3ème type : - variable inter-méthodes (ou un truc du genre)
- @@variable
- dans le script où on l'a définie uniquement
4ème type : - variable globale
- $variable
- partout
Notez que le 3ème type est très peu utilisé, vous pouvez l'oublier.
maintenant pour donner une valeur à une variable, c'est simple :
variable1 = 2
là, la variable" variable1" a pour valeur 2 (donc un nombre, en Ruby c'est ce qu'on appelle un INTEGER)
variable2 = "bonjour"
là, la variable" variable2" a pour valeur "bonjour" (donc un nombre, en Ruby c'est ce qu'on appelle un STRING)
variable3 = "2"
là, la variable "variable3" a pour valeur "2" (un string aussi car il est entre guillemets)
variable4 = variable1
là, la variable "variable4" a pour valeur la variable "variable1", donc 2
maintenant pour additioner 2 variables (qui ont pour valeur des INTEGER) :
variable1 = 1
variable2 = 2
variable3 = variable1 + variable2
là, la variable "variable3" a pour valeur 3 (1 + 2)
c'est pareil pour soustraire, multiplier, etc.
maintenant pour faire une concaténation (addition de STRING) :
variable1 = "bonjour" + " monsieur"
là, la variable "variable1" a pour valeur "bonjour monsieur"
donc vous l'avez compris, c'est pareil pour additioner 2 variables qui ont pour valeurs des STRING :
variable1 = "bonjour"
variable2 = " monsieur"
variable3 = variable1 + variable2
la variable "variable3" a donc pour valeur "bonjour monsieur"
C'est tout... pour le moment ! :D
Il en existe 4 types :
(type : - nom
- exemple
- où on peut l'utiliser)
1er type : - variable locale
- variable
- dans la méthode où on l'a définie uniquement
2ème type : - variable d'instance
- @variable
- dans la classe où on l'a définie uniquement
3ème type : - variable inter-méthodes (ou un truc du genre)
- @@variable
- dans le script où on l'a définie uniquement
4ème type : - variable globale
- $variable
- partout
Notez que le 3ème type est très peu utilisé, vous pouvez l'oublier.
maintenant pour donner une valeur à une variable, c'est simple :
variable1 = 2
là, la variable" variable1" a pour valeur 2 (donc un nombre, en Ruby c'est ce qu'on appelle un INTEGER)
variable2 = "bonjour"
là, la variable" variable2" a pour valeur "bonjour" (donc un nombre, en Ruby c'est ce qu'on appelle un STRING)
variable3 = "2"
là, la variable "variable3" a pour valeur "2" (un string aussi car il est entre guillemets)
variable4 = variable1
là, la variable "variable4" a pour valeur la variable "variable1", donc 2
maintenant pour additioner 2 variables (qui ont pour valeur des INTEGER) :
variable1 = 1
variable2 = 2
variable3 = variable1 + variable2
là, la variable "variable3" a pour valeur 3 (1 + 2)
c'est pareil pour soustraire, multiplier, etc.
maintenant pour faire une concaténation (addition de STRING) :
variable1 = "bonjour" + " monsieur"
là, la variable "variable1" a pour valeur "bonjour monsieur"
donc vous l'avez compris, c'est pareil pour additioner 2 variables qui ont pour valeurs des STRING :
variable1 = "bonjour"
variable2 = " monsieur"
variable3 = variable1 + variable2
la variable "variable3" a donc pour valeur "bonjour monsieur"
C'est tout... pour le moment ! :D
3 juil. 2008 à 23:05
me mettant dans la creation de script (où je debute) j'ai suivie ta demarche, j'ai pas tout compris au debut, mais en touchant un peu le script (a peine vu mon niveau ^^) je suis parvenu a faire apparaitre un cadre (sauf que je n'utilise pas :
if $game_switches[numéro de l'interrupteur] == true
self.visible = true
else self.visible = false
end
cela me faisait une erreur, si tu pouvais m'expliquer plus en detail, sa serai simpa =)
et autre chose, cette fenêtre que je fait apparaitre... disparait quelques seconde après :/ pourquoi?
merci d'avance =)
21 avril 2011 à 08:41
26 avril 2011 à 21:38