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

Project1

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

[已经解决] RMVA]】对系统脚本 pop={}用法的困惑?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
跳转到指定楼层
1
发表于 2020-7-18 15:10:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
#  游戏中所有窗口的父类
#==============================================================================

class Window_Base < Window



#--------------------------------------------------------------------------
  # ● 绘制带有控制符的文本内容
  #--------------------------------------------------------------------------
  def draw_text_ex(x, y, text)
    reset_font_settings
    text = convert_escape_characters(text)
    pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
    process_character(text.slice!(0, 1), text, pos) until text.empty?
  end

#--------------------------------------------------------------------------
  # ● 文字的处理
  #     c    : 文字
  #     text : 绘制处理中的字符串缓存(字符串可能会被修改)
  #    pos  : 绘制位置 {:x, :y, :new_x, :height}
  #--------------------------------------------------------------------------

我的疑问是,pop 是绘制位置,为什么是一个四个元素的哈希表能决定绘制位置。有这用法吗?这里一定得是哈希表吗?

Lv4.逐梦者

梦石
2
星屑
6682
在线时间
501 小时
注册时间
2018-3-23
帖子
533

R考场第七期银奖

2
发表于 2020-7-18 16:26:33 | 只看该作者
首先Ruby的传参对于对象是引用传递,也就是说,我们可以在process_character的内部修改外部pos的值,这点很重要。
然后,为了智能处理每个字符,VA会分别处理每个字符,然后对这个字符的处理完毕之后,如果这个字符不是控制符(已经被绘制了),就会通过修改引用的pos移动下一个字符的绘制位置,否则多个字符岂不重叠了(
所以利用这个方法,使得pos不断变化,而每次传入的pos也就不同,从而实现逐字符绘制的效果。

评分

参与人数 1星屑 +50 收起 理由
VIPArcher + 50 我很赞同

查看全部评分

祝好。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
3
 楼主| 发表于 2020-7-18 17:22:17 | 只看该作者
MCCF 发表于 2020-7-18 16:26
首先Ruby的传参对于对象是引用传递,也就是说,我们可以在process_character的内部修改外部pos的值,这点很 ...

大大的回答,好评!!!

VxAce 帮助文件没写,差评!!!
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
34720
在线时间
6739 小时
注册时间
2012-5-26
帖子
3259

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

4
发表于 2020-7-18 20:32:54 | 只看该作者
我墙裂批判这种写法,因为它直接限制死了可以修改pos的方式,必须要逐级方法都传入才能获取到,这根本不利于写扩展()

评分

参与人数 1+1 收起 理由
MCCF + 1 鹰大威武

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
5
 楼主| 发表于 2020-7-18 21:53:28 | 只看该作者
百里_飞柳 发表于 2020-7-18 20:32
我墙裂批判这种写法,因为它直接限制死了可以修改pos的方式,必须要逐级方法都传入才能获取到,这根本不利 ...

不明觉历 = { 听起来很历害,但是完全不明白所以的高深课题。}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 06:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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