Project1

标题: 标题仿加“按start进入”脚本【附带瞎狗眼功能】 [打印本页]

作者: 时光机    时间: 2011-10-23 21:46
标题: 标题仿加“按start进入”脚本【附带瞎狗眼功能】
本帖最后由 时光机 于 2011-10-28 16:11 编辑

我的第一个脚本0v0,仿单机游戏上的某功能
在某星辰的淡疼要求下加以改进出现了【瞎狗眼功能】
至于什么是瞎狗眼功能、、哼哼=w=+
还有放到main前面就好
  1. #==============================================================================
  2. # ■标题加“按start进入”脚本【附带瞎狗眼功能】
  3. #------------------------------------------------------------------------------
  4. #制作:时光机
  5. #感谢精灵、9姐姐、亿万星辰、kimu、雪姐姐的指导
  6. #==============================================================================
  7. $文字渐变速度 = 4#这个速度的概念还真不好说= =,自己研究去吧XD总之数越小渐变越慢
  8. $文字 = "按空格开始游戏"
  9. $最低不透明度 = 0   #若开启瞎狗眼模式则无论设定为多少后面都会为0
  10. $x坐标 = 544 / 2
  11. $y坐标 = 288+35
  12. #===================================瞎狗眼模式设定===============================
  13. $a=true #是否开启瞎狗眼模式,true开始,false关闭
  14. #瞎狗眼偏移度(单位像素,小一点比较好,大于2瞎眼不能)
  15. $x偏移度 = 2
  16. $y偏移度 = 2   
  17. #==============================================================================
  18. # ■ Title_words
  19. #------------------------------------------------------------------------------
  20. #  显示标题画面开始文字的??。
  21. #==============================================================================

  22. class Title_words
  23.   def initialize
  24.     $number1==false
  25.     word = $文字
  26.     @start = Sprite.new
  27.     @start.x = $x坐标
  28.     @start.y = $y坐标
  29.     @start.ox = word.size*3
  30.     @start.oy = word.size/2
  31.     @start.bitmap = Bitmap.new(word.size*6, word.size)
  32.     @start.bitmap.draw_text(0,0,word.size*6, word.size,word, 1)
  33.     @start.z = 1000
  34.     if $a
  35.     @start1 = Sprite.new
  36.     @start1.x = $x坐标+$x偏移度
  37.     @start1.y = $y坐标+$y偏移度
  38.     @start1.ox = word.size*3
  39.     @start1.oy = word.size/2
  40.     @start1.bitmap = Bitmap.new(word.size*6, word.size)
  41.     @start1.bitmap.draw_text(0,0,word.size*6, word.size,word, 1)
  42.     @start1.z = 1000
  43.     @start1.opacity=0
  44.     $最低不透明度 = 0
  45.     end
  46.     refresh
  47.   end        
  48.   #--------------------------------------------------------------------------
  49.   # ● 刷新
  50.   #--------------------------------------------------------------------------
  51.   def refresh
  52.     Input.update
  53.     loop do
  54.       Graphics.update
  55.       Input.update
  56.       flash
  57.       if $number1==true
  58.         @start.bitmap.dispose
  59.         @start.dispose
  60.         if $a
  61.         @start1.bitmap.dispose
  62.         @start1.dispose
  63.         end
  64.         break
  65.       end
  66.       if Input.press?(Input::C)
  67.         $data_system.sounds[1].play
  68.         $number1=true
  69.       end
  70.     end
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 文字的闪烁
  74.   #--------------------------------------------------------------------------
  75.   def flash
  76.     @start.opacity += $文字渐变速度
  77.     $文字渐变速度 *= -1 if @start.opacity  == 255
  78.     $文字渐变速度 *= -1 if @start.opacity <= $最低不透明度
  79.    
  80.     @start1.opacity -= $文字渐变速度 if $a
  81.   end
  82. end
  83.   #--------------------------------------------------------------------------
  84.   # ● 重定义
  85.   #--------------------------------------------------------------------------
  86. #==============================================================================
  87. # ■ Scene_Base
  88. #------------------------------------------------------------------------------
  89. #  游戏中全部画面的超级类。
  90. #==============================================================================

  91. class Scene_Base
  92.   #--------------------------------------------------------------------------
  93.   # ● 主处理
  94.   #--------------------------------------------------------------------------
  95.   def main
  96.     start                         # 开始处理
  97.     perform_transition            # 执行渐变
  98.     ##################################################
  99.     if $number1 == true
  100.       post_start                  # 开始后处理,若标题则放到后面调用
  101.       $number1 = false
  102.     end
  103.     ##################################################
  104.     Input.update                  # 更新输入讯息
  105.     loop do
  106.       Graphics.update             # 更新游戏画面
  107.       Input.update                # 更新输入讯息
  108.       update                      # 更新画面
  109.       break if $scene != self     # 切换画面时中断循环
  110.     end
  111.     Graphics.update
  112.     pre_terminate                 # 结束前处理
  113.     Graphics.freeze               # 准备渐变
  114.     terminate                     # 结束处理
  115.   end
  116. end
  117. #==============================================================================
  118. # ■ Scene_Title
  119. #------------------------------------------------------------------------------
  120. #  处理标题画面的类。
  121. #==============================================================================

  122. class Scene_Title < Scene_Base
  123.   #--------------------------------------------------------------------------
  124.   # ● 更新画面
  125.   #--------------------------------------------------------------------------
  126.   def update
  127.     super
  128.     ####################################################
  129.     unless $number1==true
  130.       Title_words.new
  131.       post_start                    # 开始后处理
  132.     end
  133.     ####################################################
  134.     @command_window.update
  135.     ##############################################
  136.     if Input.press?(Input::B)
  137.       $data_system.sounds[2].play
  138.       $number1 = false
  139.       close_command_window
  140.       Title_words.new
  141.       post_start
  142.     end
  143.     ##############################################
  144.     if Input.trigger?(Input::C)
  145.       case @command_window.index
  146.       when 0    #New game
  147.         command_new_game
  148.       when 1    # Continue
  149.         command_continue
  150.       when 2    # Shutdown
  151.         command_shutdown
  152.       end
  153.     end
  154.   end
  155. end
复制代码
貌似是长了点= =
作者: 各种压力的猫君    时间: 2011-10-24 04:09
  1. #--------------------------------------------------------------------------
  2. # ● 重定义
  3. #--------------------------------------------------------------------------
  4. class Scene_Title < Scene_Base
  5.   alias post_start_new post_start
  6.   def post_start
  7.   end
  8.   alias old_update update
  9.   def update
  10.     unless $number1==true
  11.       Title_words.new
  12.       post_start_new
  13.     end
  14.     old_update
  15.     if Input.press?(Input::B)
  16.       $data_system.sounds[2].play
  17.       $number1 = false
  18.       close_command_window
  19.       Title_words.new
  20.       post_start_new
  21.     end
  22.   end
  23. end
复制代码
重定义太长了 果断咔嚓
作者: 千葉玖濑    时间: 2011-10-24 12:37
啥是瞎狗眼功能?果断试下= =
作者: 羁绊の终    时间: 2011-10-24 13:02
{:nm_3:}果然,被闪瞎了 3_,3
作者: 亿万星辰    时间: 2011-10-24 17:28
本帖最后由 亿万星辰 于 2011-10-24 17:35 编辑
  1. #==============================================================================
  2. # ■ Title_words
  3. #------------------------------------------------------------------------------
  4. #  显示标题画面开始文字的窗口。
  5. #==============================================================================

  6. class Title_words
  7.   def initialize(x, y, word = "按空格开始游戏", begin_opacity = 255, flash_add = 5)
  8.     @start = Sprite.new
  9.     @start.bitmap = Bitmap.new(544, 20)
  10.     @start.x = x
  11.     @start.y = y
  12.     @start.bitmap.draw_text(0,0,544, 20,word, 1)
  13.     @start.z = 1000
  14.     @start.opacity = begin_opacity
  15.     @flash_add = flash_add
  16.   end        
  17.   #--------------------------------------------------------------------------
  18.   # ● 更新
  19.   #--------------------------------------------------------------------------
  20.   def update
  21.     @start.opacity += @flash_add
  22.     @flash_add *= -1 if @start.opacity % 255 == 0
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 释放
  26.   #--------------------------------------------------------------------------
  27.   def dispose
  28.     @start.bitmap.dispose
  29.     @start.dispose
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 可见性控制
  33.   #--------------------------------------------------------------------------
  34.   def visible
  35.     return @start.visible
  36.   end
  37.   def visible=(v)
  38.     @start.visible = v
  39.   end
  40. end


  41. class Scene_Title < Scene_Base
  42.   #--------------------------------------------------------------------------
  43.   # ● 开始处理
  44.   #--------------------------------------------------------------------------
  45.   alias old_start start
  46.   def start
  47.     old_start
  48.     @command_window.visible = false
  49.     @title_word1 = Title_words.new(0, 320, "按空格开始游戏", 255, -5)
  50.     @title_word2 = Title_words.new(0, 32, "按空格开始游戏", 0, 5)
  51.     @title_waiting = true
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 结束处理
  55.   #--------------------------------------------------------------------------
  56.   alias old_terminate terminate
  57.   def terminate
  58.     old_terminate
  59.     title_dispose
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 更新画面
  63.   #--------------------------------------------------------------------------
  64.   def update
  65.     super
  66.     @title_waiting ? title_update : @command_window.update
  67.     if Input.trigger?(Input::C)
  68.       if @title_waiting
  69.         Sound.play_decision
  70.         @title_waiting = false
  71.         @command_window.visible = true
  72.         @title_word1.visible = false
  73.         @title_word2.visible = false
  74.       else
  75.         case @command_window.index
  76.         when 0    #New game
  77.           command_new_game
  78.         when 1    # Continue
  79.           command_continue
  80.         when 2    # Shutdown
  81.           command_shutdown
  82.         end
  83.       end
  84.     end
  85.     if Input.trigger?(Input::B) and !@title_waiting
  86.       Sound.play_cancel
  87.       @title_waiting = true
  88.       @command_window.visible = false
  89.       @title_word1.visible = true
  90.       @title_word2.visible = true
  91.     end
  92.   end
  93.   def title_update
  94.     @title_word1.update
  95.     @title_word2.update
  96.   end
  97.   def title_dispose
  98.     @title_word1.dispose
  99.     @title_word2.dispose
  100.   end
  101. end
复制代码
不解释
作者: starky_ds    时间: 2011-10-26 12:07
我已经下决心再也不学RGSS了=。=||




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