查看: 5469|回复: 17

[胡扯] 【伪·紫菜单】因为写得太挫所以发水区

[复制链接]
梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
回帖
1643

开拓者

发表于 2014-7-20 08:46:24 | 显示全部楼层 |阅读模式

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

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

×
0.png
[pre lang="ruby" line="1"]#encoding:utf-8
# 一个子窗口
#  其实功能好扩展我会乱说?
class Sub_Window < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, window_width, fitting_height(visible_line_number))
    self.openness = 0
    activate
  end
  #--------------------------------------------------------------------------
  # ● 获取窗口的宽度
  #--------------------------------------------------------------------------
  def window_width
    return 128
  end
  #--------------------------------------------------------------------------
  # ● 获取显示行数
  #--------------------------------------------------------------------------
  def visible_line_number
    return 1
  end
  #--------------------------------------------------------------------------
  # ● 设置
  #--------------------------------------------------------------------------
  def setup(text, *mode)
    create_contents
    self.contents.draw_text(self.contents.rect, text)
    case mode
    when [:bar]
      @var = 0
      @vartemp = @var
      @bar = Sprite.new
      @bar.x,@bar.y,@bar.z,@bar.opacity = self.x+14,self.y+14,100,205
      @bar.bitmap = Bitmap.new(74, 20)
      @bar.bitmap.fill_rect(@bar.bitmap.rect, Color.new(255,255,255))
      self.contents.draw_text(self.contents.rect, @var, 2)
    end
    open
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def update
    super
    if @bar
      @var += 1 if Input.press?(:UP) && @var != 100
      @var -= 1 if Input.press?(:DOWN) && @var != 0
      if @var != @vartemp
        @vartemp = @var
        update_bar
      end
    end
  end
  def dispose
    (@bar.bitmap.dispose;@bar.dispose) if @bar
    super
  end
  def update_bar
    self.contents.clear
    self.contents.draw_text(self.contents.rect, @var, 2)
    @bar.bitmap.clear
    @bar.bitmap.fill_rect(@bar.bitmap.rect, Color.new(255,255,255))
    @bar.bitmap.fill_rect(0, 0, @bar.bitmap.width*@var/100, 20, Color.new(102,204,255))
  end
end

# 子菜单管理器
#  其实是场景我会瞎说?
class Window_WithSub
  attr_reader :x,:y       # 坐标
  attr_reader :index      # 当前光标位置
  attr_reader :windows    # 窗口数组
  attr_reader :value      # 传参借位
  attr_reader :methd      # 方法数组
  # hash 格式:
  #{ :command1 => method(:symbol1),
  #  :command2 => { :command21 => method(:symbol2) } }
  def initialize(x, y, hash, &block)
    @x,@y,@index = x,y,0
    @last = @index
    instance_eval(&block) if block_given?
    @windows,@methd = [],[]
    create_windows(hash)
    main
  end
  def main
    loop do
      Graphics.update
      Input.update
      break dispose if Input.trigger?(:LEFT)
      update
    end
  end
  def create_windows(hash)
    hash.each do |key, value|
      if (value.is_a? Method)||(value.is_a? Symbol)
        @windows.push(new_window(key, value))
      elsif value.is_a? Hash
        @value = value
        @windows.push(new_window(key, method(:new_sub)))
      end
    end
  end
  def new_sub
    Window_WithSub.new(self.x+60, self.y+40, @value)
  end
  def new_window(sym, obj)
    w = Sub_Window.new(self.x, self.y + 48 * @windows.size)
    if obj.is_a? Method
      w.setup(sym.to_s)
      @methd[@windows.size] = obj
    elsif obj.is_a? Symbol
      w.setup("" , obj)
      @methd[@windows.size] = ->{}
    end
    return w
  end
  def update
    if Input.trigger?(:UP)
      Sound.play_cursor
      @index == 0 ? @index = @windows.size-1 : @index -= 1
    elsif Input.trigger?(:DOWN)
      Sound.play_cursor
      @index == @windows.size-1 ? @index = 0 : @index += 1
    elsif Input.trigger?(:RIGHT)
      if @methd[@index].inspect == "#<Method: Game_Interpreter#m1>"
        Sound.play_buzzer
      else
        Sound.play_ok
        @methd[@index].call
      end
    elsif Input.trigger?(:LEFT)
      Sound.play_cancel
    end
    @windows.each { |w| w.update }
    activate(@windows[@index])
    if @last != @index
      @last = @index
    end
  end
  def dispose
    @windows.each { |w| w.dispose }
  end
  def activate(window)
    @windows.each_with_index do |w,i|
      w.cursor_rect.empty
      w.cursor_rect.set(Rect.new(0, 0, 104, 24)) if w == window
    end
  end
end

class Game_Interpreter
  def m1;end
  def callsubw
    subw = Window_WithSub.new(60, 60, {
      :物品 => method(:m1),
      :装备 => method(:m1),
      :技能 => method(:m1),
      :状态 => method(:m1),
      :笔记 => method(:m1),
      :系统 => {
        :音乐 => { :var => :bar },
        :音效 => method(:m1),
        :读档 => method(:m1),
        :标题 => method(:m1)},
      :读档 => method(:m1),
})
  end
end[/pre]
1.png
我还是太年轻了
以及颜文字功能好像有bug的说搞基编辑模式下按颜文字会清空已编辑的内容

点评

在水区发布,就是想触人,以及回收膝盖~~~  发表于 2014-7-20 09:51

评分

参与人数 2星屑 +60 收起 理由
vince3725 + 30 精品文章
VIPArcher + 30 这是今天的30新鲜膝盖,还请收好.

查看全部评分


  -fk: -azogi:

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-7-20 08:48:07 | 显示全部楼层
大触收下我的膝盖
回复

使用道具 举报

梦石
0
星屑
68
在线时间
585 小时
注册时间
2013-5-25
回帖
1484
发表于 2014-7-20 08:52:52 | 显示全部楼层
大触收下我的膝盖

来水区都是大触
回复

使用道具 举报

梦石
0
星屑
69
在线时间
171 小时
注册时间
2014-7-13
回帖
1506
发表于 2014-7-20 08:56:00 | 显示全部楼层
大触收下我的膝盖
Demon系列

在我面前颤抖吧,凡人
我走过我们人生的一半旅程,却又步入一片幽暗的森林,这是因为我迷失了正确的路径。啊!这森林是多么荒野,多么险恶,多么举步维艰!道出这景象又是多么困难!现在想起也仍会毛骨悚然。
回复

使用道具 举报

梦石
0
星屑
48
在线时间
191 小时
注册时间
2011-7-16
回帖
1046
发表于 2014-7-20 09:03:51 | 显示全部楼层
嘛……我连看都看不懂脚本内容啦~大大请不要妄自菲薄哦
回复

使用道具 举报

梦石
0
星屑
287
在线时间
1580 小时
注册时间
2010-6-17
回帖
2818

开拓者贵宾

发表于 2014-7-20 09:10:46 | 显示全部楼层
大触请收下我的膝盖
快来点我一下,你会豁然开朗的
喵Kano特制
←开发中……

←暂时弃坑 电脑上资源全没
回复

使用道具 举报

梦石
1
星屑
7574
在线时间
2650 小时
注册时间
2013-8-23
回帖
2152

开拓者

发表于 2014-7-20 09:32:15 | 显示全部楼层

大触收下我的膝盖
回复

使用道具 举报

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
回帖
1223
发表于 2014-7-20 10:22:14 | 显示全部楼层
用图片做底效果不差
这么快都有人收藏了!!!我的帖子就没见有人收藏过( ̄︿ ̄)

点评

咦居然有人收藏  发表于 2014-7-20 10:29
你可以自己收藏……  发表于 2014-7-20 10:24
回复

使用道具 举报

梦石
0
星屑
660
在线时间
1286 小时
注册时间
2011-6-14
回帖
3949
发表于 2014-7-20 10:36:51 | 显示全部楼层
难道这个帖子就是你写的(?

点评

上面的脚本拉到最后一行看看  发表于 2014-7-20 10:44
窝这是看到这个菜单然后写粗来....  发表于 2014-7-20 10:43
回复

使用道具 举报

故九江太守

梦石
0
星屑
314
在线时间
2158 小时
注册时间
2012-12-5
回帖
4323
发表于 2014-7-20 11:05:17 | 显示全部楼层
这就是昨晚触手们研究的结果吗

点评

这只是在下研究的= =  发表于 2014-7-20 12:10
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部