赞 | 2 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 4954 |
最后登录 | 2024-3-18 |
在线时间 | 54 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 81
- 在线时间
- 54 小时
- 注册时间
- 2008-12-24
- 帖子
- 345
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 凌辰 于 2009-7-28 23:22 编辑
- #===========================================================
- # ■ Window_Instant_Messaging
- #------------------------------------------------------------------------------
- # 信息窗口。Instant_Messaging
- #===========================================================
- class Window_Instant_Messaging < Window_Selectable
- # 显示行数数列
- INSTANT_SIZE = 10
- #--------------------------------------------------------------------------
- # ● 初始化对像
- #--------------------------------------------------------------------------
- def initialize
- # 设置窗口坐标,和窗口大小
- super(0, 250, 330, 240)
- # 绝对透明处理
- self.opacity = 0
- # 激活处理
- self.active = false
- self.index = 0
- end
- #--------------------------------------------------------------------------
- # ● 刷新
- #--------------------------------------------------------------------------
- def refresh(count = 0)
- if $old_messaging.size >= 0
- # 如果hash表的键值数值大于显示的所能容下的行数
- if $old_messaging.size > INSTANT_SIZE
- # 计算多出来的部分
- @size = INSTANT_SIZE
- @count = $old_messaging.size
- @count -= INSTANT_SIZE
- else
- # 如果没有超过…就返回0
- @size = $old_messaging.size
- @count = 0
- end
- self.contents = Bitmap.new(width - 32, INSTANT_SIZE * 16)
- # 清理不需要的字符串--清楚多出来的字
- self.contents.clear
- @count_no = 0
- # 循环处理能够显示的
- for i in 0...@size
- if i + count + @count >= 0
- @no = i + count + @count
- # 变量 = 键值
- item = $old_messaging[@no]
- x = 0
- y = (i - @count_no) * 16 # ----显示"常量:INSTANT_SIZE"行,不介意很大
- # 显示键值
- self.contents.font.color = Color.new(-170,-170,-170,255)
- self.contents.font.size = 14
- self.contents.draw_text(x + 6, y + 1, self.contents.text_size(item).width, 16, item, 0)
- self.contents.font.color = normal_color
- self.contents.draw_text(x + 5, y, self.contents.text_size(item).width, 16, item, 0)
- end
- end
- end
- end
- #--------------------------------------
- # ● 刷新光标
- #--------------------------------------
- def update_cursor_rect
- # 光标位置不满 0 的情况下
- if @index < 0
- self.cursor_rect.empty
- return
- end
- # 获取当前的行
- row = @index / @column_max
- # 当前行被显示开头行前面的情况下
- if row < self.top_row
- # 从当前行向开头行滚动
- self.top_row = row
- end
- # 当前行被显示末尾行之后的情况下
- if row > self.top_row + (self.page_row_max - 1)
- # 从当前行向末尾滚动
- self.top_row = row - (self.page_row_max - 1)
- end
- # 计算光标的宽
- cursor_width = self.width / @column_max - 32
- # cursor_width = 0
- # 计算光标坐标
- x = @index % @column_max * (cursor_width + 32)
- y = @index / @column_max * 32 - self.oy
- # 更新国标矩形
- self.cursor_rect.set(x, y, self.width - 32, 96)
- end
- end
复制代码 自己写的~可是一直很想让他实现打字效果 请将脚本框在代码框内。 |
|