查看: 3252|回复: 5

[随意闲聊] 【卖萌第三弹】实时监控喵

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

开拓者

发表于 2014-12-31 22:41:47 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 kuerlulu 于 2015-1-1 11:43 编辑

0.gif
【虽然不知道有啥用= =|||
也完全不知道萌点在哪- -b..
总之就这样啦, 新年快乐喵~

打开姿势嚯呀喵
[pre lang="ruby" line="1"]def pick_a_bitmap(bitmap, x, y, w, h)
  b = Bitmap.new w, h
  b.blt 0, 0, bitmap, Rect.new(x, y, w, h)
  return b
end
def Color.sample(alpha=255)
  Color.new([0,120,255][rand(3)],[0,120,255][rand(3)],[0,120,255][rand(3)],alpha)
end
class Monitor
  b = Bitmap.new "Resources/title_line.png"
  H = [
    pick_a_bitmap(b, 0,  0, 210, 34),
    pick_a_bitmap(b, 0, 34, 210, 22),
    pick_a_bitmap(b, 0, 56, 210, 12),
  ]
  b.dispose
  FONT_SIZE = 16
  attr_accessor :x, :y
  def initialize
    @x = @y = 0
    prepare_data
    prepare_back
  end
  def prepare_data
    @array = []
    @linfo = []
    @lines = []
    @temp_num = @linfo.size
  end
  def prepare_back
    @back_up     = Sprite.new
    @back_middle = Sprite.new
    @back_down   = Sprite.new
    @back_up.bitmap     = H[0]
    @back_up.bitmap.font.size = FONT_SIZE
    @back_up.bitmap.font.color = Color.new 255, 255, 255, 200
    @back_up.bitmap.draw_text @back_up.bitmap.rect, "Monitor by hyrious", 1
    @back_middle.bitmap = Bitmap.new H[1].width, 480
    @back_middle.bitmap.stretch_blt @back_middle.bitmap.rect, H[1], H[1].rect
    @back_middle.src_rect.height = 0
    @back_down.bitmap   = H[2]
    @back_up.z = @back_middle.z = @back_down.z = 233333
  end
  def update
    update_info
    update_back
    update_lines
  end
  def update_back
    @back_middle.src_rect.height += dynamic_distance(
      @array.size * (FONT_SIZE + 2), @back_middle.src_rect.height, 7)
    @back_down.x = @back_middle.x = @back_up.x += dynamic_distance(@x, @back_up.x, 7)
    @back_up.y += dynamic_distance(@y, @back_up.y, 7)
    @back_middle.y = @back_up.y + @back_up.bitmap.height
    @back_down.y = @back_middle.y + @back_middle.src_rect.height
  end
  def dynamic_distance(a, b, c)
    (a - b).abs < c ? (a - b) == 0 ? 0 : (a - b).abs / (a - b) : (a - b) / c
  end
  def update_info
    @info = @array.map{|obj, *a| obj.send(*a) }
    @info.each_with_index do |e, i|
      if e != @linfo
        @lines.bitmap.clear
        @lines.bitmap.draw_text 8, 0, 192, (FONT_SIZE + 2), conv(*@array)
        @lines.bitmap.draw_text 8, 0, 192, (FONT_SIZE + 2), "#{e}", 2
        @linfo = e
      end
    end
  end
  def update_lines
    @lines.each_with_index do |e, i|
      e.x += dynamic_distance(@x, e.x, 7)
      e.y += dynamic_distance(@y + (i + 1) * (FONT_SIZE + 2) + 16, e.y, 7)
    end
  end
  def conv(obj, sym, *args)
    if obj.is_a? Game_Variables
      return "变量[#{args}]"
    elsif obj.is_a? Game_Switches
      return "开关[#{args}]"
    else
      return obj.class.to_s + '>' + sym.to_s
    end
  end
  def add(obj, sym=:inspect, *args)
    @array << [obj, sym, *args]
    @lines << new_line
  end
  def new_line
    s = Sprite.new
    s.x = 40
    s.y = @y + @array.size * (FONT_SIZE + 2) + 16
    s.z = 2333333
    s.blend_type = 1
    s.bitmap = Bitmap.new 210, (FONT_SIZE + 2)
    s.bitmap.font.size = FONT_SIZE
    s.color = Color.sample 200
    return s
  end
  def clear
    @array.clear
    @lines.each{|e| e.bitmap.dispose; e.dispose }
    @lines.clear
  end
end

class << Graphics
  alias hy_update update
  def update
    hy_update
    monitor.update
  end
  def monitor
    @monitor ||= Monitor.new
  end
end

def monitor; Graphics.monitor; end
[/pre]
食用本代码时请将下图(title_line.png#名字瞎取的啦)保存到Resources文件夹(自己建)
title_line.png
像这样
0.jpg
此UI素材取自Rainmeter默认皮肤"illustro"里的Background.png

@三途亚梦
稍微优化一下UI(代码已更新), 顺便我想到第四弹卖萌就是EasyUI好了~  
还有一件事, 事件中这样玩:
0.png 1.png

点评

视觉效果简直棒棒哒~  发表于 2015-1-1 12:37

评分

参与人数 1星屑 +66 收起 理由
三途亚梦 + 66 这种效果简直是装逼利器~

查看全部评分


  -fk: -azogi:
梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2014-12-31 22:44:13 | 显示全部楼层
这是VA还是XP···

点评

GIF跳得太快没反应过来···  发表于 2014-12-31 23:01
里面还有vx的魔女之家的薇奥拉~  发表于 2014-12-31 22:51
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

炎

梦石
0
星屑
98
在线时间
1617 小时
注册时间
2013-8-15
回帖
4322
发表于 2014-12-31 23:10:02 | 显示全部楼层

长脸好漂亮~
回复

使用道具 举报

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
回帖
10960

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

发表于 2014-12-31 23:55:32 | 显示全部楼层
丝毫看不懂是什么意思的说
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复

使用道具 举报

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
回帖
6325
发表于 2015-1-1 07:37:58 | 显示全部楼层
本帖最后由 上贺茂润 于 2015-1-1 08:58 编辑

虽然不知道有什么用,不过看去很高端的样子 顺便砍楼下天使
长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复

使用道具 举报

…あたしは天

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

开拓者贵宾

发表于 2015-1-1 08:09:01 | 显示全部楼层
话说就为了这个要黑 Graphics?没必要吧。

另外这个实时监控没有控制台可爱呢~(我认真的)

点评

噗……我忘了没有 Scene_Base 这件事情了……  发表于 2015-1-1 10:18
xp又没有Scene_Base 而且我想问全局刷新o(╯□╰)o  发表于 2015-1-1 10:14
不能直接放在场景里么  发表于 2015-1-1 09:41
跪求新的刷新姿势⊙▽⊙  发表于 2015-1-1 09:35
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部