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

Project1

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

[已经解决] 关于标题画面的脚本

 关闭 [复制链接]

Lv4.逐梦者

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
帖子
271
跳转到指定楼层
1
发表于 2009-12-6 10:31:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 timmyyayaya 于 2009-12-11 14:45 编辑

我使用66的标题天气脚本
不过之前忘记哪边被修正过
导致脚本出问题
进入标题画面几十秒 标题画面就会变成黑一片
请问有哪位大大可以帮我抓出问题吗
原本是想要让背景优先出现 再来是天气效果
再来是logo 最后是选项
结果没想到背景会过了几秒就黑掉…
还请大大们帮帮忙
  1. #==============================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  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 = 50  # 天气图片数量
  13.   
  14.   WEATHER_FILE = "Graphics/Pictures/fireworm.png"
  15.   
  16.   BLEND_TYPE = 1 # 合成方式(0:普通,1:加法,2:减法)
  17.   WEATHER_X = 2 # X方向每回合减少象素
  18.   WEATHER_Y = -3 # Y方向每回合减少象素
  19.   WEATHER_OPACITY = 0.3 #每回合减低透明度
  20.   START_OPACITY = 180 #出现时的透明度
  21.   RAND_X = 1500 # 随机X范围
  22.   RAND_Y = 1500 # 随机Y范围
  23.   HEIGHT = -150 # 出现时候的屏幕Y
  24.   WIDTH = -150 # 出现时候的屏幕X
  25.   
  26.   #--------------------------------------------------------------------------
  27.   # ● 主处理
  28.   #--------------------------------------------------------------------------
  29.   
  30.   def main
  31.     if $BTEST
  32.       battle_test
  33.       return
  34.     end
  35.     $data_actors = load_data("Data/Actors.rxdata")
  36.     $data_classes = load_data("Data/Classes.rxdata")
  37.     $data_skills = load_data("Data/Skills.rxdata")
  38.     $data_items = load_data("Data/Items.rxdata")
  39.     $data_weapons = load_data("Data/Weapons.rxdata")
  40.     $data_armors = load_data("Data/Armors.rxdata")
  41.     $data_enemies = load_data("Data/Enemies.rxdata")
  42.     $data_troops = load_data("Data/Troops.rxdata")
  43.     $data_states = load_data("Data/States.rxdata")
  44.     $data_animations = load_data("Data/Animations.rxdata")
  45.     $data_tilesets = load_data("Data/Tilesets.rxdata")
  46.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  47.     $data_system = load_data("Data/System.rxdata")
  48.     $game_system = Game_System.new
  49.     # 生成标题图形
  50.     @sprite = Sprite.new
  51.     @sprite.bitmap = RPG::Cache.title($data_system.title_name)
  52.     @ox = 0
  53.     @oy = 0
  54.     color1 = Color.new(255,255,255, 255)
  55.     color2 = Color.new(255, 255, 255, 128)
  56.     @rain_bitmap = Bitmap.new(7, 56)
  57.     for i in 0..6
  58.       @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
  59.     end
  60.     @storm_bitmap = Bitmap.new(34, 64)
  61.     for i in 0..31
  62.       @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
  63.       @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
  64.       @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
  65.     end
  66.     @snow_bitmap = Bitmap.new(6, 6)
  67.     @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
  68.     @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
  69.     @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
  70.     @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
  71.     @sprites = []
  72.     for i in 1..40
  73.       sprite = Sprite.new
  74.       case WEATHER
  75.       when 1
  76.         sprite.bitmap = @rain_bitmap
  77.       when 2
  78.         sprite.bitmap = @storm_bitmap
  79.       when 3
  80.         sprite.bitmap = @snow_bitmap
  81.       when 4
  82.         sprite.bitmap = Bitmap.new(WEATHER_FILE)
  83.       end
  84.       sprite.z = 1000
  85.       sprite.x = 1000
  86.       sprite.y = 500
  87.       sprite.visible = (i <= MAXNUMBER)
  88.       sprite.blend_type = BLEND_TYPE
  89.       sprite.opacity = START_OPACITY
  90.       @sprites.push(sprite)
  91.     end
  92.    weather_update
  93.     # 生成标题图形
  94.     @sprite = [Sprite.new]
  95.     for i in 0..6
  96.       @sprite[i] = Sprite.new
  97.       @sprite[i].opacity = 0
  98.     end
  99.     @sprite[0].bitmap = RPG::Cache.title($data_system.title_name)
  100.     @sprite[0].opacity = 0
  101.     # 生成LOGO圖形
  102.     @sprite[0] = Sprite.new
  103.     @sprite[0].bitmap = Bitmap.new("Graphics/Titles/LOGO")
  104.     @sprite[0].x = 40
  105.     @sprite[0].y = 40     
  106.     #开始游戏的图片
  107.     @sprite[1].bitmap = Bitmap.new("Graphics/Pictures/New off.png")
  108.     @sprite[2].bitmap = Bitmap.new("Graphics/Pictures/New on.png")
  109.     #继续游戏的图片
  110.     @sprite[3].bitmap = Bitmap.new("Graphics/Pictures/Load off.png")
  111.     @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/Load on.png")
  112.     #结束游戏的图片
  113.     @sprite[5].bitmap = Bitmap.new("Graphics/Pictures/Exit off.png")
  114.     @sprite[6].bitmap = Bitmap.new("Graphics/Pictures/Exit on.png")
  115.     #图片位置
  116.     for i in 1..6
  117.       x=(i+1)/2*0+480
  118.       y=(i+1)/2*40+300
  119.       @sprite[i].x =x
  120.       @sprite[i].y =y
  121.     end
  122.     @continue_enabled = false
  123.     for i in 0..3
  124.       if FileTest.exist?("Save#{i+1}.rxdata")
  125.         @continue_enabled = true
  126.       end
  127.     end
  128.     if @continue_enabled
  129.       @command_index = 1
  130.     else
  131.       @command_index = 0
  132.       @sprite[4].bitmap = Bitmap.new("Graphics/Pictures/Load off.png")
  133.     end
  134.     $game_system.bgm_play($data_system.title_bgm)
  135.     Audio.me_stop
  136.     Audio.bgs_stop
  137.     Graphics.transition
  138.     loop do
  139.       Graphics.update
  140.    
  141.       #淡出背景圖形
  142.       if @sprite[0].opacity <= 255
  143.         @sprite[0].opacity += 15
  144.       end
  145.       Input.update
  146.       update
  147.       if $scene != self
  148.         break
  149.       end
  150.     end
  151.     Graphics.freeze
  152.     # 釋放圖形
  153.     for i in 0..6
  154.       @sprite[i].bitmap.dispose
  155.       @sprite[i].dispose
  156.     end
  157.       for sprite in @sprites
  158.       sprite.dispose
  159.     end
  160.     @rain_bitmap.dispose
  161.     @storm_bitmap.dispose
  162.     @snow_bitmap.dispose
  163.   end
  164.   #--------------------------------------------------------------------------
  165.   # ● 刷新天气
  166.   #--------------------------------------------------------------------------
  167.   def weather_update
  168.     return if WEATHER == 0
  169.     for i in 1..MAXNUMBER
  170.       sprite = @sprites[i]
  171.       if sprite == nil
  172.         break
  173.       end
  174.       if WEATHER == 1
  175.         sprite.x -= 2
  176.         sprite.y += 16
  177.         sprite.opacity -= 8
  178.       end
  179.       if WEATHER == 2
  180.         sprite.x -= 8
  181.         sprite.y += 16
  182.         sprite.opacity -= 12
  183.       end
  184.       if WEATHER == 3
  185.         sprite.x -= 2
  186.         sprite.y += 8
  187.         sprite.opacity -= 8
  188.       end
  189.       if WEATHER == 4
  190.         sprite.x -= WEATHER_X
  191.         sprite.y += WEATHER_Y
  192.         sprite.opacity -= WEATHER_OPACITY
  193.       end
  194.       x = sprite.x - @ox
  195.       y = sprite.y - @oy
  196.       if sprite.opacity < 32 or x < -100 or x > 750 or y < -1000 or y > 500
  197.         sprite.x = rand(RAND_X) + WIDTH + @ox
  198.         sprite.y = rand(RAND_Y) + HEIGHT + @oy
  199.         sprite.opacity = START_OPACITY
  200.       end
  201.     end
  202.   end


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

  295. # ————————————————————————————————————
  296. # 本脚本来自[url]www.66rpg.com[/url],转载请保留此信息
  297. # ————————————————————————————————————

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

  375. class Scene_Map
  376.   attr_accessor :message_window
  377. end

  378. #==============================================================================
  379. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  380. #==============================================================================
