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

Project1

 找回密码
 注册会员
搜索

在标题中加入新选项的问题

查看数: 1913 | 评论数: 12 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2009-9-27 16:17

正文摘要:

本帖最后由 Turtle 于 2009-10-2 15:59 编辑 用了图片显示标题。。 并整合了跳过标题画面脚本。。 想在标题选项中在添加一个特别篇选项。。 不知道在哪里添加。。。。。   自己不会脚本 #========= ...

回复

Turtle 发表于 2009-10-2 13:20:24
本帖最后由 Turtle 于 2009-10-2 14:16 编辑

把when 3上面的那个end加上以后就可以正常开始了...

感动的痛哭流涕.....

选择的时候虽然是看不到第四个选项..但是在第三个选项选下去之后下面还有选项在..

接下来就是设置显示了



-----------------------------------------------------------------------------------------

把上面的when设置复制了下....  

已经可以选择和显示图片了...
  1.   #--------------------------------------------------------------------------
  2.   # ● 刷新选项
  3.   #--------------------------------------------------------------------------
  4.   def chaochaocommandchaochao
  5.     if Input.trigger?(Input::UP)
  6.       @command_index -= 1
  7.       if @command_index < 0
  8.         @command_index = 3
  9.       end
  10.       Audio.se_play(Cursor_SE,80,100)
  11.     end
  12.     if Input.trigger?(Input::DOWN)
  13.       @command_index += 1
  14.       if @command_index > 3
  15.         @command_index = 0
  16.       end
  17.       Audio.se_play(Cursor_SE,80,100)
  18.     end
  19.     case @command_index
  20.     when 0
  21.       if @sprite[1][0].opacity >= 0
  22.         @sprite[1][0].opacity -= TitleTable_change
  23.       end
  24.       if @sprite[1][1].opacity <= TitleTable_opacity #240
  25.         @sprite[1][1].opacity += TitleTable_change #30
  26.       end
  27.       if @sprite[2][0].opacity <= TitleTable_opacity #240
  28.         @sprite[2][0].opacity += TitleTable_change #30
  29.       end
  30.       if @sprite[2][1].opacity >= 0
  31.         @sprite[2][1].opacity -= TitleTable_change #30
  32.       end
  33.       if @sprite[3][0].opacity <= TitleTable_opacity #240
  34.         @sprite[3][0].opacity += TitleTable_change #30
  35.       end
  36.       if @sprite[3][1].opacity >= 0
  37.         @sprite[3][1].opacity -= TitleTable_change #30
  38.       end
  39.       if @sprite[4][0].opacity <= TitleTable_opacity #240
  40.         @sprite[4][0].opacity += TitleTable_change #30
  41.       end
  42.       if @sprite[4][1].opacity >= 0
  43.         @sprite[4][1].opacity -= TitleTable_change #30
  44.       end
  45.     when 1
  46.       if @sprite[1][0].opacity <= TitleTable_opacity #210
  47.         @sprite[1][0].opacity += TitleTable_change #30
  48.       end
  49.       if @sprite[1][1].opacity >= 0
  50.         @sprite[1][1].opacity -= TitleTable_change #30
  51.       end
  52.       if @sprite[2][0].opacity >= 0
  53.         @sprite[2][0].opacity -= TitleTable_change #30
  54.       end
  55.       if @sprite[2][1].opacity <= TitleTable_opacity #240
  56.         @sprite[2][1].opacity += TitleTable_change #30
  57.       end
  58.       if @sprite[3][0].opacity <= TitleTable_opacity #240
  59.         @sprite[3][0].opacity += TitleTable_change #30
  60.       end
  61.       if @sprite[3][1].opacity >= 0
  62.         @sprite[3][1].opacity -= TitleTable_change #30
  63.       end
  64.          if @sprite[4][0].opacity <= TitleTable_opacity #240
  65.         @sprite[4][0].opacity += TitleTable_change #30
  66.       end
  67.       if @sprite[4][1].opacity >= 0
  68.         @sprite[4][1].opacity -= TitleTable_change #30
  69.       end
  70.     when 2
  71.       if @sprite[1][0].opacity <= TitleTable_opacity  #210
  72.         @sprite[1][0].opacity += TitleTable_change #30
  73.       end
  74.       if @sprite[1][1].opacity >= 0
  75.         @sprite[1][1].opacity -= TitleTable_change #30
  76.       end
  77.       if @sprite[2][0].opacity <= TitleTable_opacity #240
  78.         @sprite[2][0].opacity += TitleTable_change #30
  79.       end
  80.       if @sprite[2][1].opacity >= 0
  81.         @sprite[2][1].opacity -= TitleTable_change #30
  82.       end
  83.       if @sprite[3][0].opacity >= 0
  84.         @sprite[3][0].opacity -= TitleTable_change #30
  85.       end
  86.       if @sprite[3][1].opacity <= TitleTable_opacity #240
  87.         @sprite[3][1].opacity += TitleTable_change #30
  88.       end
  89.          if @sprite[4][0].opacity <= TitleTable_opacity #240
  90.         @sprite[4][0].opacity += TitleTable_change #30
  91.       end
  92.       if @sprite[4][1].opacity >= 0
  93.         @sprite[4][1].opacity -= TitleTable_change #30
  94.       end
  95.     when 3
  96.       if @sprite[1][0].opacity <= TitleTable_opacity  #210
  97.         @sprite[1][0].opacity += TitleTable_change #30
  98.       end
  99.       if @sprite[1][1].opacity >= 0
  100.         @sprite[1][1].opacity -= TitleTable_change #30
  101.       end
  102.       if @sprite[2][0].opacity <= TitleTable_opacity #240
  103.         @sprite[2][0].opacity += TitleTable_change #30
  104.       end
  105.       if @sprite[2][1].opacity >= 0
  106.         @sprite[2][1].opacity -= TitleTable_change #30
  107.       end
  108.       if @sprite[3][0].opacity <= TitleTable_opacity #240
  109.         @sprite[3][0].opacity += TitleTable_change #30
  110.       end
  111.       if @sprite[3][1].opacity >= 0
  112.         @sprite[3][1].opacity -= TitleTable_change #30
  113.       end
  114.       if @sprite[4][0].opacity >= 0
  115.         @sprite[4][0].opacity -= TitleTable_change
  116.       end
  117.       if @sprite[4][1].opacity <= TitleTable_opacity #240
  118.         @sprite[4][1].opacity += TitleTable_change #30
  119.       end
  120.     end
  121.   end
  122. end
  123. end
