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

Project1

 找回密码
 注册会员
搜索
查看: 1652|回复: 6
打印 上一主题 下一主题

[已经解决] [Window类问题]关于cursor_rect

[复制链接]

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
跳转到指定楼层
1
发表于 2013-8-24 11:14:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 九靈 于 2013-8-25 16:24 编辑

帮助(F1)中 :
Window类 :
cursor_rect
光标的矩形(Rect)。以(-16,-16)的相对座标指定窗口的左上角。


问题 :
1. cursor_rect 这个矩形是在生成Window类(或其子类)的实例时同时建立(生成)的吗?
   因为到处都没看到哪里有cursor_rect = Rect.new(...) 这个东西......
2. "以(-16,-16)的相对座标指定窗口的左上角。" 这句是啥意思? 还有为啥是(-16,-16)?
3. cursor_rect 有默认大小吗? 有的话是多少?
   我看到的都是 xxx.cursor_rect.set(...)

像是Window_Selectable类中
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 更新光标举行
  3.   #--------------------------------------------------------------------------
  4.   def update_cursor_rect
  5.           self.cursor_rect.empty
  6.       self.cursor_rect.empty
  7.  
  8.     # 光标位置不满 0 的情况下
  9.     if [url=home.php?mod=space&uid=370741]@Index[/url] < 0
  10.       self.cursor_rect.empty
  11.       return
  12.     end
  13.     # 获取当前的行
  14.     row = @index / @column_max
  15.     # 当前行被显示开头行前面的情况下
  16.     if row < self.top_row
  17.       # 从当前行向开头行滚动
  18.       self.top_row = row
  19.     end
  20.     # 当前行被显示末尾行之后的情况下
  21.     if row > self.top_row + (self.page_row_max - 1)
  22.       # 从当前行向末尾滚动
  23.       self.top_row = row - (self.page_row_max - 1)
  24.     end
  25.     # 计算光标的宽
  26.     cursor_width = self.width / @column_max - 32
  27.     # 计算光标坐标
  28.     x = @index % @column_max * (cursor_width + 32)
  29.     y = @index / @column_max * 32 - self.oy
  30.     # 更新国标矩形
  31.     self.cursor_rect.set(x, y, cursor_width, 32)
  32.   end

Lv1.梦旅人

梦石
0
星屑
112
在线时间
551 小时
注册时间
2012-8-18
帖子
1429
2
发表于 2013-8-24 11:44:08 | 只看该作者
cursor_rect是Window内置的没错……默认大小是0,0,0,0貌似= =每次empty之后也都是0,0,0,0……
设定左上角这个还真是不知道什么情况= =兰触说是是与给定的为位置有-16,-16的偏移
用多了你就会发现Window很坑啦……快去用Sprite……

评分

参与人数 1星屑 +80 收起 理由
︶ㄣ牛排ぶ + 80 认可答案

查看全部评分

我要填坑!我要背单词!我要学日语!我要每天锻炼!
好吧呵呵= =
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2744
在线时间
2630 小时
注册时间
2013-1-16
帖子
5657

贵宾

3
发表于 2013-8-24 12:29:23 | 只看该作者
1.是.
2.表示左上角什么的没搞懂,但是没懂好象也没什么问题.
3.在默认脚本Window_Selectable找到115~121行,很明显,长度可变,高度默认情况下是32

发现你问这些问题很勤奋,这么继续下去是可以成功的.
到时候你可以整理一下你的脚本心得,在论坛上和大家分享.

点评

等我学完再找时间分享吧  发表于 2013-8-24 15:24
GJ!  发表于 2013-8-24 14:11
(Created by @喵kano)


施工现场:hotege.github.io
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

4
发表于 2013-8-24 14:54:41 | 只看该作者
看到九靈就滚了进来、、
我来组成第二道题目答案:
首先由第三道答案看到默认是32
其实预置脚本中所有关于窗口中画图的(不管是bitmap也好)好像都写了个“32”
这个32指的是游戏中窗口图片的UI的边的宽度16*2(一个方向有两个边),而这样写就能防止矩形对象创建在窗口外部或者不对齐,不对齐就会自动在矩形边缘产生小箭头(截图就不弄了,你可以这样做:把物品栏显示窗口的height改成1/4大小,就看到了)。
确实搞懂了也没什么用。

评分

参与人数 1星屑 +80 收起 理由
︶ㄣ牛排ぶ + 80 认可答案

查看全部评分


  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
5
 楼主| 发表于 2013-8-24 15:25:35 | 只看该作者
本帖最后由 九靈 于 2013-8-24 15:30 编辑
kuerlulu 发表于 2013-8-24 14:54
看到九靈就滚了进来、、
我来组成第二道题目答案:
首先由第三道答案看到默认是32


试着画了几张图看看对不对




还有cursor_rect是指哪个

还是

点评

手绘好评!最后一张图目测是对的,仅目测求正解。  发表于 2013-8-24 15:31
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3121
在线时间
1534 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

6
发表于 2013-8-24 16:55:58 | 只看该作者
在window里画东西总不能画到边上,把窗口自己的边线图形压到了吧……
所以在XP中,默认了图形有上下左右各16个像素的宽限。
self.contents = Bitmap.new(self.width - 32,self.height - 32)
是常见的做法,使得图像显示不会压到图形的边线,而指定“工作区(ClientRectangle)”
顺带一提上面提到的在四侧的四个小箭头,是表示contents大于上述的约定尺寸,图形没有完全显示,你可以变更窗体的ox和oy来改变显示的角度。

评分

参与人数 1星屑 +80 收起 理由
︶ㄣ牛排ぶ + 80 认可答案

查看全部评分

菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
7
 楼主| 发表于 2013-8-24 17:32:54 | 只看该作者
IamI 发表于 2013-8-24 16:55
在window里画东西总不能画到边上,把窗口自己的边线图形压到了吧……
所以在XP中,默认了图形有上下左右各1 ...

事实上我们讨论的是cursor_rect 这个Rect 在生成Window类(或其子类)的实例时,默认会产生一个该实例(窗口)所有的cursor_rect ,
然后这个默认的cursor_rect 的默认位置及大小是什么?
并不在讨论画图的问题,而是cursor_rect 的默认位置及大小的问题。
目前考虑默认在窗口的边上(最后一张图),还没到画图阶段
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-2 02:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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