Partagez
Aller en bas
avatar
Master of Dragons
Membre

Nombre de messages : 200
Age : 26
Localisation : Toujours là (même absent)
Distinction : aucune
Date d'inscription : 28/07/2010

Sauter l'écran titre2

le Jeu 29 Déc 2011 - 23:11
Voilà, j'ai commencé à me mettre au RGSS3. Donc j'ai repris un de mes scripts : celui qui permet de sauter l'écran titre.

/!\ Script en deux phases


Voilà, vous placez ça sous "Matérial" (ou "▼ 素材" en japonais) et à nommer comme bon vous semble :

Code:
#Script de Master of Dragons
#Merci de me mettre dans vos crédits ^^

class Scene_Title < Scene_Base
 
    super
    SceneManager.clear                 
    command_new_game             
  end
 

 def command_new_game
    DataManager.setup_new_game

    fadeout_all
    $game_map.autoplay
    SceneManager.goto(Scene_Map)
  end
 
  def post_start
    super
  end

  def pre_terminate
    super
  end

  def terminate
    super
  end

  def update
    super
  end
end


Ensuite, vous remplacez "SceneTitle" par celui-là (à renommer du même nom) :


Code:
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#  Modifié par Master of Dragons
#==============================================================================

class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  def start
    super
    SceneManager.clear
    Graphics.freeze
    create_background
    create_foreground
    create_command_window
    play_title_music
  end
  #--------------------------------------------------------------------------
  # ● トランジション速度の取得
  #--------------------------------------------------------------------------
  def transition_speed
    return 20
  end
  #--------------------------------------------------------------------------
  # ● 終了処理
  #--------------------------------------------------------------------------
  def terminate
    super
    SceneManager.snapshot_for_background
    dispose_background
    dispose_foreground
  end
  #--------------------------------------------------------------------------
  # ● 背景の作成
  #--------------------------------------------------------------------------
  def create_background
    @sprite1 = Sprite.new
    @sprite1.bitmap = Cache.title1($data_system.title1_name)
    @sprite2 = Sprite.new
    @sprite2.bitmap = Cache.title2($data_system.title2_name)
    center_sprite(@sprite1)
    center_sprite(@sprite2)
  end
  #--------------------------------------------------------------------------
  # ● 前景の作成
  #--------------------------------------------------------------------------
  def create_foreground
    @foreground_sprite = Sprite.new
    @foreground_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
    @foreground_sprite.z = 100
    draw_game_title if $data_system.opt_draw_title
  end
  #--------------------------------------------------------------------------
  # ● ゲームタイトルの描画
  #--------------------------------------------------------------------------
  def draw_game_title
    @foreground_sprite.bitmap.font.size = 48
    rect = Rect.new(0, 0, Graphics.width, Graphics.height / 2)
    @foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, 1)
  end
  #--------------------------------------------------------------------------
  # ● 背景の解放
  #--------------------------------------------------------------------------
  def dispose_background
    @sprite1.bitmap.dispose
    @sprite1.dispose
    @sprite2.bitmap.dispose
    @sprite2.dispose
  end
  #--------------------------------------------------------------------------
  # ● 前景の解放
  #--------------------------------------------------------------------------
  def dispose_foreground
    @foreground_sprite.bitmap.dispose
    @foreground_sprite.dispose
  end
  #--------------------------------------------------------------------------
  # ● スプライトを画面中央に移動
  #--------------------------------------------------------------------------
  def center_sprite(sprite)
    sprite.ox = sprite.bitmap.width / 2
    sprite.oy = sprite.bitmap.height / 2
    sprite.x = Graphics.width / 2
    sprite.y = Graphics.height / 2
  end
  #--------------------------------------------------------------------------
  # ● コマンドウィンドウの作成
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = Window_TitleCommand.new
    @command_window.set_handler(:new_game, method(:command_new_game))
    @command_window.set_handler(:continue, method(:command_continue))
    @command_window.set_handler(:shutdown, method(:command_shutdown))
  end
 
  #--------------------------------------------------------------------------
  # ● コマンド[ニューゲーム]
  #--------------------------------------------------------------------------
  def command_new_game
    DataManager.setup_new_game
    close_command_window
    fadeout_all
    $game_map.autoplay
    SceneManager.goto(Scene_Map)
  end
  #--------------------------------------------------------------------------
  # ● コマンド[コンティニュー]
  #--------------------------------------------------------------------------
  def command_continue
    close_command_window
    SceneManager.call(Scene_Load)
  end
  #--------------------------------------------------------------------------
  # ● コマンド[シャットダウン]
  #--------------------------------------------------------------------------
  def command_shutdown
    close_command_window
    fadeout_all
    SceneManager.exit
  end
  #--------------------------------------------------------------------------
  # ● タイトル画面の音楽演奏
  #--------------------------------------------------------------------------
  def play_title_music
    $data_system.title_bgm.play
    RPG::BGS.stop
    RPG::ME.stop
  end
