AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



Le Deal du moment :
Cdiscount : -30€ dès 300€ ...
Voir le deal

Partagez
 

 Cours #5 : Premiere approche du RGSS2.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3
AuteurMessage
yamazaki
Illusionniste Lv.12
Illusionniste Lv.12
avatar


Masculin Age : 33
Inscrit le : 27/12/2008
Messages : 757

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeLun 23 Fév 2009 - 13:30

ça ne change rien que ce soit au début où à la fin chez moi c'est à la fin
Revenir en haut Aller en bas
http://mods-jeu-rpg.forumactif.org
ASHKA
Voyageur Lv.10
Voyageur Lv.10
avatar


Masculin Age : 41
Inscrit le : 04/12/2008
Messages : 383

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeLun 23 Fév 2009 - 13:52

Oui, dans le script corrigé que je lui ai envoyé par MP, c'etait au debut, c'est pour ça.
Mais effectivement, ça ne change rien, enfin, pas là en tout cas.

ASHKA
Revenir en haut Aller en bas
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeDim 29 Mar 2009 - 16:43

Alors, plusieur demande,
Pourriez-vous m'expliquez ces lignes :
Code:
@sprite.bitmap.draw_text(@sprite.bitmap.rect.set(0, 0, @w, (@h-50)/2), text.to_s,1)
Là, le log il fait quoi ?
Sachant que toutes les variables qu'il faut existe !
Code:
if w.nil? ; @w = RPGman::LARGEUR ; else ; @w = w ; end
Là les ; sa veut dire alors ou sinon x]
(Façon très bizarre de faire des conditions d'ailleur)

HS : Tin c'est une horreur ce script O.o
C'est mal espacé et tout :depression:
Dire qu'il va falloir que je le comprenne...
Revenir en haut Aller en bas
berka
Maire Lv.9
Maire Lv.9
berka


Masculin Age : 33
Inscrit le : 15/10/2008
Messages : 351

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeDim 29 Mar 2009 - 17:01

c'est simple si on décortique:
Code:
@sprite.bitmap.draw_text(@sprite.bitmap.rect.set(0, 0, @w, (@h-50)/2), text.to_s,1)
un sprite a été créé et instancié
Code:
@sprite=Sprite.new
or, la classe sprite possède une méthode bitmap, appelant la classe Bitmap
Code:
@sprite.bitmap=Bitmap.new(32,32)
or Bitmap possède une méthode draw_text, comportant comme arguments:
1) x,y,w,h ou la classe: Rect.new(x,y,w,h) qui définit le positionnement du texte à afficher
2) une chaine, donc la classe String: le texte à afficher
3) l'alignement 0:gauche 1:centré 2: droite avec 0 par défaut

bon, maintenant intéressons nous au rectangle de positionnement.
on sait que la classe bitmap possede une méthode nommée rect, instanciant la classe Rect (rectangle)
on a donc:
Code:
@sprite.bitmap.rect
qui renvoie un objet rect, donc un tableau de x,y,w,h
or la classe Rect possède une méthode nommée set, permettant de définir un rectangle, un peu comme dans son initialisation: Rect.new(x,y,w,h) == @rect.set(x,y,w,h)
sauf que là, le rectangle existe déja, vu qu'il est appelé par la classe bitmap (bitmap.rect) elle meme appelée par sprite (sprite.bitmap.rect)

Voila tout !
pourquoi on a pas créé un nouvel objet Rect ?
facile, ici, on modifie et on agit directement sur le bitmap instancié par sprite...

__________________________________________________________

pour les ";" comme en C, ";" signifie: fin de ligne, retour à la ligne
donc:
Code:
if a;p 'vrai';else;p 'faux';end
est la meme chose que :
Code:
if a
p 'vrai'
else
p 'faux
end
Mais RPGman aurait du utiliser un opérateur terniaire, plus propre, plus efficace, plus pro ^^
Code:
if w.nil? ; @w = RPGman::LARGEUR ; else ; @w = w ; end
deviendrait:
Code:
w.nil? ? @w = RPGman::LARGEUR : @w = w

