查看: 992|回复: 5

[有事请教] 窗口信息滚动

[复制链接]
梦石
0
星屑
3850
在线时间
1899 小时
注册时间
2010-6-19
回帖
917
发表于 2024-6-21 23:21:36 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 黑米馒头 于 2024-6-22 14:50 编辑

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

[pre lang="ruby"]def message(txt, a="系统")
  bitmap = RPG::Cache.picture("/Ui/聊天界面/#{a}")
  rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  
  y = $message_index * 24
  
  $message_sprite.bitmap.blt(7, 6 + y, bitmap, rect)
  line_count = $message_sprite.bitmap.tip_draw_text(10 + bitmap.width, 6 + y, txt)
  
  if $message_index < 4
    $message_index += line_count
  else
    $message_index += line_count
    $message_sprite.y -= line_count * 24
  end
end[/pre]
梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
发表于 2024-6-22 08:42:53 | 显示全部楼层
本帖最后由 金芒芒 于 2024-6-22 08:45 编辑

https://rpg.blue/thread-155250-1-1.html
11.png
回复

使用道具 举报

梦石
0
星屑
2876
在线时间
172 小时
注册时间
2020-8-9
回帖
100
发表于 2024-6-24 08:50:25 | 显示全部楼层
可以先正常在窗口上画图,或者说画文字,滚动的效果只需要通过对窗口.oy进行加减就可以实现,如果需要横向滚动就操作窗口.ox
回复

使用道具 举报

梦石
0
星屑
3850
在线时间
1899 小时
注册时间
2010-6-19
回帖
917
 楼主| 发表于 2024-6-24 08:55:20 | 显示全部楼层
939034448 发表于 2024-6-24 08:50
可以先正常在窗口上画图,或者说画文字,滚动的效果只需要通过对窗口.oy进行加减就可以实现,如果需要横向 ...

我试过用oy来控制,但是到最后减的超过屏幕高度,直接全都看不到了,不然我窗口高度为400,超过了就看不到了

点评

画布不够大,你可以想象窗口是一个盖在画纸上的窗,除了窗口的内容你啥也看不到,调整oy就是移动这个窗在画纸上的位置,窗口超出画布就看不到了  发表于 2024-6-25 15:05
回复

使用道具 举报

梦石
0
星屑
42235
在线时间
6017 小时
注册时间
2006-11-10
回帖
6966
发表于 2024-6-24 09:25:39 | 显示全部楼层
黑米馒头 发表于 2024-6-24 08:55
我试过用oy来控制,但是到最后减的超过屏幕高度,直接全都看不到了,不然我窗口高度为400,超过了就看不 ...

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

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

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部