设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2454|回复: 6
打印 上一主题 下一主题

[已经解决] 怎么制作标题画面的淡出淡入

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2010-7-29
帖子
69
跳转到指定楼层
1
发表于 2010-8-18 01:17:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 497406594 于 2010-8-18 17:21 编辑

我用的是流星雨+标题图片的整合脚本  但是无论是这个脚本还是系统默认的
刚开始游戏的时候直接就一张标题冒出来  感觉好突兀    开始游戏的时候也是咻的一下就进入主题了= =!
所以想请教下大神们怎么改整个标题画面的淡出淡入   
望能人给点指引,下面是我用的脚本
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. # 作者:chaochao+66rpg的66
  4. #==============================================================================

  5. #==============================================================================
  6. #■ Scene_Title
  7. #------------------------------------------------------------------------------
  8. #  处理标题画面的类。
  9. #==============================================================================

  10. class Scene_Title
  11.   WEATHER = 4    # 使用自定义效果(0:无,1:雨,2:暴风雨,3:雪,4:自定义)
  12.   MAXNUMBER = 30  # 天气图片数量

  13.   WEATHER_FILE = "Graphics/Pictures/Title_starlong.png"
  14.   # 自定义图片路径,这个文件可以从黑暗圣剑DEMO获得,是流星雨

  15.   BLEND_TYPE = 0 # 合成方式(0:普通,1:加法,2:减法)
  16.   WEATHER_X = 5 # X方向每回合减少象素
  17.   WEATHER_Y = 5 # Y方向每回合减少象素
  18.   WEATHER_OPACITY = 2 #每回合减低透明度
  19.   START_OPACITY = 200 #出现时的透明度
  20.   RAND_X = 1200 # 随机X范围
  21.   RAND_Y = 600 # 随机Y范围
  22.   HEIGHT = -600 # 出现时候的屏幕Y
  23.   WIDTH = 100 # 出现时候的屏幕X
  24.   #--------------------------------------------------------------------------
  25.   # ● 主处理
  26.   #--------------------------------------------------------------------------

  27.   def main
  28.     if $BTEST
  29.       battle_test
  30.       return
  31.     end
  32.     $data_actors = load_data("Data/Actors.rxdata")
  33.     $data_classes = load_data("Data/Classes.rxdata")
  34.     $data_skills = load_data("Data/Skills.rxdata")
  35.     $data_items = load_data("Data/Items.rxdata")
  36.     $data_weapons = load_data("Data/Weapons.rxdata")
  37.     $data_armors = load_data("Data/Armors.rxdata")
  38.     $data_enemies = load_data("Data/Enemies.rxdata")
  39.     $data_troops = load_data("Data/Troops.rxdata")
  40.     $data_states = load_data("Data/States.rxdata")
  41.     $data_animations = load_data("Data/Animations.rxdata")
  42.     $data_tilesets = load_data("Data/Tilesets.rxdata")
  43.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  44.     $data_system = load_data("Data/System.rxdata")
  45.     $game_system = Game_System.new
  46.     # 生成标题图形
  47.     @sprite = Sprite.new
  48.     @sprite.bitmap = RPG::Cache.title($data_system.title_name)
  49.     @ox = 0
  50.     @oy = 0
  51.     color1 = Color.new(255,255,255, 255)
  52.     color2 = Color.new(255, 255, 255, 128)
  53.     @rain_bitmap = Bitmap.new(7, 56)
  54.     for i in 0..6
  55.       @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
  56.     end
  57.     @storm_bitmap = Bitmap.new(34, 64)
  58.     for i in 0..31
  59.       @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
  60.       @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
  61.       @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
  62.     end
  63.     @snow_bitmap = Bitmap.new(6, 6)
  64.     @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
  65.     @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
  66.     @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
  67.     @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
  68.     @sprites = []
  69.     for i in 1..40
  70.       sprite = Sprite.new
  71.       case WEATHER
  72.       when 1
  73.         sprite.bitmap = @rain_bitmap
  74.       when 2
  75.         sprite.bitmap = @storm_bitmap
  76.       when 3
  77.         sprite.bitmap = @snow_bitmap
  78.       when 4
  79.         sprite.bitmap = Bitmap.new(WEATHER_FILE)
  80.       end
  81.       sprite.z = 1000
  82.       sprite.x = -1000
  83.       sprite.y = -1000
  84.       sprite.visible = (i <= MAXNUMBER)
  85.       sprite.blend_type = BLEND_TYPE
  86.       sprite.opacity = START_OPACITY
  87.       @sprites.push(sprite)
  88.     end
  89.     weather_update

  90.     # 生成标题图形
  91.     @sprite = [Sprite.new]
  92.     for i in 0..6
  93.       @sprite[i] = Sprite.new
  94.       @sprite[i].opacity = 0
  95.     end
  96.     @sprite[0].bitmap = RPG::Cache.title($data_system.title_name)
  97.     @sprite[0].opacity = 0
  98.     #开始游戏的图片
  99.     @sprite[1].bitmap = Bitmap.new("Graphics/Pictures/start-1.png")
  100.     @sprite[2].bitmap = Bitmap.new("Graphics/Pictures/start-2.png")
  101.     #继续游戏的图片
  102.     @sprite[3].bitmap = Bitmap.new("Graphics/Pictures/continue-1.png")
  103.     @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/continue-2.png")
  104.     #结束游戏的图片
  105.     @sprite[5].bitmap = Bitmap.new("Graphics/Pictures/exit-1.png")
  106.     @sprite[6].bitmap = Bitmap.new("Graphics/Pictures/exit-2.png")
  107.     #图片位置
  108.     for i in 1..6
  109.       x=400
  110.       y=(i+1)/2*50+180
  111.       @sprite[i].x =x
  112.       @sprite[i].y =y
  113.     end
  114.     @continue_enabled = false
  115.     for i in 0..3
  116.       if FileTest.exist?("Save#{i+1}.rxdata")
  117.         @continue_enabled = true
  118.       end
  119.     end
  120.     if @continue_enabled
  121.       @command_index = 1
  122.     else
  123.       @command_index = 0
  124.       @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/continue-2.png")
  125.     end
  126.     $game_system.bgm_play($data_system.title_bgm)
  127.     Audio.me_stop
  128.     Audio.bgs_stop
  129.     Graphics.transition
  130.     loop do
  131.       Graphics.update
  132.       #淡出背景圖形
  133.       if @sprite[0].opacity <= 255
  134.         @sprite[0].opacity += 15
  135.       end
  136.       Input.update
  137.       update
  138.       if $scene != self
  139.         break
  140.       end
  141.     end
  142.     Graphics.freeze
  143.     # 釋放圖形
  144.     for i in 0..6
  145.       @sprite[i].bitmap.dispose
  146.       @sprite[i].dispose
  147.     end
  148.       for sprite in @sprites
  149.       sprite.dispose
  150.     end
  151.     @rain_bitmap.dispose
  152.     @storm_bitmap.dispose
  153.     @snow_bitmap.dispose
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● 刷新天气
  157.   #--------------------------------------------------------------------------
  158.   def weather_update
  159.     return if WEATHER == 0
  160.     for i in 1..MAXNUMBER
  161.       sprite = @sprites[i]
  162.       if sprite == nil
  163.         break
  164.       end
  165.       if WEATHER == 1
  166.         sprite.x -= 2
  167.         sprite.y += 16
  168.         sprite.opacity -= 8
  169.       end
  170.       if WEATHER == 2
  171.         sprite.x -= 8
  172.         sprite.y += 16
  173.         sprite.opacity -= 12
  174.       end
  175.       if WEATHER == 3
  176.         sprite.x -= 2
  177.         sprite.y += 8
  178.         sprite.opacity -= 8
  179.       end
  180.       if WEATHER == 4
  181.         sprite.x -= WEATHER_X
  182.         sprite.y += WEATHER_Y
  183.         sprite.opacity -= WEATHER_OPACITY
  184.       end
  185.       x = sprite.x - @ox
  186.       y = sprite.y - @oy
  187.       if sprite.opacity < 32 or x < -100 or x > 750 or y < -1000 or y > 500
  188.         sprite.x = rand(RAND_X) + WIDTH + @ox
  189.         sprite.y = rand(RAND_Y) + HEIGHT + @oy
  190.         sprite.opacity = START_OPACITY
  191.       end
  192.     end
  193.   end


  194.   def update
  195.   chaochaocommandchaochao
  196.   if Input.trigger?(Input::C)
  197.     case @command_index
  198.       when 0
  199.         command_new_game
  200.       when 1
  201.         command_continue
  202.       when 2
  203.         command_shutdown
  204.       end
  205.     end
  206.     weather_update
  207.   end

  208.   def chaochaocommandchaochao
  209.     if Input.trigger?(Input::UP)
  210.       @command_index -= 1
  211.       if @command_index < 0
  212.         @command_index = 2
  213.       end
  214.       $game_system.se_play($data_system.cursor_se)
  215.     end
  216.     if Input.trigger?(Input::DOWN)
  217.       @command_index += 1
  218.       if @command_index > 2
  219.         @command_index = 0
  220.       end
  221.       $game_system.se_play($data_system.cursor_se)
  222.     end
  223.     case @command_index
  224.     when 0
  225.       if @sprite[1].opacity >= 0
  226.         @sprite[1].opacity -= 30
  227.       end
  228.       if @sprite[2].opacity <= 240
  229.         @sprite[2].opacity += 30
  230.       end
  231.       if @sprite[3].opacity <= 210
  232.         @sprite[3].opacity += 30
  233.       end
  234.       if @sprite[4].opacity >= 0
  235.         @sprite[4].opacity -= 30
  236.       end
  237.       if @sprite[5].opacity <= 210
  238.         @sprite[5].opacity += 30
  239.       end
  240.       if @sprite[6].opacity >= 0
  241.         @sprite[6].opacity -= 30
  242.       end
  243.     when 1
  244.       if @sprite[1].opacity <= 210
  245.         @sprite[1].opacity += 30
  246.       end
  247.       if @sprite[2].opacity >= 0
  248.         @sprite[2].opacity -= 30
  249.       end
  250.       if @sprite[3].opacity >= 0
  251.         @sprite[3].opacity -= 30
  252.       end
  253.       if @sprite[4].opacity <= 240
  254.         @sprite[4].opacity += 30
  255.       end
  256.       if @sprite[5].opacity <= 210
  257.         @sprite[5].opacity += 30
  258.       end
  259.       if @sprite[6].opacity >= 0
  260.         @sprite[6].opacity -= 30
  261.       end
  262.     when 2
  263.       if @sprite[1].opacity <= 210
  264.         @sprite[1].opacity += 30
  265.       end
  266.       if @sprite[2].opacity >= 0
  267.         @sprite[2].opacity -= 30
  268.       end
  269.       if @sprite[3].opacity <= 210
  270.         @sprite[3].opacity += 30
  271.       end
  272.       if @sprite[4].opacity >= 0
  273.         @sprite[4].opacity -= 30
  274.       end
  275.       if @sprite[5].opacity >= 0
  276.         @sprite[5].opacity -= 30
  277.       end
  278.       if @sprite[6].opacity <= 240
  279.         @sprite[6].opacity += 30
  280.       end
  281.     end
  282.   end
  283. end

  284. # ————————————————————————————————————
  285. # 本脚本来自www.66rpg.com,转载请保留此信息
  286. # ————————————————————————————————————

  287. class Interpreter

  288.   BOOK_READING = 50 # 默认打开50开关后进入读书系统

  289.   #--------------------------------------------------------------------------
  290.   # ● 显示文章
  291.   #--------------------------------------------------------------------------
  292.   def command_101
  293.     # 另外的文章已经设置过 message_text 的情况下
  294.     if $game_temp.message_text != nil
  295.       # 结束
  296.       return false
  297.     end
  298.     # 设置信息结束后待机和返回调用标志
  299.     @message_waiting = true
  300.     $game_temp.message_proc = Proc.new { @message_waiting = false }
  301.     # message_text 设置为 1 行
  302.     $game_temp.message_text = @list[@index].parameters[0] + "\n"
  303.     line_count = 1
  304.     # 循环
  305.     loop do
  306.       # 下一个事件指令为文章两行以上的情况
  307.       if $game_switches[BOOK_READING] and @list[@index+1].code == 101#阅读书刊报纸
  308.         unless $game_temp.in_battle
  309.           $scene.message_window.height = 320
  310.           $scene.message_window.contents = Bitmap.new($scene.message_window.width - 32, $scene.message_window.height - 32)
  311.           $scene.message_window.contents.font.size = 20
  312.           $game_temp.message_text += @list[@index+1].parameters[0] +"\n"
  313.           line_count+=1
  314.           @index+=1
  315.         end
  316.       end
  317.       if $game_switches[BOOK_READING]==false
  318.         unless $game_temp.in_battle
  319.           if $scene.message_window.height == 320
  320.             $scene.message_window.height = 160
  321.             $scene.message_window.contents = Bitmap.new($scene.message_window.width - 32, $scene.message_window.height - 32)
  322.             $scene.message_window.contents.font.size = 22
  323.           end
  324.         end
  325.       end
  326.       if @list[@index+1].code == 401
  327.         # message_text 添加到第 2 行以下
  328.         $game_temp.message_text += @list[@index+1].parameters[0] + "\n"
  329.         line_count += 1
  330.       # 事件指令不在文章两行以下的情况
  331.       else
  332.         # 下一个事件指令为显示选择项的情况下
  333.         if @list[@index+1].code == 102
  334.           # 如果选择项能收纳在画面里
  335.           if @list[@index+1].parameters[0].size <= 4 - line_count
  336.             # 推进索引
  337.             @index += 1
  338.             # 设置选择项
  339.             $game_temp.choice_start = line_count
  340.             setup_choices(@list[@index].parameters)
  341.           end
  342.         # 下一个事件指令为处理输入数值的情况下
  343.         elsif @list[@index+1].code == 103
  344.           # 如果数值输入窗口能收纳在画面里
  345.           if line_count < 4
  346.             # 推进索引
  347.             @index += 1
  348.             # 设置输入数值
  349.             $game_temp.num_input_start = line_count
  350.             $game_temp.num_input_variable_id = @list[@index].parameters[0]
  351.             $game_temp.num_input_digits_max = @list[@index].parameters[1]
  352.           end
  353.         end
  354.         # 继续
  355.         return true
  356.       end
  357.       # 推进索引
  358.       @index += 1
  359.     end
  360.   end
  361. end

  362. class Scene_Map
  363.   attr_accessor :message_window
  364. end

  365. #==============================================================================
  366. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  367. #=============================================================================
  368. #=============================================================================
复制代码

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2010-7-5
帖子
483
2
发表于 2010-8-18 08:20:49 | 只看该作者
你这个没有淡出吗?
1,脚本里写(我不太清楚写在哪里)
2,事件标题(想要标题淡入淡出这个方法最能保证不出错- -!)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2010-7-29
帖子
69
3
 楼主| 发表于 2010-8-18 13:46:20 | 只看该作者
其实我是个脚本盲,不知道这里有没有淡出,只是看自己开头总是一下子进入标题。
虽然感觉事件标题不错,但是重新制作起来有点麻烦了= =!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2010-7-5
帖子
483
4
发表于 2010-8-18 14:01:08 | 只看该作者
那我去找下淡出的脚本
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2010-7-29
帖子
69
5
 楼主| 发表于 2010-8-18 15:45:22 | 只看该作者
或者哪个脚本可以改淡出淡入的 也请能人告知下,还有我不想用事件标题= =!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
60 小时
注册时间
2009-7-16
帖子
199
6
发表于 2010-8-18 16:01:38 | 只看该作者
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2010-7-29
帖子
69
7
 楼主| 发表于 2010-8-18 17:21:10 | 只看该作者
算了,还是不用事件了,将就那样好了= =!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-28 19:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表