复制代码
真的很感谢...  终于完成

认可答案
顺便问一下- - ...怎么把自己的经验加给别人
well 发表于 2009-10-2 04:50:54

syntax error十有八九是配套问题。而且多半显示位置在实际出错行之后。
So,仔细检查一下啊!(这句话吼出来)


when 3 上面就少个end
well 发表于 2009-10-1 05:47:58
看得出来你是把when 2 复制了一份。这肯定是没效果的。每个分支下至少加上@sprite[4][0]和@sprite[4][1]。另外完全看不出为什么出错。错误提示是什么?有没有多个end少个end
Turtle 发表于 2009-9-30 13:47:46
本帖最后由 Turtle 于 2009-10-2 13:21 编辑

嗯 - -  尝试加入一个when 3以后运行在when 3这一行出错.. 76...132:}
  1. #--------------------------------------------------------------------------
  2.   # ● 刷新选项
  3.   #--------------------------------------------------------------------------
  4.   def chaochaocommandchaochao
  5.     if Input.trigger?(Input::UP)
  6.       @command_index -= 1
  7.       if @command_index < 0
  8.         @command_index = 3
  9.       end
  10.       Audio.se_play(Cursor_SE,80,100)
  11.     end
  12.     if Input.trigger?(Input::DOWN)
  13.       @command_index += 1
  14.       if @command_index > 3
  15.         @command_index = 0
  16.       end
  17.       Audio.se_play(Cursor_SE,80,100)
  18.     end
  19.     case @command_index
  20.     when 0
  21.       if @sprite[1][0].opacity >= 0
  22.         @sprite[1][0].opacity -= TitleTable_change
  23.       end
  24.       if @sprite[1][1].opacity <= TitleTable_opacity #240
  25.         @sprite[1][1].opacity += TitleTable_change #30
  26.       end
  27.       if @sprite[2][0].opacity <= TitleTable_opacity #240
  28.         @sprite[2][0].opacity += TitleTable_change #30
  29.       end
  30.       if @sprite[2][1].opacity >= 0
  31.         @sprite[2][1].opacity -= TitleTable_change #30
  32.       end
  33.       if @sprite[3][0].opacity <= TitleTable_opacity #240
  34.         @sprite[3][0].opacity += TitleTable_change #30
  35.       end
  36.       if @sprite[3][1].opacity >= 0
  37.         @sprite[3][1].opacity -= TitleTable_change #30
  38.       end
  39.     when 1
  40.       if @sprite[1][0].opacity <= TitleTable_opacity #210
  41.         @sprite[1][0].opacity += TitleTable_change #30
  42.       end
  43.       if @sprite[1][1].opacity >= 0
  44.         @sprite[1][1].opacity -= TitleTable_change #30
  45.       end
  46.       if @sprite[2][0].opacity >= 0
  47.         @sprite[2][0].opacity -= TitleTable_change #30
  48.       end
  49.       if @sprite[2][1].opacity <= TitleTable_opacity #240
  50.         @sprite[2][1].opacity += TitleTable_change #30
  51.       end
  52.       if @sprite[3][0].opacity <= TitleTable_opacity #240
  53.         @sprite[3][0].opacity += TitleTable_change #30
  54.       end
  55.       if @sprite[3][1].opacity >= 0
  56.         @sprite[3][1].opacity -= TitleTable_change #30
  57.       end
  58.     when 2
  59.       if @sprite[1][0].opacity <= TitleTable_opacity  #210
  60.         @sprite[1][0].opacity += TitleTable_change #30
  61.       end
  62.       if @sprite[1][1].opacity >= 0
  63.         @sprite[1][1].opacity -= TitleTable_change #30
  64.       end
  65.       if @sprite[2][0].opacity <= TitleTable_opacity #240
  66.         @sprite[2][0].opacity += TitleTable_change #30
  67.       end
  68.       if @sprite[2][1].opacity >= 0
  69.         @sprite[2][1].opacity -= TitleTable_change #30
  70.       end
  71.       if @sprite[3][0].opacity >= 0
  72.         @sprite[3][0].opacity -= TitleTable_change #30
  73.       end
  74.       if @sprite[3][1].opacity <= TitleTable_opacity #240
  75.         @sprite[3][1].opacity += TitleTable_change #30
  76.       end
  77.     when 3
  78.       if @sprite[1][0].opacity <= TitleTable_opacity  #210
  79.         @sprite[1][0].opacity += TitleTable_change #30
  80.       end
  81.       if @sprite[1][1].opacity >= 0
  82.         @sprite[1][1].opacity -= TitleTable_change #30
  83.       end
  84.       if @sprite[2][0].opacity <= TitleTable_opacity #240
  85.         @sprite[2][0].opacity += TitleTable_change #30
  86.       end
  87.       if @sprite[2][1].opacity >= 0
  88.         @sprite[2][1].opacity -= TitleTable_change #30
  89.       end
  90.       if @sprite[3][0].opacity >= 0
  91.         @sprite[3][0].opacity -= TitleTable_change #30
  92.       end
  93.       if @sprite[3][1].opacity <= TitleTable_opacity #240
  94.         @sprite[3][1].opacity += TitleTable_change #30
  95.       end
  96.     end
  97.   end
  98. end
  99. end
复制代码
well 发表于 2009-9-30 05:05:22
给你个参考 5# well
就是分析一下when不同数字时各组图片的变化规律,复制一份,然后全体加入一组图片。
可以一点点改。这部分改错了也不至于出错跳出。顶多没效果罢了。
Turtle 发表于 2009-9-28 09:36:52
本帖最后由 Turtle 于 2009-9-28 09:38 编辑

563行以下看不懂了。。。 照搬的改乜改不了- -。。

上面那些可以照着原句改
  1.   #--------------------------------------------------------------------------

  2.   # ● 刷新选项

  3.   #--------------------------------------------------------------------------

  4.   def chaochaocommandchaochao

  5.     if Input.trigger?(Input::UP)

  6.       @command_index -= 1

  7.       if @command_index < 0

  8.         @command_index = 2

  9.       end

  10.       Audio.se_play(Cursor_SE,80,100)

  11.     end

  12.     if Input.trigger?(Input::DOWN)

  13.       @command_index += 1

  14.       if @command_index > 2

  15.         @command_index = 0

  16.       end

  17.       Audio.se_play(Cursor_SE,80,100)

  18.     end

  19.     case @command_index

  20.     when 0

  21.       if @sprite[1][0].opacity >= 0

  22.         @sprite[1][0].opacity -= TitleTable_change

  23.       end

  24.       if @sprite[1][1].opacity <= TitleTable_opacity #240

  25.         @sprite[1][1].opacity += TitleTable_change #30

  26.       end

  27.       if @sprite[2][0].opacity <= TitleTable_opacity #240

  28.         @sprite[2][0].opacity += TitleTable_change #30

  29.       end

  30.       if @sprite[2][1].opacity >= 0

  31.         @sprite[2][1].opacity -= TitleTable_change #30

  32.       end

  33.       if @sprite[3][0].opacity <= TitleTable_opacity #240

  34.         @sprite[3][0].opacity += TitleTable_change #30

  35.       end

  36.       if @sprite[3][1].opacity >= 0

  37.         @sprite[3][1].opacity -= TitleTable_change #30

  38.       end

  39.     when 1

  40.       if @sprite[1][0].opacity <= TitleTable_opacity #210

  41.         @sprite[1][0].opacity += TitleTable_change #30

  42.       end

  43.       if @sprite[1][1].opacity >= 0

  44.         @sprite[1][1].opacity -= TitleTable_change #30

  45.       end

  46.       if @sprite[2][0].opacity >= 0

  47.         @sprite[2][0].opacity -= TitleTable_change #30

  48.       end

  49.       if @sprite[2][1].opacity <= TitleTable_opacity #240

  50.         @sprite[2][1].opacity += TitleTable_change #30

  51.       end

  52.       if @sprite[3][0].opacity <= TitleTable_opacity #240

  53.         @sprite[3][0].opacity += TitleTable_change #30

  54.       end

  55.       if @sprite[3][1].opacity >= 0

  56.         @sprite[3][1].opacity -= TitleTable_change #30

  57.       end

  58.     when 2

  59.       if @sprite[1][0].opacity <= TitleTable_opacity  #210

  60.         @sprite[1][0].opacity += TitleTable_change #30

  61.       end

  62.       if @sprite[1][1].opacity >= 0

  63.         @sprite[1][1].opacity -= TitleTable_change #30

  64.       end

  65.       if @sprite[2][0].opacity <= TitleTable_opacity #240

  66.         @sprite[2][0].opacity += TitleTable_change #30

  67.       end

  68.       if @sprite[2][1].opacity >= 0

  69.         @sprite[2][1].opacity -= TitleTable_change #30

  70.       end

  71.       if @sprite[3][0].opacity >= 0

  72.         @sprite[3][0].opacity -= TitleTable_change #30

  73.       end

  74.       if @sprite[3][1].opacity <= TitleTable_opacity #240

  75.         @sprite[3][1].opacity += TitleTable_change #30

  76.       end

  77.     end

  78.   end

  79. end

  80. end
复制代码
well 发表于 2009-9-28 06:26:30
注意138行
    for i in 0..3
i的范围0~3,你不修改这里。擅自加一个4,不错才出鬼了。
378销毁图片地方也要改。
此外563行以下。补全when 3  的内容。否则不会出错,只是没有选中特别篇后选项图片的变化。
Turtle 发表于 2009-9-27 17:07:50
本帖最后由 Turtle 于 2009-9-28 09:38 编辑

下面是我改好的。。。(我是脚本盲。 完全照着例子上面加上去的。。在158行出错)
  1. #==============================================================================
  2. # ■ 高自由度设定  图片标题菜单  动态标题画面  闪烁文字  整合
  3. #
  4. # §§  简称:高自由度  整合 标题画面设置
  5. #------------------------------------------------------------------------------
  6. # 整合作者:TERENCE (龙皇)
  7. #
  8. # 图片标题菜单:By chaochao  From 幻想森林论坛
  9. # http://rpg.blue/web/htm/news167.htm
  10. #
  11. # 动态标题画面(流星雨版):By 柳柳
  12. # http://rpg.blue/web/htm/news92.htm
  13. #
  14. # 闪烁标题脚本:未知作者,来源日本
  15. # http://rpg.blue/web/htm/news107.htm
  16. #==============================================================================
  17. class Scene_Title
  18.   
  19.   
  20. ## ===================== ↓自定义设置区↓ ===================== ##
  21.   
  22.   #--------------------------------------------------------------------------
  23.   # ● 标题画面闪烁文字自定义设定
  24.   #--------------------------------------------------------------------------
  25.   TITLE_STR = "MT"  # 闪烁文字
  26.   
  27.   FONT_NAME = ["華康娃娃體","標楷體", "黑体", "楷体"]  
  28.   # 字体列表,当玩家电脑没有安装第一种字体会顺序往下寻找第二种
  29.   
  30.   FONT_SIZE =   10# 字体大小
  31.   FONT_BOLD = true # 加粗 ( true 是 / false 否 )
  32.   FONT_ITALIC = false # 斜体 ( true 是 / false 否 )
  33.   
  34.   STR_COLOR = Color.new( 0,0,0 ) # 文字颜色
  35.   # 文字颜色可以參考此帖
  36.   # [增补功能]136种颜色表  By 禾西
  37.   # http://rpg.blue/forumTopicRead.asp?id=88854
  38.   # 查考数字的地方→ def self.pink(opacity = 255);new(***,***,***,opacity);end
  39.   # 查考颜色的地方→ def self.***(opacity........
  40.   
  41.   DRAW_FRAME = true
  42.   # 文字是否勾边 ( true 是 / false 否 )
  43.   
  44.   FRAME_COLOR = Color.new(255, 255, 255) # 勾边颜色
  45.   
  46.   LOCATE_X = 390 # 闪烁文字 X 座标
  47.   LOCATE_Y = 140 # 闪烁文字 Y 座标
  48.   DRAW_X =      0 # X 座标修正値(相对中心)
  49.   DRAW_Y = -100 # Y 座标修正値(相对中心)
  50.   BLINK = true # 闪烁
  51.   
  52.   #--------------------------------------------------------------------------
  53.   # ● 标题画面SE音效自定义设定
  54.   #--------------------------------------------------------------------------
  55.   Cursor_SE = "Audio/SE/decide.wav" # Title 游标音效SE 文件名  路径
  56.   Buzzer_SE = "Audio/SE/no_buy.wav" # Title 无效音效SE 文件名  路径
  57.   Decision_SE = "Audio/SE/decide3.wav" # Title 确定音效SE 文件名  路径
  58.   
  59.   #--------------------------------------------------------------------------
  60.   # ● 图片标题菜单自定义常量及相关设定
  61.   #--------------------------------------------------------------------------
  62.   STAR1 = "Graphics/Pictures/002.png" # 游标没在 "开始游戏" 所显示图片 的路径
  63.   STAR2 = "Graphics/Pictures/001.png" # 游标位在 "开始游戏" 所显示图片 的路径
  64.   Start_x = 250 # 开始游戏 图片X座标 (P.S.原点是左上)
  65.   Start_y = 300 # 开始游戏 图片Y座标 (P.S.原点是左上)

  66.   CONTINUE1 = "Graphics/Pictures/004.png" # 游标没在 "读取进度" 所显示图片 的路径
  67.   CONTINUE2 = "Graphics/Pictures/003.png" # 游标位在 "读取进度" 所显示图片 的路径
  68.   Continue_x = 240 # 读取进度 图片X座标 (P.S.原点是左上)
  69.   Continue_y = 350 # 读取进度 图片Y座标 (P.S.原点是左上)

  70.   EXIT1 = "Graphics/Pictures/006.png" # 游标没在 "离开游戏" 所显示图片 的路径
  71.   EXIT2 = "Graphics/Pictures/005.png" # 游标位在 "离开游戏" 所显示图片 的路径
  72.   Exit_x = 240 # 离开游戏 图片X座标 ( P.S.原点是左上 )
  73.   Exit_y = 400 # 离开游戏 图片Y座标 ( P.S.原点是左上 )
  74.   
  75.   TBB1 = "Graphics/Pictures/008.png" # 游标没在 "特别篇" 所显示图片 的路径
  76.   TBB2 = "Graphics/Pictures/007.png" # 游标位在 "特别篇" 所显示图片 的路径
  77.   Tbb_x = 240 # 特别篇 图片X座标 ( P.S.原点是左上 )
  78.   Tbb_y = 400 # 特别篇 图片Y座标 ( P.S.原点是左上 )

  79.   TitleTable_opacity = 210 # 标题图片透明度
  80.   TitleTable_change = 10   # 标题图片透明度变化速度( 建议范围:10~30 )
  81.   
  82.   #--------------------------------------------------------------------------
  83.   # ● 动态标题画面自定义常量及相关设定
  84.   #--------------------------------------------------------------------------
  85.   WEATHER = 4     # 使用自定义效果(0:无,1:雨,2:暴风雨,3:雪,4:自定义)
  86.   MAXNUMBER = 10  # 天气图片数量
  87.   
  88.   WEATHER_FILE = "Graphics/Pictures/Star.png" # 自定义图片路径
  89.   
  90.   BLEND_TYPE = 0  # 合成方式(0:普通,1:加法,2:减法)
  91.   WEATHER_X = 0   # X方向每回合减少象素
  92.   WEATHER_Y = -1  # Y方向每回合减少象素
  93.   WEATHER_OPACITY = 0.5 # 每回合减低透明度
  94.   START_OPACITY = 200 # 出现时的透明度
  95.   RAND_X = 1200 # 随机X范围
  96.   RAND_Y = 600 # 随机Y范围
  97.   HEIGHT = 300 # 出现时候的屏幕Y
  98.   WIDTH = 0 # 出现时候的屏幕X
  99.   
  100.   #--------------------------------------------------------------------------
  101.   # ● 题画面图片先后顺序设定  (值越大图片越上一层)
  102.   #--------------------------------------------------------------------------
  103.   TITLE_NAME_Z = 0 # 闪烁文字
  104.   CHAOCHAO_Z = 3 # 图片标题
  105.   WEATHER_Z = 1 # 动态天气

  106. ## ===================== ↑自定义设置区↑ ===================== ##


  107.   #--------------------------------------------------------------------------
  108.   # ● 主处理
  109.   #--------------------------------------------------------------------------
  110.   def main
  111.     if $BTEST
  112.       battle_test
  113.       return
  114.     end
  115.     # 载入资料库
  116.     $data_actors = load_data("Data/Actors.rxdata")
  117.     $data_classes = load_data("Data/Classes.rxdata")
  118.     $data_skills = load_data("Data/Skills.rxdata")
  119.     $data_items = load_data("Data/Items.rxdata")
  120.     $data_weapons = load_data("Data/Weapons.rxdata")
  121.     $data_armors = load_data("Data/Armors.rxdata")
  122.     $data_enemies = load_data("Data/Enemies.rxdata")
  123.     $data_troops = load_data("Data/Troops.rxdata")
  124.     $data_states = load_data("Data/States.rxdata")
  125.     $data_animations = load_data("Data/Animations.rxdata")
  126.     $data_tilesets = load_data("Data/Tilesets.rxdata")
  127.     $data_common_events = load_data("Data/CommonEvents.rxdata")
  128.     $data_system = load_data("Data/System.rxdata")
  129.     $game_system = Game_System.new
  130.     # 生成二為阵列的Sprite.new
  131.     @sprite = [Sprite.new]
  132.     for i in 0..4
  133.        for j in 0..1
  134.            @sprite[i] = [Sprite.new]
  135.                  @sprite[i][j] = Sprite.new
  136.                  @sprite[i][j].opacity = 0
  137.        end
  138.     end
  139.     # 生成标题图形
  140.     @sprite[0][0].bitmap = RPG::Cache.title($data_system.title_name)
  141.     @sprite[0][0].opacity = 0
  142.     #开始游戏的图片
  143.     @sprite[1][0].bitmap = Bitmap.new(STAR1)
  144.     @sprite[1][1].bitmap = Bitmap.new(STAR2)
  145.     #继续游戏的图片
  146.     @sprite[2][0].bitmap = Bitmap.new(CONTINUE1)
  147.     @sprite[2][1].bitmap = Bitmap.new(CONTINUE2)
  148.     #结束游戏的图片
  149.     @sprite[3][0].bitmap = Bitmap.new(EXIT1)
  150.     @sprite[3][1].bitmap = Bitmap.new(EXIT2)
  151.     #特别篇的图片
  152.     @sprite[4][0].bitmap = Bitmap.new(TBB1)
  153.     @sprite[4][1].bitmap = Bitmap.new(TBB2)
  154.     #图片位置  及  初始透明度
  155.     for j in 0..1
  156.       @sprite[1][j].opacity = 0
  157.       @sprite[1][j].x = Start_x
  158.       @sprite[1][j].y = Start_y
  159.       @sprite[1][j].z = CHAOCHAO_Z
  160.       @sprite[2][j].opacity = 0
  161.       @sprite[2][j].x = Continue_x
  162.       @sprite[2][j].y = Continue_y
  163.       @sprite[2][j].z = CHAOCHAO_Z
  164.       @sprite[3][j].opacity = 0
  165.       @sprite[3][j].x = Exit_x
  166.       @sprite[3][j].y = Exit_y
  167.       @sprite[3][j].z = CHAOCHAO_Z
  168.       @sprite[4][j].opacity = 0
  169.       @sprite[4][j].x = Tbb_x
  170.       @sprite[4][j].y = Tbb_y
  171.       @sprite[4][j].z = CHAOCHAO_Z
  172.     end
  173.    
  174.    
  175.     #跳过标题----------------------------------------------------------
  176.    
  177.    
  178.    
  179.    
  180.     # 生成系统对像
  181.     $game_system = Game_System.new
  182.     # 进入事件显示LOGO,如果您不想在调试时总是显示LOGO就加上下一行中注释部分
  183.     if $show_logo # and !$DEBUG
  184.       # 设置标记变量保证下次回到标题画面不会再显示片头
  185.       $show_logo = false
  186.       # 重置测量游戏时间用的画面计数器
  187.       Graphics.frame_count = 0
  188.       # 生成各种游戏对像
  189.       $game_temp          = Game_Temp.new
  190.       $game_system        = Game_System.new
  191.       $game_switches      = Game_Switches.new
  192.       $game_variables     = Game_Variables.new
  193.       $game_self_switches = Game_SelfSwitches.new
  194.       $game_screen        = Game_Screen.new
  195.       $game_actors        = Game_Actors.new
  196.       $game_party         = Game_Party.new
  197.       $game_troop         = Game_Troop.new
  198.       $game_map           = Game_Map.new
  199.       $game_player        = Game_Player.new
  200.       # 设置初期同伴位置
  201.       $game_party.setup_starting_members
  202.       # 设置初期位置的地图
  203.       $game_map.setup($data_system.start_map_id)
  204.       # 主角向初期位置移动
  205.       $game_player.moveto($data_system.start_x, $data_system.start_y)
  206.       # 刷新主角
  207.       $game_player.refresh
  208.       # 执行地图设置的 BGM 与 BGS 的自动切换
  209.       $game_map.autoplay
  210.       # 刷新地图 (执行并行事件)
  211.       $game_map.update
  212.       # 与真正的新游戏唯一不同就是将变量1设置一个标记值(暂用8764)
  213.       $game_variables[1]=8764
  214.       # 主角暂时是不能显示出来的……
  215.       $game_player.transparent = true
  216.       # 切换地图画面
  217.       $scene = Scene_Map.new
  218.     # 否则是默认显示标题画面
  219.     else
  220.       
  221.       
  222.     #到这里为止先执行动画再返回标题
  223.       
  224.       
  225.       
  226.       
  227.       
  228.       
  229.       
  230.       
  231. ### ↓生成动态标题画面相关图片↓ ###
  232.     @ox = 0
  233.     @oy = 0
  234.    
  235.     color1 = Color.new(255, 255, 255, 255)
  236.     color2 = Color.new(255, 255, 255, 128)
  237.     # 生成雨
  238.     @rain_bitmap = Bitmap.new(7, 56)
  239.     for i in 0..6
  240.       @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
  241.     end
  242.     # 生成风
  243.     @storm_bitmap = Bitmap.new(34, 64)
  244.     for i in 0..31
  245.       @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
  246.       @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
  247.       @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
  248.     end
  249.     # 生成雪   
  250.     @snow_bitmap = Bitmap.new(6, 6)
  251.     @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
  252.     @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
  253.     @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
  254.     @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
  255.     @sprites = []
  256.     # 使用自定义判别
  257.     for i in 1..40
  258.       sprite = Sprite.new
  259.       case WEATHER
  260.       when 1
  261.         sprite.bitmap = @rain_bitmap
  262.       when 2
  263.         sprite.bitmap = @storm_bitmap
  264.       when 3
  265.         sprite.bitmap = @snow_bitmap
  266.       when 4
  267.         sprite.bitmap = Bitmap.new(WEATHER_FILE)
  268.       end
  269.       sprite.z = WEATHER_Z
  270.       sprite.x = -1000
  271.       sprite.y = -1000
  272.       sprite.visible = (i <= MAXNUMBER)
  273.       sprite.blend_type = BLEND_TYPE
  274.       sprite.opacity = START_OPACITY
  275.       @sprites.push(sprite)
  276.     end
  277.     weather_update
  278. ### ↑生成动态标题画面相关图片↑ ###

  279. ### ↓スプライトの作成↓  ###
  280.     @title_name_sprite = RPG::Sprite.new
  281.     @title_name_sprite.z = TITLE_NAME_Z
  282.     @title_name_sprite.opacity = 0
  283.     bitmap = Bitmap.new(32, 32)
  284.     bitmap.font.name = FONT_NAME
  285.     bitmap.font.size = FONT_SIZE
  286.     bitmap.font.bold = FONT_BOLD
  287.     rect = bitmap.text_size(TITLE_STR)
  288.     bitmap.dispose
  289.     bitmap = nil
  290.     @title_name_sprite.bitmap = Bitmap.new(rect.width, rect.height)
  291.     @title_name_sprite.bitmap.font.name   = FONT_NAME
  292.     @title_name_sprite.bitmap.font.size   = FONT_SIZE
  293.     @title_name_sprite.bitmap.font.bold   = FONT_BOLD
  294.     @title_name_sprite.bitmap.font.italic = FONT_ITALIC

  295.     str = TITLE_STR
  296.     if DRAW_FRAME
  297.       @title_name_sprite.bitmap.font.color = FRAME_COLOR
  298.       if defined?(@title_name_sprite.bitmap.draw_text_plan_frame)
  299.         @title_name_sprite.bitmap.draw_text_plan_frame(0, 0, rect.width, rect.height, str)
  300.         @title_name_sprite.bitmap.draw_text_plan_frame(2, 0, rect.width, rect.height, str)
  301.         @title_name_sprite.bitmap.draw_text_plan_frame(0, 2, rect.width, rect.height, str)
  302.         @title_name_sprite.bitmap.draw_text_plan_frame(2, 2, rect.width, rect.height, str)
  303.         @title_name_sprite.bitmap.font.color = STR_COLOR
  304.         @title_name_sprite.bitmap.draw_text_plan_frame(1, 1, rect.width, rect.height, str)
  305.       else
  306.         @title_name_sprite.bitmap.draw_text(0, 0, rect.width, rect.height, str)
  307.         @title_name_sprite.bitmap.draw_text(2, 0, rect.width, rect.height, str)
  308.         @title_name_sprite.bitmap.draw_text(0, 2, rect.width, rect.height, str)
  309.         @title_name_sprite.bitmap.draw_text(2, 2, rect.width, rect.height, str)
  310.         @title_name_sprite.bitmap.font.color = STR_COLOR
  311.         @title_name_sprite.bitmap.draw_text(1, 1, rect.width, rect.height, str)
  312.       end
  313.     else
  314.       @title_name_sprite.bitmap.font.color = STR_COLOR
  315.       @title_name_sprite.bitmap.draw_text(rect, str)
  316.     end
  317.     @title_name_sprite.x = LOCATE_X
  318.     @title_name_sprite.y = LOCATE_Y   
  319.     if BLINK
  320.       @title_name_sprite.blink_on
  321.     end
  322. ### ↑スプライトの作成↑  ###
  323.    
  324.     # 判定读取进度的有效性
  325.     # 游戏存档一个也不存在的时候也调查
  326.     # 有效為 @continue_enabled 為 true、无效為 false
  327.     @continue_enabled = false
  328.     for i in 0..9
  329.       if FileTest.exist?("Save/Save#{i}.rxdata")
  330.         @continue_enabled = true
  331.       end
  332.     end
  333.     # 读取进度為有效的情况下、游标停止在读取进度上
  334.     # 无效的情况下、读取进度的文字显示為灰色
  335.     if @continue_enabled
  336.       @command_index = 1
  337.     else
  338.       @command_index = 0
  339.       @sprite[2][0].tone = Tone.new(0, 0, 0, 255)
  340.       @sprite[2][1].tone = Tone.new(0, 0, 0, 255)
  341.     end
  342.   # 演奏标题 BGM
  343.       $game_system.bgm_play($data_system.title_bgm)
  344.       # 停止演奏 ME、BGS
  345.       Audio.me_stop
  346.       Audio.bgs_stop
  347.       # 执行过渡
  348.       Graphics.transition
  349.       # 主循环
  350.     loop do
  351.       # 更新游戏画面
  352.       Graphics.update
  353.       #淡出背景图形  闪烁文字
  354.       if @sprite[0][0].opacity <= 255
  355.         @sprite[0][0].opacity += 15
  356.         @title_name_sprite.opacity += 15
  357.       end
  358.       # 更新输入讯息
  359.       Input.update
  360.       # 更新画面
  361.       update
  362.       # 如果画面被切换就中断循环
  363.       if $scene != self
  364.         break
  365.       end
  366.     end
  367.     # 装备过渡
  368.     Graphics.freeze
  369.     # 释放图片标题
  370.     for i in 0..4
  371.       for j in 0..1
  372.         unless i==0 and j==1
  373.          @sprite[i][j].bitmap.dispose
  374.          @sprite[i][j].dispose
  375.        end
  376.       end
  377.     end
  378.     # 释放天气图片
  379.     for sprite in @sprites
  380.       sprite.dispose
  381.     end
  382.     @rain_bitmap.dispose
  383.     @storm_bitmap.dispose
  384.     @snow_bitmap.dispose
  385.     # スプライトの解放
  386.     @title_name_sprite.bitmap.dispose
  387.     @title_name_sprite.dispose
  388.   end
  389.   #--------------------------------------------------------------------------
  390.   # ● 刷新画面
  391.   #--------------------------------------------------------------------------
  392.   def update
  393.   chaochaocommandchaochao
  394.     # スプライトの更新
  395.     @title_name_sprite.update
  396.   if Input.trigger?(Input::C)
  397.     case @command_index
  398.       when 0  # 新游戏
  399.         command_new_game
  400.       when 1  # 继续
  401.         command_continue
  402.       when 2  # 退出
  403.         command_shutdown
  404.       when 3  #特别篇
  405.         command_tbb
  406.       end
  407.     end
  408.     weather_update
  409.   end
  410.   #--------------------------------------------------------------------------
  411.   # ● 命令 : 新的游戏
  412.   #--------------------------------------------------------------------------
  413.   def command_new_game
  414.     # 演奏确定 SE
  415.     Audio.se_play(Decision_SE,100,100)
  416.     # 停止 BGM
  417.     Audio.bgm_stop
  418.     # 重置测量游戏时间用的画面计数器
  419.     Graphics.frame_count = 0
  420.     # 產生各种游戏物件
  421.     $game_temp          = Game_Temp.new
  422.     $game_system        = Game_System.new
  423.     $game_switches      = Game_Switches.new
  424.     $game_variables     = Game_Variables.new
  425.     $game_self_switches = Game_SelfSwitches.new
  426.     $game_screen        = Game_Screen.new
  427.     $game_actors        = Game_Actors.new
  428.     $game_party         = Game_Party.new
  429.     $game_troop         = Game_Troop.new
  430.     $game_map           = Game_Map.new
  431.     $game_player        = Game_Player.new
  432.     # 设定初期同伴位置
  433.     $game_party.setup_starting_members
  434.     # 设定初期位置的地图
  435.     $game_map.setup($data_system.start_map_id)
  436.     # 主角向初期位置移动
  437.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  438.     # 更新主角
  439.     $game_player.refresh
  440.     # 执行地图设定的 BGM 与 BGS 的自动切换
  441.     $game_map.autoplay
  442.     # 更新地图 (执行并行事件)
  443.     $game_map.update
  444.     # 切换地图画面
  445.     $scene = Scene_Map.new
  446.   end
  447. #--------------------------------------------------------------------------
  448.   # ● 命令 : 新的游戏
  449.   #--------------------------------------------------------------------------
  450.   def command_Tbb
  451.     # 演奏确定 SE
  452.     Audio.se_play(Decision_SE,100,100)
  453.     # 停止 BGM
  454.     Audio.bgm_stop
  455.     # 重置测量游戏时间用的画面计数器
  456.     Graphics.frame_count = 0
  457.     # 產生各种游戏物件
  458.     $game_temp          = Game_Temp.new
  459.     $game_system        = Game_System.new
  460.     $game_switches      = Game_Switches.new
  461.     $game_variables     = Game_Variables.new
  462.     $game_self_switches = Game_SelfSwitches.new
  463.     $game_screen        = Game_Screen.new
  464.     $game_actors        = Game_Actors.new
  465.     $game_party         = Game_Party.new
  466.     $game_troop         = Game_Troop.new
  467.     $game_map           = Game_Map.new
  468.     $game_player        = Game_Player.new
  469.     # 设定初期同伴位置
  470.     $game_party.setup_starting_members
  471.     # 设定初期位置的地图
  472.     $game_map.setup(2)
  473.     # 主角向初期位置移动
  474.     $game_player.moveto(10,11)
  475.     # 更新主角
  476.     $game_player.refresh
  477.     # 执行地图设定的 BGM 与 BGS 的自动切换
  478.     $game_map.autoplay
  479.     # 更新地图 (执行并行事件)
  480.     $game_map.update
  481.     # 切换地图画面
  482.     $scene = Scene_Map.new
  483.   end

  484.   #--------------------------------------------------------------------------
  485.   # ● 命令 : 读取进度
  486.   #--------------------------------------------------------------------------
  487.   def command_continue
  488.     # 继续无效的情况下
  489.     unless @continue_enabled
  490.       # 演奏无效 SE
  491.       Audio.se_play(Buzzer_SE,80,100)
  492.       return
  493.     end
  494.     # 演奏确定 SE
  495.     Audio.se_play(Decision_SE,100,100)
  496.     # 切换到读取画面
  497.     $scene = Scene_Load.new
  498.   end
  499.   #--------------------------------------------------------------------------
  500.   # ● 命令 : 结束游戏
  501.   #--------------------------------------------------------------------------
  502.   def command_shutdown
  503.     # 演奏确定 SE
  504.     Audio.se_play(Decision_SE,100,100)
  505.     # BGM、BGS、ME 的淡入淡出
  506.     Audio.bgm_fade(800)
  507.     Audio.bgs_fade(800)
  508.     Audio.me_fade(800)
  509.     # 结束游戏
  510.     $scene = nil
  511.   end
  512.   #--------------------------------------------------------------------------
  513.   # ● 刷新天气
  514.   #--------------------------------------------------------------------------
  515.   def weather_update
  516.     return if WEATHER == 0
  517.     for i in 1..MAXNUMBER
  518.       sprite = @sprites[i]
  519.       if sprite == nil
  520.         break
  521.       end
  522.       if WEATHER == 1
  523.         sprite.x -= 2
  524.         sprite.y += 16
  525.         sprite.opacity -= 8
  526.       end
  527.       if WEATHER == 2
  528.         sprite.x -= 8
  529.         sprite.y += 16
  530.         sprite.opacity -= 12
  531.       end
  532.       if WEATHER == 3
  533.         sprite.x -= 2
  534.         sprite.y += 8
  535.         sprite.opacity -= 8
  536.       end
  537.       if WEATHER == 4
  538.         sprite.x -= WEATHER_X
  539.         sprite.y += WEATHER_Y
  540.         sprite.opacity -= WEATHER_OPACITY
  541.       end
  542.       x = sprite.x - @ox
  543.       y = sprite.y - @oy
  544.       if sprite.opacity < 32 or x < -100 or x > 750 or y < -1000 or y > 500
  545.         sprite.x = rand(RAND_X) + WIDTH + @ox
  546.         sprite.y = rand(RAND_Y) + HEIGHT + @oy
  547.         sprite.opacity = START_OPACITY
  548.       end
  549.     end
  550.   end
  551.   #--------------------------------------------------------------------------
  552.   # ● 刷新选项
  553.   #--------------------------------------------------------------------------
  554.   def chaochaocommandchaochao
  555.     if Input.trigger?(Input::UP)
  556.       @command_index -= 1
  557.       if @command_index < 0
  558.         @command_index = 2
  559.       end
  560.       Audio.se_play(Cursor_SE,80,100)
  561.     end
  562.     if Input.trigger?(Input::DOWN)
  563.       @command_index += 1
  564.       if @command_index > 2
  565.         @command_index = 0
  566.       end
  567.       Audio.se_play(Cursor_SE,80,100)
  568.     end
  569.     case @command_index
  570.     when 0
  571.       if @sprite[1][0].opacity >= 0
  572.         @sprite[1][0].opacity -= TitleTable_change
  573.       end
  574.       if @sprite[1][1].opacity <= TitleTable_opacity #240
  575.         @sprite[1][1].opacity += TitleTable_change #30
  576.       end
  577.       if @sprite[2][0].opacity <= TitleTable_opacity #240
  578.         @sprite[2][0].opacity += TitleTable_change #30
  579.       end
  580.       if @sprite[2][1].opacity >= 0
  581.         @sprite[2][1].opacity -= TitleTable_change #30
  582.       end
  583.       if @sprite[3][0].opacity <= TitleTable_opacity #240
  584.         @sprite[3][0].opacity += TitleTable_change #30
  585.       end
  586.       if @sprite[3][1].opacity >= 0
  587.         @sprite[3][1].opacity -= TitleTable_change #30
  588.       end
  589.     when 1
  590.       if @sprite[1][0].opacity <= TitleTable_opacity #210
  591.         @sprite[1][0].opacity += TitleTable_change #30
  592.       end
  593.       if @sprite[1][1].opacity >= 0
  594.         @sprite[1][1].opacity -= TitleTable_change #30
  595.       end
  596.       if @sprite[2][0].opacity >= 0
  597.         @sprite[2][0].opacity -= TitleTable_change #30
  598.       end
  599.       if @sprite[2][1].opacity <= TitleTable_opacity #240
  600.         @sprite[2][1].opacity += TitleTable_change #30
  601.       end
  602.       if @sprite[3][0].opacity <= TitleTable_opacity #240
  603.         @sprite[3][0].opacity += TitleTable_change #30
  604.       end
  605.       if @sprite[3][1].opacity >= 0
  606.         @sprite[3][1].opacity -= TitleTable_change #30
  607.       end
  608.     when 2
  609.       if @sprite[1][0].opacity <= TitleTable_opacity  #210
  610.         @sprite[1][0].opacity += TitleTable_change #30
  611.       end
  612.       if @sprite[1][1].opacity >= 0
  613.         @sprite[1][1].opacity -= TitleTable_change #30
  614.       end
  615.       if @sprite[2][0].opacity <= TitleTable_opacity #240
  616.         @sprite[2][0].opacity += TitleTable_change #30
  617.       end
  618.       if @sprite[2][1].opacity >= 0
  619.         @sprite[2][1].opacity -= TitleTable_change #30
  620.       end
  621.       if @sprite[3][0].opacity >= 0
  622.         @sprite[3][0].opacity -= TitleTable_change #30
  623.       end
  624.       if @sprite[3][1].opacity <= TitleTable_opacity #240
  625.         @sprite[3][1].opacity += TitleTable_change #30
  626.       end
  627.     end
  628.   end
  629. end
  630. end

  631.   #--------------------------------------------------------------------------
  632.   # ● 战斗测试
  633.   #--------------------------------------------------------------------------
  634.   def battle_test
  635.     # 载入数据库 (战斗测试用)
  636.     $data_actors        = load_data("Data/BT_Actors.rxdata")
  637.     $data_classes       = load_data("Data/BT_Classes.rxdata")
  638.     $data_skills        = load_data("Data/BT_Skills.rxdata")
  639.     $data_items         = load_data("Data/BT_Items.rxdata")
  640.     $data_weapons       = load_data("Data/BT_Weapons.rxdata")
  641.     $data_armors        = load_data("Data/BT_Armors.rxdata")
  642.     $data_enemies       = load_data("Data/BT_Enemies.rxdata")
  643.     $data_troops        = load_data("Data/BT_Troops.rxdata")
  644.     $data_states        = load_data("Data/BT_States.rxdata")
  645.     $data_animations    = load_data("Data/BT_Animations.rxdata")
  646.     $data_tilesets      = load_data("Data/BT_Tilesets.rxdata")
  647.     $data_common_events = load_data("Data/BT_CommonEvents.rxdata")
  648.     $data_system        = load_data("Data/BT_System.rxdata")
  649.     # 重置测量游戏时间用的画面计数器
  650.     Graphics.frame_count = 0
  651.     # 生成各种游戏对像
  652.     $game_temp          = Game_Temp.new
  653.     $game_system        = Game_System.new
  654.     $game_switches      = Game_Switches.new
  655.     $game_variables     = Game_Variables.new
  656.     $game_self_switches = Game_SelfSwitches.new
  657.     $game_screen        = Game_Screen.new
  658.     $game_actors        = Game_Actors.new
  659.     $game_party         = Game_Party.new
  660.     $game_troop         = Game_Troop.new
  661.     $game_map           = Game_Map.new
  662.     $game_player        = Game_Player.new
  663.     # 设置战斗测试用同伴
  664.     $game_party.setup_battle_test_members
  665.     # 设置队伍 ID、可以逃走标志、战斗背景
  666.     $game_temp.battle_troop_id = $data_system.test_troop_id
  667.     $game_temp.battle_can_escape = true
  668.     $game_map.battleback_name = $data_system.battleback_name
  669.     # 演奏战斗开始 BGM
  670.     $game_system.se_play($data_system.battle_start_se)
  671.     # 演奏战斗 BGM
  672.     $game_system.bgm_play($game_system.battle_bgm)
  673.     # 切换到战斗画面
  674.     $scene = Scene_Battle.new
  675.   end
复制代码
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-1-6 20:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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