Project1

标题: 【薄雾】VA动态标题脚本 [打印本页]

作者: LBQ    时间: 2013-4-9 08:59
标题: 【薄雾】VA动态标题脚本
本帖最后由 LBQ 于 2013-12-5 13:41 编辑

(, 下载次数: 258)

范例地址:http://lbqlocker.weebly.com/uplo ... hronicles_title.zip


这个也算是我的简单的一个标题脚本了=-=。。。。于是这个标题脚本功能有:





发现bug!!!!!
补丁:
[pre lang="ruby" line="1"]#LBQ标题菜单补丁——修复了进入第一个地图没有淡入的问题
class Scene_Title
  #--------------------------------------------------------------------------
  # ● 指令“开始游戏”
  #--------------------------------------------------------------------------
  alias lbq_bugfix_title_newgame command_new_game
  def command_new_game
    fadeout_all
    lbq_bugfix_title_newgame
  end
end
[/pre]


↓ 测试用版本 ↓
[pre lang="ruby" line="1"]#encoding:utf-8
#==============================================================================
# ■ 薄雾年代记标题脚本
#------------------------------------------------------------------------------
#  薄雾年代记的标题脚本
#==============================================================================


#==============================================================================
# 介绍:
#      这个不完全是薄雾的标题脚本,但是是那个的普适版,作者:LBQ,请自由使用,转载
#==============================================================================
# 2013/12/4 Dev1.2 再次托小刀的福弄了._.
#==============================================================================


# 设置模块
module LBQ
  module MC_Title
   
    #logo还有选项的淡入速度,数字越大淡出淡入越快
    FADE_SPEED=4
   
   
    #黑暗层的淡入淡出速度,数字越大淡出淡入越快。第一项是进入场景,第二项是退出
    MASK_FADE=[5,3]
   
   
   
    #背景滑动速度,默认是[2,1],即为每两帧横向滑动一个单位。
    SHIFT_SPEED=[2,1]
   
    #图像设置
    GRAPHICS=['Choice','spark','logo','background']
   
    #生成一个新的闪光点的间隔时间
    TIME_SPARK=12
   
    #分辨率设定
    RESOLUTION=[544,416]
   
    #储存文件的文件夹名称,位于Graphics文件夹下面
    FOLDER="MC_Title"
   
    #离开界面的时候的BGM淡出速度,单位毫秒
    BGM_FADE=1600
   
    #3个层的Z坐标设定。
    Z_SETTINGS=[0,0,0]
   
    #闪光的生命周期。(半衰期,总共生命周期)←装X的设定
    LIFE_CYCLE=[300,500]
  end
end


#Cache加强
module Cache
  include LBQ::MC_Title
  #--------------------------------------------------------------------------
  # ● 标题
  #--------------------------------------------------------------------------
  def self.mc_title(filename)
    load_bitmap("Graphics/#{FOLDER}/", filename)
  end
end


#==============================================================================
# ■ LBQ Spark
#------------------------------------------------------------------------------
#  闪光的精灵类
#==============================================================================
class Sprite_lbqSpark < Sprite_Base
  include LBQ::MC_Title
  
  attr_reader :delete_me
  def initialize(viewport=nil)
    @timer=0
    super(viewport)
    self.bitmap=Cache.mc_title(GRAPHICS[1])
    @opacity_speed=10
    @zoom_change=0
    set_rand_stats
   
  end
  
  
  def update
    super
        @timer+=1
    calc_speed
    self.x += @x_speed
    self.y += @y_speed
    if @timer<=LIFE_CYCLE[0]
      self.opacity += @opacity_speed
    else
      self.opacity -= @opacity_speed*2
    end
   
    self.angle += @angle_speed
    self.zoom_x += @zoom_change
    self.zoom_y += @zoom_change
    if @timer>=LIFE_CYCLE[1]
      self.visible=false
      @delete_me = true
    end
   
     
   
   
  end
  def calc_speed
  end
  def set_rand_stats
    @x_speed=(rand(4)-2)*0.8
    @y_speed=(rand(4)-2)*0.8
    @x_speed+=rand(2)-1 if @x_speed==0
    @y_speed+=rand(2)-1 if @y_speed==0
    @opacity_speed=2
    @angle_speed=rand(3)-3
    self.opacity = 1
    self.angle = rand(360)

      rand_num=rand(9)
      case rand_num
      when 0
        self.x,self.y=0,0
      when 1
        self.x,self.y=RESOLUTION[0],RESOLUTION[1]
      when 2
        self.x,self.y=RESOLUTION[0],0
      when 3
        self.x,self.y=0,RESOLUTION[1]
      when 4
        self.x,self.y=RESOLUTION[0]/2,0
      when 5
        self.x,self.y=RESOLUTION[0]/2,RESOLUTION[1]
      when 6
        self.x,self.y=0,208
      when 7
        self.x,self.y=RESOLUTION[0],RESOLUTION[1]/2
      when 8
        self.x,self.y=RESOLUTION[0]/2 ,RESOLUTION[1]/2
      end
      

   
    self.zoom_x=(rand(100) + 100) / 100.0
    self.zoom_y = self.zoom_x
    self.blend_type=1
  end
  def get_rand_pos
    pos=[]
    case rand(4)
    when 0
      pos[0]=0
    when 1
      pos[0]=200
    when 2
      pos[0]=300
    when 3
      pos[0]=500
    when 4
      pos[0]=100
    end
   
    case rand(4)
    when 0
      pos[1]=0
    when 1
      pos[1]=200
    when 2
      pos[1]=300
    when 3
      pos[1]=500
    when 4
      pos[1]=100
    end
    return pos
  end
  
end


#==============================================================================
# ■ MC Choice
#------------------------------------------------------------------------------
#  可爱的选项~
#==============================================================================
# 选项用精灵类
class Sprite_MCchoice < Sprite_Base
  include LBQ::MC_Title
  #设置
  MAX_INDEX=3
  MIN_INDEX=1
  #初始化
  def initialize(viewport=nil)
    super(viewport)
   
    #光标Index
    if DataManager.save_file_exists?
      @index=2
    else
      @index=1
    end
   
   
    #动态阶段
    @stage=1
  end
  
  
  #更新方法
  def update
    #super
    super
   
    #基础的动态设定
    case @stage
    when 1
      
      #更新选项
      update_cursor
      
      #再次强化不透明度
      self.opacity=0
      
      #之后转成第二步
      @stage+=1

    when 2
      #变得透明
      self.opacity+=FADE_SPEED
      #如果已经变完了
      if self.opacity>=255
        #进入第三步
        @stage+=1
      end
    when 3
      #好的,于是咱来进行光标更新
      if Input.trigger?(:LEFT)
        Sound.play_cursor
        if @index==MIN_INDEX
          @index=MAX_INDEX
        else
          @index-=1
        end
        #输入完毕之后再更新
        update_cursor
        
      elsif Input.trigger?(:RIGHT)
        Sound.play_cursor
        if @index==MAX_INDEX
          #强化条件
          @index=MIN_INDEX
         
        else
          @index+=1
        end
        #输入完毕之后再更新
        update_cursor
      end
      
    end
  end
  
  #index外置接口
  def index
    @index
  end
  
  #更新光标
  def update_cursor
    #设置当前bitmap名字
      bitmap_name="#{GRAPHICS[0]}#{@index}"
      self.bitmap=Cache.mc_title(bitmap_name)
    end
  #设置当前index  
  def set_index(index)
    @index=index
  end
  
end



#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#  标题类
#==============================================================================
# Scene类
class Scene_Title < Scene_Base
    include LBQ::MC_Title
  def start
    super
    return if @bg_sprite
    @sparks=[]
   
    @timer=0
   
   
    #抄袭原版的=-=
    SceneManager.clear
    Graphics.freeze
   
    #创建显示端口
    create_viewports
   
    #创建背景
    create_background
   
    #创建精灵类
    create_sprites
   
    #播放标题音乐
    play_title_music
   
    #动态阶段
    @stage=0
   
  end
  
  #创建各种显示端口
  def create_viewports
    #背景
    #RESOLUTION[0],RESOLUTION[1]
    @bg_vp=Viewport.new(0,0,RESOLUTION[0],RESOLUTION[1])
   
    #选项
    @choice_vp=Viewport.new(0,0,RESOLUTION[0],RESOLUTION[1])
    @choice_vp.z=Z_SETTINGS[0]
   
    @spark_vp=Viewport.new(0,0,RESOLUTION[0],RESOLUTION[1])
    @spark_vp.z=Z_SETTINGS[1]
   
    @mask_vp=Viewport.new(0,0,RESOLUTION[0],RESOLUTION[1])
    @mask_vp.z=Z_SETTINGS[2]
  end
  
  
  #创建背景
  def create_background
    #滚动的背景
    @bg_sprite=Plane.new(@bg_vp)
   
    #设置背景图像
    @bg_sprite.bitmap=Cache.mc_title(GRAPHICS[3])
  end
  
  
  #更新
  def update
    super
   
    #计时器+
    @timer+=1
   
    #滚动
    @bg_sprite.ox+=SHIFT_SPEED[1] if @timer%SHIFT_SPEED[0]==0
   
     @sparks.push(Sprite_lbqSpark.new(@spark_vp)) if @timer%TIME_SPARK==0
     @sparks.each{|spk|spk.update }
     @sparks.each do |s|
       if s.delete_me
         @sparks.delete(s)
       end
     end
     

   
   
    case @stage
    when 0
      if @entered_save
        deal_with_already_entered
      end
      @mask_sprite.opacity-=MASK_FADE[0]
      if @mask_sprite.opacity<=0
        @stage=1
      end
      
    when 1
      #淡入阶段
      @logo_sprite.opacity+=FADE_SPEED
      if @logo_sprite.opacity>=255
        @stage=2
      end
      #更新选项
      @choice_sprite.update
    when 2
      @for_save = false
      @choice_sprite.update
      #如果确定了
      if Input.trigger?(:C)
        Sound.play_ok
        case @choice_sprite.index
        when 1
          @stage=3
        when 2
          @stage=4
        when 3
          @stage=5
        end
      end
    when 3
      Audio.bgm_fade(BGM_FADE)
      @mask_sprite.opacity+=MASK_FADE[1]
      if @mask_sprite.opacity>=255
        command_new_game
      end
    when 4
      @stage = 2
      @for_save = true
      command_continue
    when 5
      Audio.bgm_fade(BGM_FADE)
      @mask_sprite.opacity+=MASK_FADE[1]
      if @mask_sprite.opacity>=255
        exit
      end
    end
   
  end
  #--------------------------------------------------------------------------
  # ● 指令“继续游戏”
  #--------------------------------------------------------------------------
  def command_continue
    SceneManager.call(Scene_Load)
  end
  #--------------------------------------------------------------------------
  # ● 结束处理
  #--------------------------------------------------------------------------
  def terminate
    super
    SceneManager.snapshot_for_background
    return if @for_save
    @logo_sprite.dispose
    @choice_sprite.dispose
    @bg_sprite.dispose
    @bg_vp.dispose
    @choice_vp.dispose
  end
  #--------------------------------------------------------------------------
  # ● 指令“开始游戏”
  #--------------------------------------------------------------------------
  def command_new_game
    DataManager.setup_new_game
    $game_map.autoplay
    SceneManager.goto(Scene_Map)
  end
  def create_sprites
    @logo_sprite=Sprite_Base.new(@choice_vp)   
    @logo_sprite.bitmap=Cache.mc_title(GRAPHICS[2])
    @logo_sprite.opacity=0
   
    @choice_sprite=Sprite_Base.new(@choice_vp)
   
    @choice_sprite=Sprite_MCchoice.new(@choice_vp)
    @choice_sprite.opacity=0
   
    @mask_sprite=Sprite.new(@mask_vp)
    @mask_sprite.bitmap=Bitmap.new(RESOLUTION[0],RESOLUTION[1])
    @mask_sprite.bitmap.fill_rect(0,0,RESOLUTION[0],RESOLUTION[1],Color.new(0,0,0))
  end
  
  def play_title_music
    $data_system.title_bgm.play
    RPG::BGS.stop
    RPG::ME.stop
  end
  
end
[/pre]
作者: 熊喵酱    时间: 2013-4-9 10:47
表示很稀飯 效果粉好
不過我把SPARK的文件改成楠貓表情.... 表示笑果也很好....
第4個CHOICE圖片是為什麼有? 也沒用到  是什麼特別的時後的么?
作者: LBQ    时间: 2013-4-9 11:08
76213585 发表于 2013-4-9 10:47
表示很稀飯 效果粉好
不過我把SPARK的文件改成楠貓表情.... 表示笑果也很好....
第4個CH ...

楠猫效果好??? 。。。不科学。。。
Choice4 的确没有用。。。。是计划中的东西。。。之后功能取消了。。。删了好了。。。
作者: 熊猫抱树    时间: 2013-4-9 11:15
华丽丽的赶脚~
作者: 我爱吴悦淇    时间: 2013-4-9 12:48
这是标题天气效果吧,看起来不错哦~

哎呦,不错哦~   (不错你妹啊~) 开玩笑的,噗~
作者: cinderelmini    时间: 2013-4-9 18:26
抱走~
以后研究~
作者: 美丽晨露    时间: 2013-4-9 19:13
求XP相同的效果
作者: LBQ    时间: 2013-4-10 08:53
@shinyshinyh @cinderelmini @我爱吴悦淇 @熊猫抱树

发现bug。。。麻烦去主楼打补丁。。。。。。(加在原插件的下面)

本人对此深表歉意。。。
作者: 刘飞洋    时间: 2013-4-10 11:25
@LBQ 感觉这个没MOG脚本里动态标题好看
作者: 荷包PIG蛋    时间: 2013-4-10 18:05
嗯,MS还可以的说……收下了……
LBQ大好人…抱走研究…
作者: 丁二狗    时间: 2013-4-10 18:24
看上去效果不错
作者: LBQ    时间: 2013-4-10 19:02
刘飞洋 发表于 2013-4-10 11:25
@LBQ 感觉这个没MOG脚本里动态标题好看

嘛,如果你想这么认为也可以,每个人都有他独特的审美观。

对于我来讲,mog 太华而不实了,加了很多华丽的东西,但是效果也不怎么好,最终版的mog 又是相框又是背景切换啥的,感觉有失华丽的感觉。再加了雾图形之后貌似第一眼的画面呈现的是无序的混乱。

我不想让玩家认为我的标题是华丽到乱的那种感觉,所以我自己才会有这个脚本
作者: mwzjo    时间: 2013-4-17 14:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: yuyuyuyui    时间: 2013-8-12 22:04
請問這劇本能改用滑鼠控制嗎? 效果太好了捨不得換其他
作者: 怀念过去    时间: 2013-11-24 12:37
抱走~~~~~~
作者: 1091160905    时间: 2013-11-26 12:00
好漂亮呀!!!!跟MOG的差不多了
作者: 水野·迪尔    时间: 2013-12-1 02:06
标题嘛  可以用事件做出更华丽的效果
作者: houyuxiaoyang    时间: 2013-12-5 13:09
来关注一下,话说有vx的么?了不起。。。
作者: 624183062    时间: 2014-1-25 22:11
lz,薄雾年代记纪那个图片怎么制作
作者: RPG_小菜    时间: 2014-8-3 01:23
连接挂掉了
作者: 黑田Kuroda    时间: 2014-8-15 15:28
樓主你好!這個腳本幫了我一個大忙,而且畫面很漂亮,所以我用在自己的遊戲上了。
有人在帖上說直接用薄霧的選項圖片不太好 (其實我也不太懂他說的...?),
我想問問你意見,如果真的有冒犯之處真的十分抱歉,我會馬上撒走標題。
稍微做了點改動後是這樣的:

是不是意思只能用腳本,不能用裡面的素材? 我不是常混66rpg所以也不太懂。
作者: LBQ    时间: 2014-8-18 17:08
黑田Kuroda 发表于 2014-8-15 15:28
樓主你好!這個腳本幫了我一個大忙,而且畫面很漂亮,所以我用在自己的遊戲上了。
有人在帖上說直接用薄霧 ...

是这样的:
我对于直接用选项图片(从道德上来讲)是完全没有意见的
但是我觉得真正认真制作的游戏都不会直接用原来选项图片的

所以说:
可以用里面的素材,但是不推荐用

(当然也没有冒犯我什么
作者: 九靈    时间: 2014-8-19 08:56
吐槽一下
rand(4) 是 0,1,2,3 而已吧
[pre lang="ruby" line="1"]  def get_rand_pos
    pos=[]
    case rand(4)
    when 0
      pos[0]=0
    when 1
      pos[0]=200
    when 2
      pos[0]=300
    when 3
      pos[0]=500
    when 4
      pos[0]=100
    end
   
    case rand(4)
    when 0
      pos[1]=0
    when 1
      pos[1]=200
    when 2
      pos[1]=300
    when 3
      pos[1]=500
    when 4
      pos[1]=100
    end
    return pos
  end
[/pre]


when 4 还有意义吗


作者: taroxd    时间: 2014-8-19 09:11
九靈 发表于 2014-8-19 08:56
吐槽一下
rand(4) 是 0,1,2,3 而已吧
  def get_rand_pos

据说正确姿势是这样
  1. list = [0, 200, 300, 500, 100]
  2. [list.sample, list.sample]
复制代码

作者: linkia123    时间: 2014-10-4 12:19
楼主,我用了你这个脚本,但是我只把那个logo图换了可以吗?
作者: Catharsis    时间: 2014-10-12 00:08
请问一下楼主,如果想要让背景图片完全显示之后就停止滚动应该怎样改动呢?
作者: 黎O沫    时间: 2015-1-22 17:40
问下提高分辨率以后标题窗口仍有黑边不能铺满窗口.....该如何解决......
作者: konechaos    时间: 2015-1-25 00:50
话说增大分辨率后怎么修改选项和标题的位置?求大大指教!
作者: konechaos    时间: 2015-1-25 00:56
konechaos 发表于 2015-1-25 00:50
话说增大分辨率后怎么修改选项和标题的位置?求大大指教!

好吧 =  =  我看了下图片大小似乎明白了.....难怪脚本里怎么都找不到相应数字....
作者: mr24970985    时间: 2015-1-28 14:41
抱走研究了 給人感覺還挺不錯的
作者: bobing7    时间: 2015-2-7 16:16
本帖最后由 bobing7 于 2015-2-7 16:57 编辑
Catharsis 发表于 2014-10-12 00:08
请问一下楼主,如果想要让背景图片完全显示之后就停止滚动应该怎样改动呢? ...


抱歉推了舊帖
這幾天我都在研究你的問題,
以一幅1366*768的圖片為例,假設我的遊戲解像度是960*640

這裡說的是置換原文的360-369行,我可以寫成:

[pre lang="ruby" line="1"]    #滾動
     if  @bg_sprite.ox < 406 #1366-960=406,滾動到最右邊就停下來
  #如果寫成 if  @timer < 30,就是30單位的時間後停下來
         @bg_sprite.ox+=SHIFT_SPEED[1] if @timer%SHIFT_SPEED[0]==0   
     end #原帖內容不變
         
     @sparks.push(Sprite_lbqSpark.new(@spark_vp)) if @timer%TIME_SPARK==0
     
     @sparks.each{|spk|spk.update }
     @sparks.each do |s|
      
      end [/pre]

剛剛有試過把以下那句改成return,可是藥效太強,連螢火蟲都停了
[pre lang="ruby" line="1"]@bg_sprite.ox+=SHIFT_SPEED[1] if @timer%SHIFT_SPEED[0]==0   
     end #原帖內容不變[/pre]

本人是個新手
以上供大家參考,如果有更好寫法請指點一下,謝謝。
作者: 星月★Starmoon    时间: 2015-8-19 12:20
很棒的腳本~O▽O
樓主請問一下~除了newgame,continue,endgame再另外加一個選項要怎麼做呢?(本人腳本完全不行{:2_263:})
作者: 雪蓮姬    时间: 2015-10-29 20:34
感謝分享~
很好用~而且跑得很順暢!!
作者: 咖啡狐.麟音    时间: 2017-3-2 14:46
{:2_249:}感谢分享!效果一级棒!
作者: 狂乱月眼    时间: 2017-7-20 22:42
范例地址已失效,请补档。
作者: 狂乱月眼    时间: 2017-7-20 22:46
本帖最后由 狂乱月眼 于 2017-7-30 12:50 编辑

谢谢,两天后尝试重新打开,可以正常下载了,但我已经转战MV了....
作者: 冥王·战神小付    时间: 2019-1-26 22:13
选项怎么弄,为什么不显示选项
作者: 我妻寒十    时间: 2020-4-27 08:34
不知道这算不算是挖坟……但是,求救啊大佬!TvT为什么我这边打了补丁和没打都是一样的呢,不管是直接贴在脚本的下面,还是新建一个脚本页放上,都是依然有这个bug……TvT这是怎么回事啊
作者: AKK    时间: 2020-10-31 17:28
范例地址为什么点不开啊QAQ
作者: AKK    时间: 2020-10-31 17:33
AKK 发表于 2020-10-31 17:28
范例地址为什么点不开啊QAQ

嗷找到了!终于点开了!谢谢大佬的地址!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X5.0