查看: 2801|回复: 2

[已经过期] 如何自定义游戏开始界面?

[复制链接]
梦石
0
星屑
50
在线时间
2 小时
注册时间
2007-5-21
回帖
87
发表于 2013-5-9 15:13:00 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
主要想改变系统内设的游戏开始界面的文字,不用开始游戏、读取游戏、退出这三个字。想要自定义入更丰富的元素。请问在哪里更改呢?
囧到地老天荒 渣到天崩地裂 呆到海枯石烂 痴到枯木还春 无限期收购好人卡中,有的MM
梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2013-5-9 15:55:46 | 显示全部楼层
回复

使用道具 举报

梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2013-5-9 16:14:56 | 显示全部楼层
本帖最后由 tseyik 于 2013-5-9 17:01 编辑

一個更多変的

需用到的圖片
Titles1.zip (730.07 KB, 下载次数: 75)
導入到Titles1
Image 020.png
[pre lang="ruby" line="1"]#==============================================================================
# +++ MOG - Madoka Title Screen (v1.0) +++ /人◕ ‿‿ ◕人\
#==============================================================================
# By Moghunter
# http://www.atelier-rgss.com/
#==============================================================================
# Tela de titulo animado com o tema do anime Puella Magi Madoka Magica.
# Naturalmente você pode colocar qualquer personagem.
#==============================================================================
module MOG_MADOKA_TITLE_SCREEN
  #Posição do titulo.
  TITLE_POSITION = [40,270]
  #Velocidade de deslize da imagem de fundo.
  BACKGROUND_SCROLL_SPEED = [1,0]
  #Posição do circulo mágico
   CIRCLE_POSITION = [-30,-30]
  #Valor do zoom do circulo mágico. (Valores altos causam Lag)
   CIRCLE_ZOOM_RANGE = 3
  #Definição do tipo de blend do circulo mágico.
   CIRCLE_BLEND_TYPE = 0
  #Imagens dos characteres que terão o efeito de Zoom.
  # CHARACTES_SPRITES_ZOOM_EFFECT = [0,2,5]
   CHARACTES_SPRITES_ZOOM_EFFECT = [0]
  #Prioridade dos personagens  
   CHARACTER_Z = 10
  # Ativar Partículas.
  PARTICLES = true
  # Numero de partículas.
  PARTICLE_NUMBER = 15
  # Ativar Cores Aleatórias.
  PARTICLE_RANDOM_COLOR = false
  # Definição do tipo de blend. (0,1,2)
  PARTICLE_BLEND_TYPE = 0
  #Definição do limite de velocidade das partículas.
  PARTICLE_MOVEMENT_RANGE_X = 0
  PARTICLE_MOVEMENT_RANGE_Y = 3
  PARTICLE_ANGLE_RANGE = 3  
  PARTICLE_Z = 25
  #Posição do comando
  COMMAND_POSITION = [20,50]
  #Prioridade do comando
  COMMNAND_Z = 100
end

#==============================================================================
# ■ Particle Title
#==============================================================================
class Particle_Title < Sprite
  
  include MOG_MADOKA_TITLE_SCREEN
  
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------            
  def initialize(viewport = nil)
      super(viewport)
      self.bitmap = Cache.title1("Particle")
      self.tone.set(rand(255),rand(255), rand(255), 255) if PARTICLE_RANDOM_COLOR
      self.blend_type = PARTICLE_BLEND_TYPE
      self.z = PARTICLE_Z
      @cw = self.bitmap.width
      @ch = self.bitmap.height
      @nx = PARTICLE_MOVEMENT_RANGE_X
      @ny = PARTICLE_MOVEMENT_RANGE_Y
      reset_setting
  end  
  
#--------------------------------------------------------------------------
# ● Reset Setting
#--------------------------------------------------------------------------               
  def reset_setting
      zoom = (50 + rand(100)) / 100.1
      self.zoom_x = zoom
      self.zoom_y = zoom
      self.x = (rand(576) -32)
      self.y = rand(448 + @ch)
      self.opacity = 0
      self.angle = rand(360)
      nx2 = rand(@nx).abs
      nx2 = 1 if (@nx != 0 and nx2 < 1)      
      @speed_x = @nx > 0 ? nx2 : @nx < 0 ? -nx2 : 0        
      ny2 = rand(@ny).abs
      ny2 = 1 if (@ny != 0 and ny2 < 1)      
      @speed_y = @ny > 0 ? ny2 : @ny < 0 ? -ny2 : 0   
      @speed_a = [[rand(PARTICLE_ANGLE_RANGE), PARTICLE_ANGLE_RANGE].min, 0].max
  end
  
#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------               
  def dispose
      super
      self.bitmap.dispose
  end  
  
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------               
  def update
      super
      self.x += @speed_x
      self.y -= @speed_y
      self.angle += @speed_a      
      self.opacity += 5
      reset_setting if can_reset_setting?
  end  
  
#--------------------------------------------------------------------------
# ● Can Reset Setting
#--------------------------------------------------------------------------                 
  def can_reset_setting?
      return true if (self.x < -64 or self.x > 592)   
      return true if (self.y < -164 or self.y > 464)
      return false
  end  
end


#==============================================================================
# ■ Scene Title
#==============================================================================
class Scene_Title < Scene_Base
include MOG_MADOKA_TITLE_SCREEN
  
#--------------------------------------------------------------------------
# ● Start
#--------------------------------------------------------------------------         
def start
     super
     SceneManager.clear
     play_title_music
     @phase = 0
     @skip_wait = 0
     create_srites
end     

#--------------------------------------------------------------------------
# ● トランジション速度の取得
#--------------------------------------------------------------------------
def transition_speed
     return 20
end
  
#--------------------------------------------------------------------------
# ● Terminate
#--------------------------------------------------------------------------
def terminate
     super
     execute_dispose
end
   
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------            
def update
     super
     execute_update
end

#--------------------------------------------------------------------------
# ● Create Sprites
#--------------------------------------------------------------------------            
def create_srites
     execute_dispose
     create_background
     create_characters_sprites
     create_title_name
     create_magic_circle
     create_particles
     create_commands
end
  
#--------------------------------------------------------------------------
# ● Create Commands
#--------------------------------------------------------------------------           
def create_commands
     @command_wait = false
     @command_index = 0
     @command_index = 1 if DataManager.save_file_exists?
     @commands = []
     index = 0
     for i in 0..2
         @commands[index] = Sprite.new
         if index == 1 and !DataManager.save_file_exists?
            @commands[index].bitmap = Cache.title1("Command" + index.to_s + "B")
         else  
            @commands[index].bitmap = Cache.title1("Command" + index.to_s)
         end   
         @commands[index].z = COMMNAND_Z
         @commands[index].ox = @commands[index].bitmap.width / 2
         @commands[index].oy = @commands[index].bitmap.height / 2
         @commands[index].x = COMMAND_POSITION[0] + @commands[index].ox
         @commands[index].y = COMMAND_POSITION[1] + @commands[index].oy
         @commands[index].opacity = 0
         index += 1
     end
end

#--------------------------------------------------------------------------
# ● Create Background
#--------------------------------------------------------------------------            
def create_background
     @background = Plane.new
     @background.bitmap = Cache.title1("Background")
     @background.z = 0
end  

#--------------------------------------------------------------------------
# ● Create Title Name
#--------------------------------------------------------------------------              
def create_title_name
     @title_name_effect = [0,30]
     @title_name = Sprite.new
     @title_name.bitmap = Cache.title1("Title_Name")
     @title_name.z = 301
     @title_name.opacity = 255
     @title_name.blend_type = 0
     @title_name.ox = @title_name.bitmap.width / 2
     @title_name.oy = @title_name.bitmap.height / 2
     @title_name.x = TITLE_POSITION[0] + @title_name.ox
     @title_name.y = TITLE_POSITION[1] + @title_name.oy
end

#--------------------------------------------------------------------------
# ● Create Magic Circle
#--------------------------------------------------------------------------               
def create_magic_circle
     @magic_circle = Sprite.new
     @magic_circle.bitmap = Cache.title1("Magic_Circle")
     @magic_circle.z = 100
     @magic_circle.ox = @magic_circle.bitmap.width / 2
     @magic_circle.oy =@magic_circle.bitmap.height / 2
     @magic_circle.x = @magic_circle.ox - CIRCLE_POSITION[0]
     @magic_circle.y = @magic_circle.oy - CIRCLE_POSITION[1]
     @magic_circle.z = 3
     @magic_circle.zoom_x = CIRCLE_ZOOM_RANGE
     @magic_circle.zoom_y = CIRCLE_ZOOM_RANGE
     @magic_circle.opacity = 0
     @magic_circle.blend_type = CIRCLE_BLEND_TYPE
end  

#--------------------------------------------------------------------------
# ● Create Characters Sprites
#--------------------------------------------------------------------------              
def create_characters_sprites
     @magic_girls_appear_duration = 0
     @magic_girl_index = 0
     @magic_girls = []
     @magic_girls
     index = 0
     for i in 0..999
         @magic_girls = Sprite.new
         @magic_girls.bitmap = Cache.title1("Character" + index.to_s) rescue nil
         if @magic_girls.bitmap == nil
            @magic_girls.dispose
            @magic_girls.delete(index)
            break
         end  
         @magic_girls.z = CHARACTER_Z + index
         @magic_girls.opacity = 0
         @magic_girls.ox = @magic_girls.bitmap.width / 2
         @magic_girls.oy = @magic_girls.bitmap.height / 2
         @magic_girls.x = @magic_girls.ox
         @magic_girls.y = @magic_girls.oy
         if CHARACTES_SPRITES_ZOOM_EFFECT.include?(index)
            @magic_girls.zoom_x = 1.5
            @magic_girls.zoom_y = 1.5
         end   
         index += 1
      end
      @magic_girls.pop
end  

  #--------------------------------------------------------------------------
  # ● Create Particles
  #--------------------------------------------------------------------------  
  def create_particles
      return if !PARTICLES
      @viewport_light = Viewport.new(-32, -32, 600, 480)
      @viewport_light.z = PARTICLE_Z
      @particles_bitmap =[]
      for i in 0...PARTICLE_NUMBER
          @particles_bitmap.push(Particle_Title.new, @viewport_light)
      end  
  end
   
#--------------------------------------------------------------------------
# ● Execute Dispose
#--------------------------------------------------------------------------              
def execute_dispose
     dispose_background
     dispose_title_name
     dispose_characters
     dispose_particles
     dispose_commands
     dispose_circle
end  

#--------------------------------------------------------------------------
# ● Dispose Background
#--------------------------------------------------------------------------              
def dispose_background
     return if @background == nil
     @background.bitmap.dispose
     @background.dispose
     @background = nil
end

#--------------------------------------------------------------------------
# ● Dispose Tittle Name
#--------------------------------------------------------------------------               
def dispose_title_name
     return if  @title_name == nil
     @title_name.bitmap.dispose
     @title_name.dispose
     @title_name = nil
end   

#--------------------------------------------------------------------------
# ● Dispose Characters
#--------------------------------------------------------------------------               
def dispose_characters
     return if @magic_girls == nil
     for i in @magic_girls
         if i.bitmap != nil
            i.bitmap.dispose
         end   
         i.dispose
     end  
     @magic_girls = nil         
end   

#--------------------------------------------------------------------------
# ● Dispose Particles
#--------------------------------------------------------------------------              
  def dispose_particles
      return if @particles_bitmap == nil
      @particles_bitmap.each {|sprite| sprite.dispose }
      @particles_bitmap = nil
      @viewport_light.dispose
  end   

#--------------------------------------------------------------------------
# ● Dispose Command
#--------------------------------------------------------------------------               
  def dispose_commands
      return if @commands == nil
      @commands.each {|sprite| sprite.dispose }
      @commands = nil
  end
  
#--------------------------------------------------------------------------
# ● Dispose Circle
#--------------------------------------------------------------------------               
def dispose_circle
     return if @magic_circle == nil
     @magic_circle.bitmap.dispose
     @magic_circle.dispose
     @magic_circle = nil
end  
  
#--------------------------------------------------------------------------
# ● Execute Update
#--------------------------------------------------------------------------              
def execute_update
     update_characters
     update_title_name
     update_magic_circle
     update_particles
     update_command
     update_background
end

#--------------------------------------------------------------------------
# ● Create Background
#--------------------------------------------------------------------------               
def update_background
     return if @background == nil
     @background.ox += BACKGROUND_SCROLL_SPEED[0]
     @background.oy += BACKGROUND_SCROLL_SPEED[1]     
end
   
#--------------------------------------------------------------------------
# ● Update Characters
#--------------------------------------------------------------------------               
def update_characters
     return if @magic_girls == nil
     index = 0
     for i in @magic_girls
         update_magic_girls(i,index)
         index += 1
     end     
end  

#--------------------------------------------------------------------------
# ● Update Magic Girls
#--------------------------------------------------------------------------               
def update_magic_girls(i,index)
     return if @magic_girl_index != index
     update_zoom_effect(i,index) if CHARACTES_SPRITES_ZOOM_EFFECT.include?(index)
     update_opactiy_effect(i,index)
end  

#--------------------------------------------------------------------------
# ● Update Opacity Effect
#--------------------------------------------------------------------------                 
def update_opactiy_effect(i,index)
     i.opacity += 5
     return if i.opacity < 255
     i.zoom_x = 1.00
     i.zoom_y = 1.00         
     @magic_girl_index += 1
     if @magic_girl_index == @magic_girls.size
        @phase = 1
        clear_command_sprites
     end  
end
   
#--------------------------------------------------------------------------
# ● Update Zoom Effect
#--------------------------------------------------------------------------                 
def update_zoom_effect(i,index)
     if i.zoom_x > 1.00
        i.zoom_x -= 0.01
        i.zoom_y -= 0.01
        if i.zoom_x < 1.00
           i.zoom_x = 1.00
           i.zoom_y = 1.00   
        end
     end   
end   

#--------------------------------------------------------------------------
# ● Update Title Name
#--------------------------------------------------------------------------                  
def update_title_name
     return if @phase != 1
     return if @title_name == nil     
     @title_name.opacity += 5
     return if @title_name.opacity < 255
     @phase = 2
end

#--------------------------------------------------------------------------
# ● Update Magic Circle
#--------------------------------------------------------------------------                  
def update_magic_circle
     return if @magic_circle == nil
     @magic_circle.angle += 1
end  

#--------------------------------------------------------------------------
# ● Update Particles
#--------------------------------------------------------------------------              
def update_particles
     return if @particles_bitmap == nil     
     @particles_bitmap.each {|sprite| sprite.update }
end

#--------------------------------------------------------------------------
# ● Update Command
#--------------------------------------------------------------------------               
def update_command
     return if @commands == nil
     update_skip_all
     index = 0
     return if @phase != 2
     update_key
     @magic_circle.opacity += 5
     for i in @commands
         if @command_index == index
            update_command_select1(i,index)
         else
            update_command_select2(i,index)
         end  
         index += 1
     end      
end  

#--------------------------------------------------------------------------
# ● Update Key
#--------------------------------------------------------------------------               
def update_key
     return if @skip_wait > 0
     update_select_command
     return if @command_wait
     if Input.press?(:RIGHT) or Input.press?(:DOWN)
        add_index(1)
     elsif Input.press?(:LEFT) or Input.press?(:UP)
        add_index(-1)
     end   
end
   
#--------------------------------------------------------------------------
# ● Add Index
#--------------------------------------------------------------------------                 
def add_index(value)
     Sound.play_cursor
     index = @command_index
     index += value
     index = 0 if index > 2
     index = 2 if index < 0
     @command_index = index
end

#--------------------------------------------------------------------------
# ● Update Select Command
#--------------------------------------------------------------------------               
def update_select_command
     if Input.trigger?(:C)  
       case @command_index
           when 0               
             Sound.play_ok
             command_new_game
           when 1
             if DataManager.save_file_exists?
               command_continue
             else
               Sound.play_buzzer  
             end  
           when 2
             Sound.play_ok
             command_shutdown
           end
      end     
end
        
#--------------------------------------------------------------------------
# ● Update Command Select 1
#--------------------------------------------------------------------------               
def update_command_select1(i,index)
     return if i.opacity == 255 and i.zoom_x == 1.00
     i.opacity += 7
     if i.zoom_x > 1.00
        i.zoom_x -= 0.01
        i.zoom_y -= 0.01
        @command_wait = true
        if i.zoom_x <= 1.00
           i.opacity = 255
           @command_wait = false
        end   
     end  
end  

#--------------------------------------------------------------------------
# ● Update Command Select 2
#--------------------------------------------------------------------------               
def update_command_select2(i,index)
     return if i.opacity == 0
     i.opacity -= 7
     if i.zoom_x < 1.50
        i.zoom_x += 0.01
        i.zoom_y += 0.01
        i.opacity = 0 if i.zoom_x >= 1.50
     end            
end   

  #--------------------------------------------------------------------------
  # ● Command New Game
  #--------------------------------------------------------------------------
  def command_new_game
      DataManager.setup_new_game
      fadeout_all
      $game_map.autoplay
      SceneManager.goto(Scene_Map)
  end

  #--------------------------------------------------------------------------
  # ● Command Continue
  #--------------------------------------------------------------------------  
  def command_continue
      Sound.play_ok
      SceneManager.call(Scene_Load)
  end  
  
  #--------------------------------------------------------------------------
  # ● Commad Shutdown
  #--------------------------------------------------------------------------
  def command_shutdown
      fadeout_all
      SceneManager.exit
  end     
#--------------------------------------------------------------------------
# ● Skip All
#--------------------------------------------------------------------------               
def update_skip_all
     @skip_wait -= 1 if @skip_wait > 0
     return if @phase > 1
     if Input.trigger?(:C) or Input.trigger?(:B)
        reset_main_sprites
        skip_sprite_effects
        clear_main_sprites
     end
end  
   
#--------------------------------------------------------------------------
# ● Skip Sprites Effects
#--------------------------------------------------------------------------                 
def skip_sprite_effects
    loop do
       @title_name.opacity += 10
       for i in @magic_girls
           i.opacity += 10
           if i.zoom_x > 1.00
              i.zoom_x -= 0.01
              i.zoom_y -= 0.01
           end   
       end
       break if @title_name.opacity >= 255
       Graphics.update
    end  
end
      
#--------------------------------------------------------------------------
# ● Reset Main Sprites
#--------------------------------------------------------------------------                 
def reset_main_sprites
     @title_name.opacity= 0
     for i in @magic_girls
         i.zoom_x = 1.00
         i.zoom_y = 1.00
     end      
end

#--------------------------------------------------------------------------
# ● Clear All Sprites
#--------------------------------------------------------------------------                 
def clear_main_sprites
     @title_name.opacity= 255
     for i in @magic_girls
         i.opacity = 255
         i.zoom_x = 1.00
         i.zoom_y = 1.00
     end  
     @magic_girl_index = @magic_girls.size + 1
     @phase = 2      
     clear_command_sprites
     @skip_wait = 10
     @command_wait = false
end  
      
#--------------------------------------------------------------------------
# ● Clear Command Sprites
#--------------------------------------------------------------------------                  
def clear_command_sprites     
     index = 0
     for i in @commands
         if @command_index == index
            i.zoom_x = 1.50
            i.zoom_y = 1.50
            i.opacity = 0
         else   
            i.zoom_x = 1.50
            i.zoom_y = 1.50
            i.opacity = 0      
         end
        index += 1
    end   
  end  
  
end

$mog_rgss3_madoka_title_screen = true[/pre]

点评

叧外在BGM文件夾要有Madoka.ogg(自己找一首改名即可,當然改脚本中的名也可以)  发表于 2013-5-9 17:06

评分

参与人数 1星屑 +100 收起 理由
Sion + 100 感謝解答

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部