楼主: jiushiainilip19

[已经解决] 新手求教:如何新建一个框架 请大神门指点

[复制链接]
梦石
0
星屑
606
在线时间
797 小时
注册时间
2014-7-1
回帖
501

开拓者

 楼主| 发表于 2015-6-28 13:40:34 | 显示全部楼层
无忧谷主幻 发表于 2015-6-28 13:35
算了,还是给你好了,是否用得上自己看着办

谢谢你给的范例!!
学习使我疲劳,打工使我疲惫,恋爱使我伤身,吸烟伤我肺腑,饮酒损我形象,旅游使我破费,月底不见铜板,只有在论坛里面看看各种大佬才能使我进去
回复

使用道具 举报

梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2015-6-28 13:45:17 | 显示全部楼层
本帖最后由 RyanBern 于 2015-6-28 13:46 编辑

[pre lang="Ruby"]module RB
end
module RB::Description
  # 游戏说明背景图片
  Background_Img = "Help"
  # 翻页过渡图形,如果设置为空则是普通的淡入淡出
  Transition = "Graphics/Transitions/015-Diamond01"
  # 文字设置区域,左边的数字代表页码(不能设置为0或者负数),右侧的是文字
  # 每行文字用引号分割
  Texts = {
    1 => ["说明文字Line1",
          "说明文字Line2"
          ],
    2 => ["第二页说明文字Line1",
          "第二页说明文字Line2"
          ],
    3 => ["RyanBern",
          "脚本编写"
          ]
  }
end

class Window_Description < Window_Base
  def initialize
    super(0, 0, 640, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.visible = true
    self.opacity = 0
    @page = 0
    refresh
  end
  def refresh
    self.contents.clear
    texts = RB::Description::Texts[@page]
    return if texts.nil?
    texts.each_with_index do |text, i|
      self.contents.draw_text(4, i * 32, width - 32, 32, text)
    end
  end
  def page=(page)
    if @page != page
      @page = page
      refresh
    end
  end
end

class Scene_Help
  def main
    @page = 1
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.picture(RB::Description::Background_Img)
    @description_window = Window_Description.new
    @description_window.page = @page
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @sprite.bitmap.dispose
    @sprite.dispose
    @description_window.dispose
  end
  def update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new
      return
    end
    if Input.trigger?(Input::LEFT)
      if @page > 1
        $game_system.se_play($data_system.cursor_se)
        @page -= 1
        Graphics.freeze
        @description_window.page = @page
        Graphics.transition(20, RB::Description::Transition)
      else
        $game_system.se_play($data_system.buzzer_se)
      end
      return
    end
    if Input.trigger?(Input::RIGHT)
      if @page < RB::Description::Texts.keys.max
        $game_system.se_play($data_system.cursor_se)
        @page += 1
        Graphics.freeze
        @description_window.page = @page
        Graphics.transition(20, RB::Description::Transition)
      else
        $game_system.se_play($data_system.buzzer_se)
      end
      return
    end  
  end
end[/pre]
插入到main前,不过没有整合到菜单里面。
使用的时候输入事件脚本
[pre lang="Ruby"]$scene = Scene_Help.new[/pre]
附效果图:
1.png

评分

参与人数 1星屑 +60 收起 理由
明特·布兰马修 + 60 塞糖

查看全部评分

回复

使用道具 举报

梦石
0
星屑
606
在线时间
797 小时
注册时间
2014-7-1
回帖
501

开拓者

 楼主| 发表于 2015-6-28 14:18:09 | 显示全部楼层
RyanBern 发表于 2015-6-28 13:45
module RB
end
module RB::Description

3Q3Q3Q!太强大了
学习使我疲劳,打工使我疲惫,恋爱使我伤身,吸烟伤我肺腑,饮酒损我形象,旅游使我破费,月底不见铜板,只有在论坛里面看看各种大佬才能使我进去
回复

使用道具 举报

梦石
0
星屑
606
在线时间
797 小时
注册时间
2014-7-1
回帖
501

开拓者

 楼主| 发表于 2015-6-28 14:38:32 | 显示全部楼层
本帖最后由 jiushiainilip19 于 2015-6-28 14:51 编辑

我试着自己去按照Meun上的方法去些 但是出现了一种情况  就是在选项的上面 光标在上面 但没有按确定键 居然会自动执行确定键 其他的都还正常  一般这种自动会案件的情况是些什么问题

  1. #==============================================================================
  2. # ■ Scene_MenuSort
  3. #------------------------------------------------------------------------------
  4. #  处理菜单画面的类。
  5. #==============================================================================

  6. class Scene_MenuSort
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9. #     menu_index : 命令光标的初期位置
  10. #--------------------------------------------------------------------------
  11.   def initialize(menu_index = 0)
  12.     @menu_index = menu_index
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # ● 主处理
  16.   #--------------------------------------------------------------------------
  17.   def main
  18.     # 生成命令窗口
  19.     s1 = "内功篇"#$data_system.words.item
  20.     s2 = "身法篇"#$data_system.words.skill
  21.     s3 = "特技篇"#$data_system.words.equip
  22.     s4 = "状态篇"
  23.     s5 = "阵法篇"
  24.    # s6 = "预留"
  25.     @command_window = Window_Command.new(160, [s1, s2, s3, s4,s5 ,])
  26.     @command_window.index = @menu_index
  27.       # 执行过渡
  28.     Graphics.transition
  29.     # 主循环
  30.     loop do
  31.       # 刷新游戏画面
  32.       Graphics.update
  33.       # 刷新输入信息
  34.       Input.update
  35.       # 刷新画面
  36.     update
  37.       # 如果切换画面就中断循环
  38.       if $scene != self
  39.         break
  40.       end
  41.     end
  42.     # 准备过渡
  43.     Graphics.freeze
  44.     # 释放窗口
  45.     @command_window.dispose
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ● 刷新画面
  49.   #--------------------------------------------------------------------------
  50.   def update
  51.     # 刷新窗口
  52.     @command_window.update
  53.     # 命令窗口被激活的情况下: 调用 update_command
  54.     if @command_window.active
  55.       update_command
  56.      # return
  57.     end
  58.    end
  59.     #--------------------------------------------------------------------------
  60.   # ● 刷新画面 (命令窗口被激活的情况下)
  61.   #--------------------------------------------------------------------------
  62.   def update_command
  63.     # 按下 B 键的情况下
  64.     if Input.trigger?(Input::B)
  65.       # 演奏取消 SE
  66.       $game_system.se_play($data_system.cancel_se)
  67.       # 切换的地图画面
  68.       $scene = Scene_Map.new
  69.       return
  70.     end
  71.     # 按下 C 键的情况下
  72.     if Input.trigger?(Input::C)
  73.         # 演奏冻结 SE
  74.             $game_system.se_play($data_system.buzzer_se)
  75.        end
  76.       # 命令窗口的光标位置分支
  77.       case @command_window.index
  78.       when 0  # 内功篇
  79.         # 演奏确定 SE
  80.         $game_system.se_play($data_system.decision_se)
  81.         # 切换到物品画面
  82.         $scene = Scene_ItemSort.new
  83.        return
  84.     end
  85.   end
  86.   #--------------------------------------------------------------------------
  87.   # ● 刷新画面 (状态窗口被激活的情况下)
  88.   #--------------------------------------------------------------------------
  89.   def update_status
  90.     # 按下 B 键的情况下
  91.    
  92.     # 按下 C 键的情况下
  93.    
  94.   end
  95. end
复制代码
学习使我疲劳,打工使我疲惫,恋爱使我伤身,吸烟伤我肺腑,饮酒损我形象,旅游使我破费,月底不见铜板,只有在论坛里面看看各种大佬才能使我进去
回复

使用道具 举报

梦石
0
星屑
606
在线时间
797 小时
注册时间
2014-7-1
回帖
501

开拓者

 楼主| 发表于 2015-6-28 15:43:14 | 显示全部楼层
问题意境解决,本人再次非常感谢各位大神的指导!谢谢
学习使我疲劳,打工使我疲惫,恋爱使我伤身,吸烟伤我肺腑,饮酒损我形象,旅游使我破费,月底不见铜板,只有在论坛里面看看各种大佬才能使我进去
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部