注册会员 登录
Project1 返回首页

喵呜喵5的树洞 https://rpg.blue/?291206 [收藏] [复制] [分享] [RSS]

日志

【脚本】LOGO

热度 48已有 5809 次阅读2014-6-22 17:11 |个人分类:脚本

=begin

===============================================================================

  LOGO By喵呜喵5

===============================================================================


【说明】


  游戏开始时显示LOGO

  

  LOGO的数量、淡入淡出时间、等待时间、显示LOGO时播放的SE都可以自由的设置

  

  LOGO的图片素材放在 Graphics\System 目录下

  

=end

$m5script ||= {};$m5script[:M5Logo20141006] = 20141206

module M5Logo20141006

  LIST = {

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

# 设定部分

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

  

  # 设置格式:

  

  #  "文件名" => [淡入的速度,淡出的速度,LOGO等待的时间,是否允许跳过等待,播放的SE],

  

  # LOGO文件名和SE文件名请用双引号括起来,

  # 如果不允许跳过等待,最后一项请填入0  

  # 等待的时间如果为负数时将会永远等待下去直到玩家按确定键跳过等待

  # 如果不需要播放SE的话,最后一项不填就好了

  # 请不要忘记末尾的逗号

  

  "LOGO1" => [10,10,-1,0,"Cat"],

  

  "LOGO2" => [10,10,120,0],  


  } # 请不要删除本行


  SKIP = false  # false / true

  

  # 这里设置为true时,在测试模式下开始游戏不会显示LOGO


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

# 设定结束

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

end

#--------------------------------------------------------------------------

# ● LOGO精灵的类

#--------------------------------------------------------------------------

class Sprite_Logo < Sprite

  include M5Logo20141006

  #--------------------------------------------------------------------------

  # ● 载入

  #--------------------------------------------------------------------------

  def initialize

    super(nil)

    new_logo("")

  end

  #--------------------------------------------------------------------------

  # ● 显示新的LOGO

  #--------------------------------------------------------------------------

  def new_logo(filename)

    @logo_name = filename

    self.bitmap = Cache.system(@logo_name)

    self.opacity = 0

    @open = true

  end

  #--------------------------------------------------------------------------

  # ● 更新

  #--------------------------------------------------------------------------

  def update

    super

    update_open if self.opacity != 255 && @open

    update_close if self.opacity != 0  && !@open

    update_input if self.opacity == 255

    self.bitmap.dispose if self.opacity == 0  && !@open    

    Graphics.update

    Input.update

  end

  #--------------------------------------------------------------------------

  # ● 释放

  #--------------------------------------------------------------------------

  def dispose

    self.viewport.dispose if self.viewport

    super

  end

  #--------------------------------------------------------------------------

  # ● 等待LOGO显示结束

  #--------------------------------------------------------------------------

  def update_input

    sename = LIST[@logo_name][4]

    Audio.se_play("Audio/SE/#{sename}",80,100) if sename

    wait = LIST[@logo_name][2].to_i

    loop do

      break if update_skip

      break if wait== 0

      wait -= 1

      Input.update

      Graphics.update

    end

    @open = false

  end

  #--------------------------------------------------------------------------

  # ● 跳过等待

  #--------------------------------------------------------------------------

  def update_skip

    false

  end

  #--------------------------------------------------------------------------

  # ● LOGO淡入

  #--------------------------------------------------------------------------

  def update_open

    self.opacity += open_speed.abs

  end

  #--------------------------------------------------------------------------

  # ● LOGO淡出

  #--------------------------------------------------------------------------

  def update_close

    self.opacity -= close_speed.abs

  end

  #--------------------------------------------------------------------------

  # ● 淡入速度

  #--------------------------------------------------------------------------

  def open_speed

    LIST[@logo_name][0].to_i

  end

  #--------------------------------------------------------------------------

  # ● 淡出速度

  #--------------------------------------------------------------------------  

  def close_speed

    LIST[@logo_name][1].to_i

  end

  #--------------------------------------------------------------------------

  # ● LOGO是否淡出完毕?

  #--------------------------------------------------------------------------

  def finish

    return self.bitmap.disposed? 

  end

end

#--------------------------------------------------------------------------

# ● LOGO精灵的类(允许跳过等待)

#--------------------------------------------------------------------------

class Sprite_Logo2 < Sprite_Logo 

  #--------------------------------------------------------------------------

  # ● 跳过等待

  #--------------------------------------------------------------------------

  def update_skip

    return Input.trigger?(:C)

  end

end

#--------------------------------------------------------------------------

# ● SceneManager - first_scene_class重定义

#--------------------------------------------------------------------------

class << SceneManager

  alias m5_20140622_first_scene_class first_scene_class

  def first_scene_class

    return m5_20140622_first_scene_class if $BTEST

    return m5_20140622_first_scene_class if $TEST && M5Logo20141006::SKIP

    Scene_Logo

  end

end

#--------------------------------------------------------------------------

# ● LOGO的场景

#--------------------------------------------------------------------------

class Scene_Logo < Scene_Base

  include M5Logo20141006

  #--------------------------------------------------------------------------

  # ● 载入LOGO精灵

  #--------------------------------------------------------------------------

  def start

    super

    @logo = Sprite_Logo.new

    @logo2 = Sprite_Logo2.new

  end

  #--------------------------------------------------------------------------

  # ● 更新

  #--------------------------------------------------------------------------

  def update

    super

    LIST.each do |filename,setting|

      if setting[3] == 0 && setting[2] > 0

        update_logo1(filename)

      else

        update_logo2(filename)

      end

    end

    SceneManager.call(SceneManager.m5_20140622_first_scene_class)

  end

  #--------------------------------------------------------------------------

  # ● 更新无法跳过等待的LOGO

  #--------------------------------------------------------------------------

  def update_logo1(logoname)

    @logo.new_logo(logoname)

    @logo.update until @logo.finish

  end

  #--------------------------------------------------------------------------

  # ● 更新允许跳过等待的LOGO

  #--------------------------------------------------------------------------

  def update_logo2(logoname)

    @logo2.new_logo(logoname)

    @logo2.update until @logo2.finish

  end

  #--------------------------------------------------------------------------

  # ● 结束处理

  #--------------------------------------------------------------------------

  def terminate

    super

    @logo.dispose

    @logo2.dispose

  end

end


20

鸡蛋
1

鲜花

刚表态过的朋友 (21 人)

评论 (0 个评论)

facelist doodle 涂鸦笔

您需要登录后才可以评论 登录 | 注册会员

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-28 08:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部