Je sais pas si j'ai été super clair, mais je suis un peu claqué ^^

berka
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeDim 29 Mar 2009 - 17:07

Ok pour les rectangles et les triangles j'ai compris !
(Vraiment une façon bizzare de scripter lui...)
Par contre
Code:
if a
p 'vrai'
else
p 'faux
end
Là a est un interrupteur ?
Code:
if a == true
  print "vrai"
else
  print "faux"
end
Et aussi,
a.nil?
Ca veut dire quoi O.o
Revenir en haut Aller en bas
berka
Maire Lv.9
Maire Lv.9
berka


Masculin Age : 33
Inscrit le : 15/10/2008
Messages : 351

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeDim 29 Mar 2009 - 17:29

ah ouais, j'ai pas été très clair là-dessus !

En gros, toute variable non déclarée renvoie nil.
Donc toute variable vraie renvoie true et donc pas nil, vu "qu'elle n'est pas rien"
donc, en ruby on peut écrire une condition sans les mots clés nil true false:
if a == true équivaut à if a
if a == false équivaut à if !a ou if not a

et par convention, les nom de méthodes qui se terminent par ? revoient un booléen, c'est-à-dire soit true soit false:
la méthode:
a.nil? evalue a et renvoie true si a = nil et false si a != nil
on pourrait faire:
Code:
if a.nil? == true
mais c'est moche et inutile

berka
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeVen 1 Mai 2009 - 12:26

Et encore une question :depression:
A quoi sert la methode .times ?
J'ai beau chercher un peu partout je ne trouve pas à quoi ça sert ni ce que cela fait...
Merci de votre aide Embarassed

EDIT :
Sa fonctionne pas un peu comme le for ?
Revenir en haut Aller en bas
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 41
Inscrit le : 26/05/2008
Messages : 2360

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeLun 4 Mai 2009 - 18:31

Ça dépend d'où tu la sort cette fonction.. C'ets soit la multiplication si tu sort ça de Math (ie Math.times) ou une fonction qui te donne l'heure du système... Bref, soit plus précis..
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeLun 4 Mai 2009 - 18:41

Bah
Code:
var = 8
var.times {
# Commande
}
Revenir en haut Aller en bas
berka
Maire Lv.9
Maire Lv.9
berka


Masculin Age : 33
Inscrit le : 15/10/2008
Messages : 351

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeMar 5 Mai 2009 - 16:14

parfaitement 'légal', Miraino.

la méthode times admet un bloc itérateur:
10.times{
#bloc exécuté 10 fois
}

avec meme un passage d'argument:
10.times{|i|
puts 1
}
ce qui affiche les nombres i de 0 à 10-1
donc sur l'intervale exlusif a droite : [0...var]
en gros, c'est une sorte de Integer#upto(max)

berka
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeMar 5 Mai 2009 - 16:24

Nan c'est en Ruby
Librairie Gosu :
Un bout de jeu :
Code:
      move_x.times {
      if would_fit(1, 0)
         @x += 1
      end }
Revenir en haut Aller en bas
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 41
Inscrit le : 26/05/2008
Messages : 2360

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeMar 5 Mai 2009 - 17:07

LOL, ok, j'ai vu mon erreur. Foutu IRB qui supporte pas le raccourcis normale des touches pour {}. Mon erreur. Librairie standard. Donc au minimum 3 possibilité si non utilisé par d'autre librairies.

Répétition.
Multiplication.
Étiquette de temps.

Dans ton code, c'est une répétition. En fait il vérifie que ça entre dans la fenêtre et bouge l'abcisse de 10 si ça entre dans la fenêtre si on se fit uniquement à ce que tu nous affiche ici.
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeMar 5 Mai 2009 - 17:12

Ok c'est bien ce que je pensais =)
Merci beaucoup pour votre aide !
Et a bientôt je pense x]
Revenir en haut Aller en bas
berka
Maire Lv.9
Maire Lv.9
berka


Masculin Age : 33
Inscrit le : 15/10/2008
Messages : 351

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeMar 5 Mai 2009 - 18:14

