设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

怎样制作滚动条

查看数: 2295 | 评论数: 3 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-2-4 13:25

正文摘要:

怎样制作非鼠标系统的滚动条? 按上或下就改变滚动条位置 就拿物品栏举例… 本人尝试过修改Window_Item,建了个Sprite,但坐标始终有问题 然后又修改Window_Selectable,但取整后位置不对 求大大解答… ...

回复

SailCat 发表于 2016-2-5 15:03:09
紫英晓狼1130 发表于 2016-2-5 14:39
意思明白了~
游戏里滚动粒大小不变,该怎样计算坐标(如下图)
按我这么写Window_Selectable计 ...

你里面有一堆这样的代码
其一:            @scroll.y -= 168 /(@item_max / @column_max)
理论上说,这个168应是161(168-7)
其二:连续整数除法的取整舍入误差太大了
应该先更新@index,然后让然后你再去直接算新的@scroll.y
其三:滚动条的跟随有问题
还有,你的@scroll.y跟着光标走,这是错的,你去看系统的滚动条,都是跟滚动屏(top_row,或者window_base里的oy)走的,哪有跟光标走的啊……

点评

谢谢  发表于 2016-2-5 15:24
SailCat 发表于 2016-2-5 10:52:12
在Window_Selectable中有一些属性与滚动条的计算有关
例如你的窗口能显示5条信息,一共有15条信息,那么不考虑上下箭头的话,滚动条的高度就是5
滚动粒的高度(以及它的位置)和窗口的总状态数有关,窗口最上面显示0-4条,最下面显示10-14条, 一共有11个位置
所以滚动粒的高度就是5/11,这样它的11个位置分别是:
当窗口显示0-4时,滚动粒的顶部为0,占据0到5/11的位置
当窗口显示1-5时,滚动粒的顶部为5/11,占据5/11到10/11的位置
……
当窗口显示10-14时,滚动粒的顶部为4 6/11,占据4 6/11到5的位置

而窗口总条数由@item_max决定,显示哪些条是由self.top_row(可读写属性)决定的
滚动粒的位置这么计算
其高度= @height / (@item_max - (@height / 32) + 1)
其位置(顶端)= @height * (self.top_row) / (@item_max - (@height / 32) + 1)

这里面32是默认的条目高度
另外滚动条要自己建一个bitmap,不要放在content_bitmap上,不然它会随内容上下滚动。

评分

参与人数 2星屑 +240 梦石 +1 收起 理由
RyanBern + 1 认可答案
紫英晓狼1130 + 240 精品文章

查看全部评分

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-30 14:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表