复制代码

Lv4.逐梦者

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
帖子
271
2
 楼主| 发表于 2009-12-6 11:52:47 | 只看该作者
不好意思 在此附上测试用工程
方便大大们帮忙测试
http://www.mediafire.com/?yyyd5v1ntji
谢谢喔
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
帖子
271
3
 楼主| 发表于 2009-12-6 14:57:37 | 只看该作者
Download好像有人按下载了
不知道能不能顺利解决问题 等待中
谢谢有查看的人@@
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
帖子
271
4
 楼主| 发表于 2009-12-8 01:49:17 | 只看该作者
问题不知不觉又被压到第二页了 推一下 有大大可以帮忙吗@@?
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
93 小时
注册时间
2009-10-16
帖子
235
5
发表于 2009-12-8 10:20:30 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
帖子
271
6
 楼主| 发表于 2009-12-8 18:02:45 | 只看该作者
:) 还可以下载 刚测试过
有时候会跑出广告
重新整理(F5)  有出现Click here to start download..
点下去就能下载了 谢谢喔
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
帖子
271
7
 楼主| 发表于 2009-12-9 21:24:39 | 只看该作者
问题不知不觉又被压到第二页了 再推 等大大帮忙@@
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6865
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

8
发表于 2009-12-9 23:03:17 | 只看该作者
难道你没有发现你帖的脚本最后都变成斜体字了么?

要用 [code ] 脚本内容 [/code ]
这个code代码框起来

你给的网页打不开

4M以内大小的话就上传论坛附件吧











你知道得太多了

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
帖子
271
9
 楼主| 发表于 2009-12-9 23:19:47 | 只看该作者
感谢告知 之前不太会使用论坛的其它功能@@
在此附上档案了 谢谢

Title.rar

286.13 KB, 下载次数: 47

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6865
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

10
发表于 2009-12-10 02:11:13 | 只看该作者
本帖最后由 后知后觉 于 2009-12-10 02:12 编辑

修改了52行.53行.96行.增加了155行.156行.211行
出现主楼那BUG的原因是标题图形用的引用名 @sprite被重新赋值成了一个数组
导致原标题图形失去了引用名而被GC(垃圾回收站)回收.故消失
并不是被变黑.那黑色是窗口的背景色

Project3.rar

285.56 KB, 下载次数: 60












你知道得太多了

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-26 21:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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