pour activer les touches spéciales, il faut que tu lances irb comme ceci:
Code:
irb --noreadline
berka


Dernière édition par berka le Mar 5 Mai 2009 - 18:46, édité 1 fois
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 41
Inscrit le : 26/05/2008
Messages : 2360

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeMar 5 Mai 2009 - 18:17

Thanks berka, ce sera très très très très pratique. Un grand merci.
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
mankill
Poulet carnivore Lv.2
Poulet carnivore Lv.2
mankill


Inscrit le : 18/05/2009
Messages : 13

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeDim 13 Sep 2009 - 15:06

Bonjour tout le monde.

Je ne comprend pas ce qu'il faut rajouter a mon code pour qu'il affiche un message dans
la petite fenetre.

Code:

class Scene_Test < Scene_Base
 
  def start
    @fenetre = Window_Base.new(0, 0, 544, 416)
    @fenetre2 = Window_Base.new(((544/2)-(200/2)), ((416/2)-(100/2)), 200, 100)
  end
 
  def terminate
    @fenetre.dispose
    @fenetre2.dispose
  end
 
  def update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    end
  end
 
end

Que faut t'il rajouter s'il vous plait j'ai pas comprit sur le tuto.

Merci !
Revenir en haut Aller en bas
berka
Maire Lv.9
Maire Lv.9
berka


Masculin Age : 33
Inscrit le : 15/10/2008
Messages : 351

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeDim 13 Sep 2009 - 15:32

Window_Base n'est pas une fenetre pouvant etre appelée directement, elle sert de support pour afficher du contenu et créer des fenetre filles.

berka
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
Gothor
Chevalier Lv.17
Chevalier Lv.17
Gothor


Masculin Age : 31
Inscrit le : 27/04/2008
Messages : 1835

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeDim 13 Sep 2009 - 15:38

Mmmmmh, donc on est obligé d'appeler une fenêtre comme ça?

Code:
class Scene_Truc < Scene_Base
  def start
      @fenetre = Window_Truc.new
  end
  def terminate
      @fenetre.dispose
  end
  def update
      if Input.trigger?(Input::B)
        Sound.play_cancel
        $scene = Scene_Map.new
      end
  end
end

class Window_Truc < Window_Base
  def initialize
      super(0,0,544,416)
      write_text
  end
  def write_text
      text = "Coucou, c'est le texte!"
      self.contents.draw_text(new_rect,text,1)
  end
  def new_rect
      return Rect.new(0,0,544-32,416-32)
  end
end

Tout ça juste pour ouvrir une fenêtre et y afficher du texte?
N'y a-t-il pas moyen d'ouvrir cette fenêtre directement à partir du scene (excepté les fenêtres de choix)?
Revenir en haut Aller en bas
berka
Maire Lv.9
Maire Lv.9
berka


Masculin Age : 33
Inscrit le : 15/10/2008
Messages : 351

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeDim 13 Sep 2009 - 18:46

Tu peux utiliser la Window_Help, qui permet d'afficher une ligne de texte à la volée, dans une scene.

Code:

class Scene_Truc
  def main
      @texte = Window_Help.new
      @texte.set_text("Mon texte: tralalala")
  end
  def update
      @texte.update
  end
end

berka
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 41
Inscrit le : 26/05/2008
Messages : 2360

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeLun 14 Sep 2009 - 14:40

Comme Berka a dit Gothor, En fait, l'idée c'est que tu gères le clavier de la façon dont tu t'y prends. Tu n'as pas nécessairement besoin d'avoir une fenêtre qui gère le clavier. Dans ce cas, Tu as Window Help ou Window Message. C'est à toi de voir ce que tu veux faire globalement.
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
mankill
Poulet carnivore Lv.2
Poulet carnivore Lv.2
mankill


Inscrit le : 18/05/2009
Messages : 13

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeLun 2 Nov 2009 - 15:45

Bonjour.
Moi pour mon script j'ai un problème (pas bien grave mais j'aimerais comprendre)
Quand je met
Code:

