Help - Search - Members - Calendar
Full Version: Multiple Splash Screens
RPG RPG Revolution Forums > Scripting > Script Development and Support
computerchris
Can anyone help me change this KGC Script to where i can have multiple splash screens... I want 2 for now...
CODE
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/   —†                  Splash Logo - KGC_TitleDirection                —† VX —†
#_/   —‡                       Last Update: 2008/09/06                         —‡
#_/   —†                    Translation by Mr. Anonymous                       —†
#_/   —† KGC Site:                                                             —†
#_/   —† http://f44.aaa.livedoor.jp/~ytomy/                                    —†
#_/   —† Translator's Blog:                                                    —†
#_/   —† http://mraprojects.wordpress.com                                      —†
#_/----------------------------------------------------------------------------
#_/   This script adds a function to display a splash logo before the title
#_/  screen is displayed. A sample of this effect is provided with the demo
#_/  this script came packaged in.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
#                             ˜… Customization ˜…
#==============================================================================

module KGC
module TitleDirection
  #                        —† Start Title BGM Timing —†
  # This allows you to adjust when the title screen BGM is played.
  #   0..Before Logo  1..After Logo
  BGM_TIMING = 1

  #                 —† Show Logo During Testplay (DEBUGGING) —†
  # This toggle allows you to bypass the logo display when debugging.
  TESTPLAY_SHOW = true
  
  #                         —† Splash Logo Image —†
  #  Here, you may specify the image file you'd like to use as a logo.
  # The image must be in the "Graphics/System" folder.
  # Setting this to nil will display nothing. If set to nil, the Splash Logo
  #  Sound Effect defined below is also assumed to be nil.
  SPLASH_LOGO_FILE = "LogoB"
  
  #                       —† Splash Logo Sound Effect —†
  # Here, you may specify a sound effect to play while the splash logo displays.
  # This can be written two ways. First, you can simply define a filename and
  #  the script automatically assumes to look in the SE folder and assign
  #  default values for volume and pitch, as such:  
  #     SPLASH_LOGO_SE = "start_logo"
  #  Or class notation, allowing for additional customization, as such:
  #   SPLASH_LOGO_SE = RPG::SE.new("start_logo", 80, 100)
  # Format: ("SoundName", Volume, Pitch)
  SPLASH_LOGO_SE = RPG::SE.new("Magic", 80, 50)
  
  #                           —† Logo Splash Style —†
  #  Here, you may specify an effect for your logo. It's best just to try out
  # each option and see what works for you.
  #   0..Fade  1..Crossing  2..Zoom  3..Splash
  SPLASH_LOGO_TYPE = 3
  end
end
#=============================================================================#
#                          ˜… End Customization ˜…                              #
#=============================================================================#

#=================================================#
#                    IMPORT                       #
#=================================================#

$imported = {} if $imported == nil
$imported["TitleDirection"] = true

#=================================================#

#==============================================================================
# – Sprite_TitleLogo
#------------------------------------------------------------------------------
#   ‚‚ƒˆƒ”面のƒ‚‚’‰†‚ƒ‚で™€‚
#==============================================================================

class Sprite_TitleLogo < Sprite
  attr_accessor :effect_no_out  # ˆŽ‚ƒ•‚‚ƒˆな—
  #--------------------------------------------------------------------------
  # — ‚ƒ–‚‚‚ƒˆˆœŸŒ–
  #--------------------------------------------------------------------------
  def initialize
    super
    @effect_type = 0
    @effect_duration = 0
    @effect_sprites = []
    @effect_no_out = false
  end
  #--------------------------------------------------------------------------
  # — 破„
  #--------------------------------------------------------------------------
  def dispose
    super
    dispose_effect_sprites
  end
  #--------------------------------------------------------------------------
  # —‹ ‚ƒ•‚‚ƒˆ”‚ƒ—ƒ‚ƒˆ破„
  #--------------------------------------------------------------------------
  def dispose_effect_sprites
    @effect_sprites.each { |s| s.dispose }
    @effect_sprites = []
  end
  #--------------------------------------------------------------------------
  # — Z 座™‰›
  #--------------------------------------------------------------------------
  def z=(value)
    super(value)
    @effect_sprites.each { |s| s.z = value }
  end
  #--------------------------------------------------------------------------
  # —‹ ƒ•‚ƒƒ‰Šžœ
  #     dx : X 座™
  #     dy : Y 座™
  #     bitmap : 表示”ƒ
  #--------------------------------------------------------------------------
  def effect_fade(dx, dy, bitmap)
    dispose_effect_sprites
    @effect_type = 0
    @effect_duration = 150
    # ‚ƒ—ƒ‚ƒˆœˆ
    sprite = Sprite.new
    sprite.bitmap = bitmap
    # 表示位置‚’調•
    sprite.x = dx
    sprite.y = dy
    sprite.ox = bitmap.width / 2
    sprite.oy = bitmap.height / 2
    sprite.opacity = 0

    @effect_sprites << sprite
  end
  #--------------------------------------------------------------------------
  # —‹ ‚ƒ‚Šžœ
  #--------------------------------------------------------------------------
  def effect_cross(dx, dy, bitmap)
    dispose_effect_sprites
    @effect_type = 1
    @effect_duration = 150
    # ‚ƒ—ƒ‚ƒˆœˆ
    sprites = [Sprite.new, Sprite.new]
    sprites[0].bitmap = bitmap
    sprites[1].bitmap = bitmap
    # 表示位置‚’調•
    sprites[0].x = dx - 240
    sprites[1].x = dx + 240
    sprites[0].y = dy
    sprites[1].y = dy
    sprites[0].ox = sprites[1].ox = bitmap.width / 2
    sprites[0].oy = sprites[1].oy = bitmap.height / 2
    sprites[0].opacity = 0
    sprites[1].opacity = 0

    @effect_sprites += sprites
  end
  #--------------------------------------------------------------------------
  # —‹ ‚ƒƒŠžœ
  #--------------------------------------------------------------------------
  def effect_zoom(dx, dy, bitmap)
    dispose_effect_sprites
    @effect_type = 2
    @effect_duration = 150
    # ‚ƒ—ƒ‚ƒˆœˆ
    sprites = [Sprite.new, Sprite.new]
    sprites[0].bitmap = bitmap
    sprites[1].bitmap = bitmap
    # ˆœŸ設š
    sprites[0].x = sprites[1].x = dx
    sprites[0].y = sprites[1].y = dy
    sprites[0].ox = sprites[1].ox = bitmap.width / 2
    sprites[0].oy = sprites[1].oy = bitmap.height / 2
    sprites[0].zoom_x = sprites[0].zoom_y = 0.0
    sprites[1].zoom_x = sprites[1].zoom_y = 6.0
    sprites[0].opacity = sprites[1].opacity = 0

    @effect_sprites += sprites
  end
  #--------------------------------------------------------------------------
  # —‹ ‚ƒ—ƒƒƒ‚ƒŠžœ
  #--------------------------------------------------------------------------
  def effect_splash(dx, dy, bitmap)
    dispose_effect_sprites
    @effect_type = 3
    @effect_duration = 150
    # ‚ƒ—ƒ‚ƒˆœˆ
    sprites = [Sprite.new]
    sprites[0].bitmap = bitmap
    # ˆœŸ設š
    sprites[0].ox = bitmap.width >> 1
    sprites[0].oy = bitmap.height >> 1
    sprites[0].x = dx
    sprites[0].y = dy
    sprites[0].opacity = 0
    (1..3).each { |i|
      sprites[i] = Sprite.new
      sprites[i].bitmap = bitmap
      sprites[i].ox = sprites[0].ox
      sprites[i].oy = sprites[0].oy
      sprites[i].x = dx
      sprites[i].y = dy
      sprites[i].opacity = 255
      sprites[i].visible = false
    }

    @effect_sprites += sprites
  end
  #--------------------------------------------------------------------------
  # —‹ ‚ƒ—ƒƒƒ‚ƒ‚ƒŠžœ
  #--------------------------------------------------------------------------
  def effect_splash_in(dx, dy, bitmap)
    dispose_effect_sprites
    @effect_type = 4
    @effect_duration = 41
    # ‚ƒ—ƒ‚ƒˆœˆ
    sprites = [Sprite.new]
    sprites[0].bitmap = bitmap
    # ˆœŸ設š
    sprites[0].ox = bitmap.width >> 1
    sprites[0].oy = bitmap.height >> 1
    sprites[0].x = dx - 160
    sprites[0].y = dy - 160
    sprites[0].opacity = 0
    (1..3).each { |i|
      sprites[i] = Sprite.new
      sprites[i].bitmap = bitmap
      sprites[i].ox = sprites[0].ox
      sprites[i].oy = sprites[0].oy
      sprites[i].x = dx
      sprites[i].y = dy
      sprites[i].opacity = 0
    }
    sprites[1].x += 160
    sprites[1].y -= 160
    sprites[2].x += 160
    sprites[2].y += 160
    sprites[3].x -= 160
    sprites[3].y += 160

    @effect_sprites += sprites
  end
  #--------------------------------------------------------------------------
  # —‹ ‚ƒ•‚‚ƒˆœ止
  #--------------------------------------------------------------------------
  def stop_effect
    dispose_effect_sprites
    @effect_duration = 0
  end
  #--------------------------------------------------------------------------
  # —‹ ‚ƒ•‚‚ƒˆŸŒ中ˆš
  #--------------------------------------------------------------------------
  def effect?
    return @effect_duration > 0
  end
  #--------------------------------------------------------------------------
  # — ƒ•ƒƒƒ›–
  #--------------------------------------------------------------------------
  def update
    super

    if @effect_duration > 0
      update_effect
    end
  end
  #--------------------------------------------------------------------------
  # —‹ ‚ƒ•‚‚ƒˆ›–
  #--------------------------------------------------------------------------
  def update_effect
    @effect_duration -= 1
    case @effect_type
    when 0
      update_effect_fade
    when 1
      update_effect_cross
    when 2
      update_effect_zoom
    when 3
      update_effect_splash
    when 4
      update_effect_splash_in
    end
  end
  #--------------------------------------------------------------------------
  # —‹ ‚ƒ•‚‚ƒˆ›– : ƒ•‚ƒƒ‰
  #--------------------------------------------------------------------------
  def update_effect_fade
    case @effect_duration
    when 100...150
      @effect_sprites[0].opacity += 6
    when 30...100
      # •‚‚—な„
    when 0...30
      unless @effect_no_out
        @effect_sprites[0].opacity -= 10
      end
    end
  end
  #--------------------------------------------------------------------------
  # —‹ ‚ƒ•‚‚ƒˆ›– : ‚ƒ‚
  #--------------------------------------------------------------------------
  def update_effect_cross
    case @effect_duration
    when 110...150
      @effect_sprites[0].x += 6
      @effect_sprites[1].x -= 6
      @effect_sprites[0].opacity += 4
      @effect_sprites[1].opacity += 4
    when 30...110
      @effect_sprites[0].opacity = 255
      @effect_sprites[1].visible = false
    when 0...30
      unless @effect_no_out
        @effect_sprites[0].opacity -= 13
      end
    end
  end
  #--------------------------------------------------------------------------
  # —‹ ‚ƒ•‚‚ƒˆ›– : ‚ƒƒ
  #--------------------------------------------------------------------------
  def update_effect_zoom
    case @effect_duration
    when 100...150
      @effect_sprites[0].zoom_x = (@effect_sprites[0].zoom_y += 0.02)
      @effect_sprites[1].zoom_x = (@effect_sprites[1].zoom_y -= 0.1)
      @effect_sprites[0].opacity += 3
      @effect_sprites[1].opacity += 3
    when 30...100
      @effect_sprites[0].opacity = 255
      @effect_sprites[1].visible = false
    when 0...30
      unless @effect_no_out
        @effect_sprites[0].opacity -= 13
      end
    end
  end
  #--------------------------------------------------------------------------
  # —‹ ‚ƒ•‚‚ƒˆ›– : ‚ƒ—ƒƒƒ‚ƒ
  #--------------------------------------------------------------------------
  def update_effect_splash
    case @effect_duration
    when 90...150
      @effect_sprites[0].opacity += 5
    when 0...60
      @effect_sprites[0].x -= 2
      @effect_sprites[0].y -= 2
      @effect_sprites[1].x += 2
      @effect_sprites[1].y -= 2
      @effect_sprites[2].x += 2
      @effect_sprites[2].y += 2
      @effect_sprites[3].x -= 2
      @effect_sprites[3].y += 2
      4.times { |j|
        @effect_sprites[j].visible = true
        @effect_sprites[j].opacity -= 5
      }
    end
  end
  #--------------------------------------------------------------------------
  # —‹ ‚ƒ•‚‚ƒˆ›– : ‚ƒ—ƒƒƒ‚ƒ‚ƒ
  #--------------------------------------------------------------------------
  def update_effect_splash_in
    case @effect_duration
    when 1...41
      @effect_sprites[0].x += 2
      @effect_sprites[0].y += 2
      @effect_sprites[1].x -= 2
      @effect_sprites[1].y += 2
      @effect_sprites[2].x -= 2
      @effect_sprites[2].y -= 2
      @effect_sprites[3].x += 2
      @effect_sprites[3].y -= 2
      4.times { |j|
        @effect_sprites[j].opacity += 3
      }
    when 0
      @effect_sprites[0].opacity = 255
      (1..3).each { |i|
        @effect_sprites[i].visible = false
      }
    end
  end
end

#˜…˜†˜…˜†˜…˜†˜…˜†˜…˜†˜…˜†˜…˜†˜…˜†˜…˜†˜…˜†˜…˜†˜…˜†˜…˜†
˜…˜†˜…˜†˜…˜†˜…˜†˜…˜†˜…˜†˜…

#==============================================================================
# – Scene_Title
#==============================================================================

class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # — –‹‹‡†
  #--------------------------------------------------------------------------
  alias start_KGC_TitleDirection start
  def start
    show_splash_logo

    start_KGC_TitleDirection
  end
  #--------------------------------------------------------------------------
  # —‹ ‚ƒ—ƒƒƒ‚ƒƒ‚表示
  #--------------------------------------------------------------------------
  def show_splash_logo
    return if $__splash_logo_shown
    return if $TEST && !KGC::TitleDirection::TESTPLAY_SHOW
    return if KGC::TitleDirection::SPLASH_LOGO_FILE == nil

    play_title_music if KGC::TitleDirection::BGM_TIMING == 0

    # ƒ‚表示 SE ”奏
    if KGC::TitleDirection::SPLASH_LOGO_SE != nil
      if KGC::TitleDirection::SPLASH_LOGO_SE.is_a?(RPG::SE)
        KGC::TitleDirection::SPLASH_LOGO_SE.play
      elsif KGC::TitleDirection::SPLASH_LOGO_SE.is_a?(String)
        se = RPG::SE.new(KGC::TitleDirection::SPLASH_LOGO_SE)
        se.play
      end
    end

    # ‚ƒ•‚‚ƒˆ”‚ƒ—ƒ‚ƒˆœˆ
    sprite = Sprite_TitleLogo.new
    bitmap = Cache.system(KGC::TitleDirection::SPLASH_LOGO_FILE)
    dx = Graphics.width / 2
    dy = Graphics.height / 2

    # ‚ƒ•‚‚ƒˆ–‚™
    case KGC::TitleDirection::SPLASH_LOGO_TYPE
    when 0
      sprite.effect_fade(dx, dy, bitmap)
    when 1
      sprite.effect_cross(dx, dy, bitmap)
    when 2
      sprite.effect_zoom(dx, dy, bitmap)
    when 3
      sprite.effect_splash(dx, dy, bitmap)
    end
    # ‚ƒ•‚‚ƒˆŸŒ
    Graphics.transition(0)
    while sprite.effect?
      Graphics.update
      Input.update
      sprite.update
      # C ƒœ‚ƒで中止
      if Input.trigger?(Input::C)
        sprite.stop_effect
      end
    end
    # Œ‹œ
    sprite.dispose
    bitmap.dispose
    # ƒˆƒƒ‚‚ƒƒ–‚™
    Graphics.freeze

    $__splash_logo_shown = true
  end
end



Help Please it has been 24 hours!!! And i would like to have this script by christmas for my family.
computerchris
Please may someone help??? It has been 2 days.
lohenien
QUOTE (computerchris @ Dec 23 2011, 06:32 PM) *
Please may someone help??? It has been 2 days.


I dont know if you can do two at once in the game start up (if that is what you mean) but having alternate splash screens should be as easy as setting a variable and then reading it and choosing the screen based on the variable.

I dont know how to do that off the top of my head in Ruby however.

computerchris
ok.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.