Heures au format UTC + 1 heure [ Heure d’été ]


Règles du forum


Consultez la liste des Scripts : cliquez ici



Publier un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: Introduction AVANT le Menu
MessagePublié: 19 Fév 2010, 18:02 
Villageois (Nv 1)

Inscrit le: 09 Juil 2008, 00:00
Messages: 3
Points d'aide: 0/60

Créations :

Voir ses créations

Bien le bonjours !

Vous cherchez absolument le moyen de faire une Introduction avant l'apparition du Menu de votre jeu ? Eh bien ne cherchez plus, ceci est pour vous ! ;)

Je vous propose un script permettant de faire défiler des images, avec une bande son et optionnellement un texte, le tout AVANT l'apparition du Menu.

Auteur : Danny Coulombe

1. Créez un nouveau script, au-dessus de Main, et nommez-le Scene_Intro.
Copiez/collez ce code dedans :

Code: Tout sélectionner
#=================================
#Scene_Intro
#------------------------------------------------------------------
#Les images doivent etres mise dans le dossier "Pictures"
#=================================

class Scene_Intro

#-----------------------------------------------------------------
  def main
    $data_system        = load_data("Data/System.rxdata")
    $game_system = Game_System.new
    @start_time = Time.now
    #---------------------------------
    pictures=["Image1", "Image2", "Image3", "Image4", "Image5", "Image6", "Image7"]
    @pic_start_array=[4.4,4.5,4.6,4.7,4.8,4.9,5] # Vitesse d'apparition
    @pic_end_array=[4.5,4.6,4.7,4.8,4.9,5,5.1] # Vitesse de disparition
    #---------------------------------
    x_list=[0,0,0,0,0,0,0] # Axe X des images
    #------------------------------------
    y_list=[0,0,0,0,0,0,0] # Axe Y des images
   
    @fade_in_speed=[250,250,250,250,250,250,250] # Vitesse de fondu (!! 0 = l'image n'apparait pas ; 250 = pas de fondu)
    @pic_array=Array.new
    for i in 0...pictures.size
      sprite=Sprite.new
      sprite.bitmap=RPG::Cache.picture("" + pictures[i])
      sprite.opacity=0
      sprite.x=x_list[i]
      sprite.y=y_list[i]
      sprite.z=9997
      @pic_array[i]=sprite
    end
    strings=["Engagez-vous dans l'aventure !"] # Message
    @win=Window_Base.new(0,480,640,64 * strings.size  )
    @win.contents=Bitmap.new(@win.width-32,@win.height-32)
    @win.contents.font.name="Arial" # Police du message
    @win.contents.font.size=28 # Taille de la police
    @win.opacity=0 # Opacité de la fenêtre de message
    @win.z=9998
    @win.contents.font.color=Color.new(234,236,147,200) # Couleur du message (code RVB : 1er nbre = Rouge ; 2nd nbre = Vert ; 3eme nbre = Bleu ; 4eme nbre = Saturation)
    for i in 0...strings.size
      cw=@win.contents.text_size(strings[i]).width
      @win.contents.draw_text(@win.contents.width/2 - cw/2,64*i,cw,32,strings[i])
    end
   @skip_enabled = false
    for i in 0..3
      if FileTest.exist?("Save#{i+1}.sav")
        @skip_enabled = true
      end
    end
    if $DEBUG
      @skip_enabled=true
    end
    #----------------------------
    Audio.bgm_play("Audio/BGM/001-Battle01", 150, 100) # Son de l'introduction ; Volume ; Tempo
    Graphics.transition
    @go_to_title=false
    @every_other=0
    loop do
      if @go_to_title
        break
      end
      Graphics.update
      Input.update
      $game_system.update
      update
    end
    Graphics.freeze
    for i in 0...@pic_array.size
      @pic_array[i].dispose
    end
    @win.dispose
    $scene=Scene_Title.new
  end

#-----------------------------------------------------------------
  def update
    if Input.trigger?(Input::C) and @skip_enabled
      $game_system.se_play($data_system.cancel_se)
      @go_to_title= true
    end
    if Time.now >= @start_time + 85
      @go_to_title = true
    end
    if Time.now <= @start_time + 38 or Time.now >= @start_time +77
      phase_1
    end
    if Time.now >= @start_time + 33
      phase_2
    end
  end

#-----------------------------------------------------------------
  def phase_1
    for i in 0...@pic_array.size
      time = Time.now - @start_time
      if  time >= @pic_start_array[i] and time <= @pic_end_array[i]
        @pic_array[i].opacity +=@fade_in_speed[i]
      else
        @pic_array[i].opacity -= @fade_in_speed[i]
      end
    end
  end

#-----------------------------------------------------------------
  def phase_2
    @every_other+=1
    if @every_other % 2 ==1
        @win.y -= 1
    end
  end
   
end # Scene_Intro

#---------------------------------
# | Utilisation |
#---------------------------------
# Ligne 15:Ici les noms des images
# Ligne 16:Ici la vitesse par laquelle les images apparaitrons [Par ordre]
# Ligne 17:Ici la vitesse par laquelle les images disparaitrons [Par ordre]
# Ligne 19:Ici les axes x ou les images apparaitrons [Par ordre]
# Ligne 21:Ici les axes y ou les images apparaitrons [Par ordre]
# Ligne 23:Ici la vitesse du fondu[Par ordre]
# Ligne 34:Ici un message (n'écrivez rien si vous ne souhaitez pas en mettre)
# Ligne 37:Ici la police du message
# Ligne 38:Ici la taille de la police du message
# Ligne 39:Ici l'opacité de la fenetre du message
# Ligne 41:Ici la couleur du message
# Ligne 56:Ici la musique de l'intro
#
#NOTE:Les images doivent être mise dans le dossier "Pictures"


2. Rendez-vous dans le script Main, et remplacez à la ligne 15 :

Code: Tout sélectionner
  $scene = Scene_Title.new


par :

Code: Tout sélectionner
  $scene = Scene_Intro.new


3. Comment ça marche ?
J'ai pris la liberté de corriger le script et de rajouter les instructions à la fin et dans le script, mais je vous les rajoute ici :

Pour faire fonctionner votre Introduction, il vous faudra modifier le script à certaines lignes :

Ligne 15 : Ici les noms des images. À ma connaissance, vous pouvez ajouter autant d'image que vous le voulez. Vous pouvez également ne mettre qu'une seule image.
Ligne 16 : Ici la vitesse d'apparition des images. Cela correspond plus au "moment" d'apparition, dans l'ordre des images (1er nombre = 1ère image, 2ème nombre = 2ème image, etc...). Plus le nombre est grand, plus l'apparition sera tardive.
Ligne 17 : Ici la vitesse de disparition des images. Cela correspond plus au "moment" de disparition, dans l'ordre des images. Plus le nombre est grand, plus la disparition sera tardive.
Ligne 19 : Ici les axes X ou les images apparaitrons, dans l'ordre des images
Ligne 21 : Ici les axes Y ou les images apparaitrons, dans l'ordre des images
Ligne 23 : Ici la vitesse de fondu, qui correspond plus aux vraies vitesses d'apparition et de disparition. Plus le nombre est grand, plus le fondu sera rapide. Attention : à 250, le fondu n'est pas visible, mais à 0, l'image n'apparait pas !
Ligne 34 : Ici un message (n'écrivez rien si vous ne souhaitez pas en mettre)
Ligne 37 : Ici la police du message
Ligne 38 : Ici la taille de la police du message
Ligne 39 : Ici l'opacité de la fenêtre du message
Ligne 41 : Ici la couleur du message (nuances de Rouge, Vert, Bleu, Saturation)
Ligne 56 : Ici la musique de l'Introduction (dans BGM)

Les images doivent être placées dans le dossier "Pictures" !

J'ai un problème avec les vitesses des images !

En effet, le script est un peu "balourd" dans les lignes 16 et 17. Si vous prenez une vitesse inférieur à 3.5, l'image n'apparaitra pas. De même, si une image à une vitesse d'apparition supérieure à la vitesse de disparition, elle n'apparaitra pas également.

Je souhaite faire une Introduction façon "petit film"

Pour cela, commencez par mettre toutes vos images en fondu 250 (ligne 23).
Ensuite, changez la vitesse d'apparition de votre première image en 3.5 (! attention à ne pas confondre le point . et la virgule , si vous mettez des virgules, le script considérera que vous passez à la programmation de la vitesse de l'image SUIVANTE !) et sa vitesse de disparition en 3.6. Votre second image devra avoir une vitesse d'apparition de 3.6 et une vitesse d'apparition de 3.7. L'image suivante apparaitra en 3.7 et disparaitra en 3.8, etc...
Je ne peux pas exactement dire à quelle mesure de temps ses "vitesses" correspondent. Elle est trop longue pour être en frame, mais trop rapide pour être en seconde. Mais n'ayez pas d'inquiétude : en l'utilisant, vous saurez tout de suite doser la vitesse de chacune de vos images selon votre projet d'introduction.

Remarque : pour arrêter l'introduction, cliquer sur Entrée.


Haut
 Profil  
 
Afficher les messages depuis:  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure [ Heure d’été ]


Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invités


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Rechercher pour:
Sauter vers:  
cron
RPG Creative Forum version 5 ; Tous droits réservés
phpBB Group (Traduit par Xaphos)
Optimisé pour une résolution 1024*728