end

Voilà.


Bon jeu.



Dernière édition par Master of Dragons le Jeu 29 Déc 2011 - 23:58, édité 1 fois
avatar
Mist'
Staffeux retraité

Nombre de messages : 3313
Age : 25
Localisation : France // Auvergne // Cantal
Distinction : Ours Barbu é_è [/Shamu']
Artiste de talent [Yama']
Date d'inscription : 22/12/2007
http://www.rpgmakervx-fr.com

Re: Sauter l'écran titre2

le Jeu 29 Déc 2011 - 23:50
Ce script a déjà été posté ici : http://www.rpgmakervx-fr.com/t11461-passer-l-ecran-titre

Je me permet de te dire ce qui me choque un peu, histoire que tu comprennes un peu mieux comment RGSS3 fonctionne :

Code:
class Scene_Title < Scene_Base
 
    super
    SceneManager.clear               
    command_new_game           
  end
 

 def command_new_game
    DataManager.setup_new_game

    fadeout_all
    $game_map.autoplay
    SceneManager.goto(Scene_Map)
  end
 
  def post_start
    super
  end

  def pre_terminate
    super
  end

  def terminate
    super
  end

  def update
    super
  end
end

Okay, si tu veux. Ca peut marcher. Mais tu aurais du modifier la méthode start pour un rendu plus propre genre :

Code:
class Scene_Title < Scene_Base

def start
    super # CF. Start de la Scene_Base (classe mère de Scene_Title)
    DataManager.setup_new_game
    fadeout_all
    $game_map.autoplay
    SceneManager.goto(Scene_Map)
end
end

Mais le truc qui me choque c'est que tu fais remplacer le Scene_Title. Tu aurais pu tout laisser dans un seul script. D'autant plus que tu t'encombres de méthodes superflues qui ne sont pas utilisées. Le segment de code (okay, pas testé, mais j'pense qu'il marche) que j't'ai filé devrai être tout aussi fonctionnel en ajoutant un script et sans toucher aux scripts de base.

Evites au maximum de faire remplacer les scripts de bases. Mais essaie de construire par dessus, faire des modifications dans un script annexe.

Tu as des mots clés tels que alias pour rajouter à une méthode ce que tu veux lui faire faire. Puis tu peux carrément la redéfinir (cf. mon exemple) pour changer son fonctionnement.

Je suis pas un roxxor en Ruby, mais je pense pouvoir au moins te conseiller sur ça. Si tu as besoin de deux ou trois précisions sur ce que j'ai dit, MP Wink

_________________
avatar
Master of Dragons
Membre

Nombre de messages : 200
Age : 26
Localisation : Toujours là (même absent)
Distinction : aucune
Date d'inscription : 28/07/2010

Re: Sauter l'écran titre2

le Ven 30 Déc 2011 - 0:01
Ok (et en passant désolé, c'est ma faute j'avais pas vu votre script à toi et à Gummi)

Mais bon, je ne fais que débuter le RGSS3 aussi ^^'

La seule chose que j'aurais voulu mettre c'est le choix de la map de départ.
avatar
Mist'
Staffeux retraité

Nombre de messages : 3313
Age : 25
Localisation : France // Auvergne // Cantal
Distinction : Ours Barbu é_è [/Shamu']
Artiste de talent [Yama']
Date d'inscription : 22/12/2007
http://www.rpgmakervx-fr.com

Re: Sauter l'écran titre2

le Ven 30 Déc 2011 - 0:07
Justement, si t'as besoin de deux ou trois explications, niveau syntaxe, library RGSS3, tu m'tiens au courant, ce sera avec plaisir Wink

_________________
avatar
Master of Dragons
Membre

Nombre de messages : 200
Age : 26
Localisation : Toujours là (même absent)
Distinction : aucune
Date d'inscription : 28/07/2010

Re: Sauter l'écran titre2

le Ven 30 Déc 2011 - 0:22
Merci j'y penserais car tes conseils vont pouvoir m'aider.
Contenu sponsorisé

Re: Sauter l'écran titre2

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum