Project1

标题: 窗口信息滚动 [打印本页]

作者: 黑米馒头    时间: 2024-6-21 23:21
标题: 窗口信息滚动
本帖最后由 黑米馒头 于 2024-6-22 14:50 编辑

弄了个聊天窗口,给窗口弄了个滚动功能,目前用$message_sprite.y来控制窗口位置达到实现滚动效果,
但是有个弊端,当$message_sprite.y的值减超过窗口高度时,文本内容就全部看不到了,有没有别
的方法可以实现滚动效果的。

RUBY 代码复制
  1. def message(txt, a="系统")
  2.   bitmap = RPG::Cache.picture("/Ui/聊天界面/#{a}")
  3.   rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  4.  
  5.   y = $message_index * 24
  6.  
  7.   $message_sprite.bitmap.blt(7, 6 + y, bitmap, rect)
  8.   line_count = $message_sprite.bitmap.tip_draw_text(10 + bitmap.width, 6 + y, txt)
  9.  
  10.   if $message_index < 4
  11.     $message_index += line_count
  12.   else
  13.     $message_index += line_count
  14.     $message_sprite.y -= line_count * 24
  15.   end
  16. end

作者: 金芒芒    时间: 2024-6-22 08:42
本帖最后由 金芒芒 于 2024-6-22 08:45 编辑

https://rpg.blue/thread-155250-1-1.html

11.png (67.34 KB, 下载次数: 2)

11.png

作者: 939034448    时间: 2024-6-24 08:50
可以先正常在窗口上画图,或者说画文字,滚动的效果只需要通过对窗口.oy进行加减就可以实现,如果需要横向滚动就操作窗口.ox
作者: 黑米馒头    时间: 2024-6-24 08:55
939034448 发表于 2024-6-24 08:50
可以先正常在窗口上画图,或者说画文字,滚动的效果只需要通过对窗口.oy进行加减就可以实现,如果需要横向 ...

我试过用oy来控制,但是到最后减的超过屏幕高度,直接全都看不到了,不然我窗口高度为400,超过了就看不到了
作者: 灯笼菜刀王    时间: 2024-6-24 09:25
黑米馒头 发表于 2024-6-24 08:55
我试过用oy来控制,但是到最后减的超过屏幕高度,直接全都看不到了,不然我窗口高度为400,超过了就看不 ...

知道减到超过看不到, 那就限制下减的数值呗

m = window.height - 32
window.oy -= 1
window.oy = -m if window.oy >= window.centents.height + m




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