Project1

标题: 关于self.contents.fill_rect的问题. [打印本页]

作者: 水镜风生    时间: 2008-2-11 19:53
标题: 关于self.contents.fill_rect的问题.
在很多描绘值槽的脚本中都能看到self.contents.fill_rect这句,作用是以参数中的颜色填充参数中的矩形,可问题是:contents是Window类的属性,fill_rect是Bitmap类的方法,self指的是Window类的对象吗?为什么可以这样用呢?

Window_Help中还有这句self.contents = Bitmap.new(width - 32, height - 32)
这句的意思是:生成一个Bitmap的实例作为对象的contents属性?
contents到底是什么,为什么要Bitmap的实例做属性,Bitmap又是什么,它与Sprite的功能有什么不同?Bitmap生成的对象要怎么才能显示出来?

如果要在地图上画一个黑色实心矩形(无特殊作用,仅仅是举个例子),在事件脚本中应该怎么写(应该写得下吧?要求在事件脚本中写的原因是希望能用实际的对象,老用self的话看不明白.)

呃......问题太多了,发现自己根本读不懂预设脚本,希望各位能推荐些较好的教程. [LINE]1,#dddddd[/LINE]此贴于 2008-2-16 7:04:47 被版主凌冰提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]本贴由论坛斑竹凌冰结贴,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^
作者: 诡异の猫    时间: 2008-2-11 19:56
楼主你打开F1
RGSS参考 - 游戏库 - RGSS内部类 看看.
多少就能明白点了

你的例子:
sprite = Sprite.new
sprite.bitmap = Bitmap.new(32,32)
rect = Rect.new(0,0,32,32)
color = Color.new(0,0,0)
sprite.bitmap.fill_rect(rect, color) [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 血色№涟漪    时间: 2008-2-11 20:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: 水镜风生    时间: 2008-2-11 20:04
以下引用诡异の猫于2008-2-11 11:56:13的发言:

楼主你打开F1
RGSS参考 - 游戏库 - RGSS内部类 看看.
多少就能明白点了


老实说,F1的内容看过了,解释太简陋,看不明白,
像contents的解释:作为窗口内容显示的位图(Bitmap)。
这样一句带过,很难理解.......还是麻烦解释一下吧,用通俗点的语言.

作者: 血色№涟漪    时间: 2008-2-11 20:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: IamI    时间: 2008-2-11 20:59
Window类其本身是一个Sprite的集合体,里面定义了一个叫做contents的Bitmap型的对象,并将这个bitmap显示在Window上。对于一个新的Window,它的contents是NULL(RGSS里叫nil),不可以使用,所以初始化时把contents定义成了一个新的bitmap对象。
下面,
self 目前所在的窗体对象
self.contents 目前窗口的bitmap
self.contents.fill_rect 调用目前窗口的bitmap的fill_rect方法

突然发现许多人对面向对象变成的基本概念不熟…… [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 水镜风生    时间: 2008-2-12 04:55
有点明白了,谢谢各位.
以下引用IamI于2008-2-11 12:59:58的发言:

突然发现许多人对面向对象变成的基本概念不熟……

[本贴由作者于 2008-2-11 13:00:37 最后编辑]

的确如此,因为以前只学过C,接着就看F1自学ruby了,对OO语言不太熟悉.





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