class Scene_Test < Scene_Base
  def start
  end
  def terminate
  end
  def update
    if Imput.trigger?(Input::B)
      Sound.play_cancel
      $scene = nil
    else if Input.trigger?(Input::C)
      Sound.play_select
      $scene = Scene_Map.new
    end
  end
end
Sa ne fonctionne pas mais quand je met
Code:

class Scene_Test < Scene_Base
  def start
  end
  def terminate
  end
  def update
    if Imput.trigger?(Input::B)
      Sound.play_cancel
      $scene = nil
    else if Input.trigger?(Input::C)
      Sound.play_select
      $scene = Scene_Map.new
    end
  end
end
end
Sa fonctionne. Il y a pourtant un "end" en trop non ?
Neutral scratch
Revenir en haut Aller en bas
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeLun 2 Nov 2009 - 16:05

Non il n'y a pas de end en trop ^^
A la ligne 10
Code:
else if Input.trigger?(Input::C)
Tu créer une nouvelle condition, qui requit, une end !
Mais différent du end de "else"
Tu me suis ?
Bref, si tu veux enlever un end
met
Code:
elsif Input.trigger?(Input::C)
Qui lui a le même end que le else

Désolé si c'est pas très clair ^^'

EDIT Block' : =P


Dernière édition par La Meche le Lun 2 Nov 2009 - 16:08, édité 1 fois
Revenir en haut Aller en bas
Blockade
Ex-Admin Cruelle
Ex-Admin Cruelle
Blockade


Féminin Age : 32
Inscrit le : 03/07/2008
Messages : 2441

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeLun 2 Nov 2009 - 16:07

Tu confond elsif et else et if.
Pour Rmvx ton premier morceau de code correspond à ca :
Code:
class Scene_Test < Scene_Base
  def start
  end
  def terminate
  end
  def update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = nil
    else
    if Input.trigger?(Input::C)
      Sound.play_select
      $scene = Scene_Map.new
    end
  end
end
Et le deuxiéme :
Code:

class Scene_Test < Scene_Base
  def start
  end
  def terminate
  end
  def update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = nil
    else
    if Input.trigger?(Input::C)
      Sound.play_select
      $scene = Scene_Map.new
    end
  end
end
end
Tu vois pourquoi le deuxième marche et pas le premier maintenant ?

Ca que tu veux faire à mon avis c'est :
Code:

class Scene_Test < Scene_Base
  def start
  end
  def terminate
  end
  def update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = nil
    elsif Input.trigger?(Input::C)
      Sound.play_select
      $scene = Scene_Map.new
    end
  end
end

T'a compris ? ^^

Sinon, c'est Input et pas Imput, et dans ton exemple vu que y'a rien dans start et terminate ca sert à rien de le mettre !

Edit : Grilée =(
Revenir en haut Aller en bas
mankill
Poulet carnivore Lv.2
Poulet carnivore Lv.2
mankill


Inscrit le : 18/05/2009
Messages : 13

Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitimeMar 3 Nov 2009 - 14:07

A oui c'est vrai c'est elsif... mais depuis que je connais le langage C, et C++ j'ai l'habitude de mettre else if. Merci. (pour Input je sait mais j'ai suivit les regles de français lol...)
Revenir en haut Aller en bas
Contenu sponsorisé




Cours #5 : Premiere approche du RGSS2. - Page 3 Empty
MessageSujet: Re: Cours #5 : Premiere approche du RGSS2.   Cours #5 : Premiere approche du RGSS2. - Page 3 Icon_minitime

Revenir en haut Aller en bas
 

Cours #5 : Premiere approche du RGSS2.

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 3 sur 3Aller à la page : Précédent  1, 2, 3

 Sujets similaires

-
» demande une aide sur une approche d'un sound
» RGSS 2 : Créer un fichier et à condition que ce fichier existe
» RGSS2 / Ruby
» [Résolu]RGSS2 - Game_Party
» [Abandonné] RGSS2 cesse de fonctionner

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Apprentissage :: Archives des anciens cours :: Cours de RGSS2-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit