Project1

标题: 在开始菜单中背景雾移动效果 [打印本页]

作者: 林小白    时间: 2014-11-3 18:03
标题: 在开始菜单中背景雾移动效果
请教一下,如何在游戏开始界面,背景是那种雾在移动的效果,但雾是最突出的效果,不与标题图并行的那种。
作者: 正太君    时间: 2014-11-6 12:01

Project3.rar (431.36 KB, 下载次数: 84)
RUBY 代码复制
  1. #==============================================================================
  2. # ■ 标题雾效果(通过战斗雾效果修改制作)
  3. #------------------------------------------------------------------------------
  4. #  作者:聪仔
  5. #   转载请保留脚本来源:本脚本来自rpg.blue
  6. #==============================================================================
  7. #==============================================================================
  8. # ■ Cache
  9. #==============================================================================
  10. module Cache
  11.   #--------------------------------------------------------------------------
  12.   # * 获取远景图档
  13.   #     filename : 文件名
  14.   #--------------------------------------------------------------------------
  15.   def self.fogs(filename)
  16.     load_bitmap("Graphics/Fogs/", filename)
  17.   end
  18. end
  19.  
  20. #==============================================================================
  21. # ■ Sprite_Mist
  22. #==============================================================================
  23. class Sprite_Mist < Sprite
  24.   #--------------------------------------------------------------------------
  25.   # ● 初始化
  26.   #--------------------------------------------------------------------------
  27.   def initialize(viewport)
  28.     super(viewport)
  29.     self.bitmap = Cache.fogs("Mist")
  30.     self.blend_type = 1
  31.     self.ox = 128
  32.     self.oy = 160
  33.     self.y = Graphics.height - 128 - self.oy + rand(240)
  34.     setup
  35.     self.x = rand(Graphics.width)
  36.     @real_x = self.x << 10
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● 设置
  40.   #--------------------------------------------------------------------------
  41.   def setup
  42.     @vx = rand(512) + 512
  43.     self.zoom_x = (rand(600) + 700) / 1200.0
  44.     if self.zoom_x < 1.0
  45.       self.z = 2
  46.     else
  47.       self.z = 400
  48.     end
  49.     self.zoom_y = self.zoom_x
  50.     self.x = Graphics.width + (128 * self.zoom_x).to_i
  51.     @real_x = self.x << 10
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 释放
  55.   #--------------------------------------------------------------------------
  56.   def dispose
  57.     self.bitmap.dispose
  58.     super
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 更新
  62.   #--------------------------------------------------------------------------
  63.   def update
  64.     super
  65.     @real_x -= @vx
  66.     self.x = @real_x >> 10
  67.     setup if self.x < (0 - (128 * self.zoom_x).to_i)
  68.   end
  69. end
  70.  
  71. #==============================================================================
  72. # ■ Scene_Title
  73. #------------------------------------------------------------------------------
  74. #  处理标题画面的类。
  75. #==============================================================================
  76. class Scene_Title < Scene_Base
  77.   #--------------------------------------------------------------------------
  78.   # ● 开始处理
  79.   #--------------------------------------------------------------------------
  80.   def start
  81.     super
  82.     load_database                     # 载入数据库
  83.     create_game_objects               # 生成游戏对象
  84.     check_continue                    # 判断继续是否有效
  85.     create_title_graphic              # 生成标题画面图像
  86.     create_command_window             # 生成指令窗口
  87.     play_title_music                  # 播放标题画面音乐
  88.     create_mist
  89.   end
  90.   #--------------------------------------------------------------------------
  91.   # ● 结束处理
  92.   #--------------------------------------------------------------------------
  93.   def terminate
  94.     super
  95.     dispose_command_window
  96.     snapshot_for_background
  97.     dispose_title_graphic
  98.     dispose_mist
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ● 更新画面
  102.   #--------------------------------------------------------------------------
  103.   def update
  104.     super
  105.     @command_window.update
  106.     update_mist
  107.     if Input.trigger?(Input::C)
  108.       case @command_window.index
  109.       when 0   
  110.         command_new_game
  111.       when 1   
  112.         command_continue
  113.       when 2   
  114.         command_shutdown
  115.       end
  116.     end
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● 生成雾
  120.   #--------------------------------------------------------------------------
  121.   def create_mist
  122.     @mist_sprites = []
  123.     for i in 0...25
  124.       @mist_sprites.push(Sprite_Mist.new(@viewport1))
  125.     end
  126.   end
  127.   #--------------------------------------------------------------------------
  128.   # ● 释放雾
  129.   #--------------------------------------------------------------------------
  130.   def dispose_mist
  131.     for sprite in @mist_sprites
  132.       sprite.dispose
  133.     end
  134.   end
  135.   #--------------------------------------------------------------------------
  136.   # ● 更新雾
  137.   #--------------------------------------------------------------------------
  138.   def update_mist
  139.     for sprite in @mist_sprites
  140.       sprite.update
  141.     end
  142.   end
  143. end





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