Project1

标题: 如何用事件脚本修改module类的脚本? [打印本页]

作者: 美丽晨露    时间: 2013-10-12 21:36
标题: 如何用事件脚本修改module类的脚本?
RUBY 代码复制
  1. module Image
  2.  
  3.   # 背景图片
  4.   Background = RPG::Cache.picture("background")


在事件脚本写入 Background = RPG::Cache.picture("background2")
好像没有效果啊。
请问要怎么使用事件脚本修改module类的脚本?
作者: myownroc    时间: 2013-10-12 22:00
我觉得可以这样,执行脚本时先进行一个判断(if),根据开关或变量的值执行后面的脚本。
作者: yagami    时间: 2013-10-12 22:10
Image::Background = RPG::Cache.picture("background2")

作者: 恐惧剑刃    时间: 2013-10-12 22:32
本帖最后由 恋′挂机 于 2013-10-12 22:44 编辑

那样在事件中输入当然没有效果了(因为没有描绘)

一般用此类方法(RPG::Cache)显示图片的输入格式如下:
bitmap = RPG::Cache.picture("")
rect = Rect.new(0, 0, bitmap.width, bitmap.height)
self.contents.blt(x, y, bitmap, rect)

预设脚本中很多地方都有,不过全部都是在窗口中描绘的。
以上只是说明,没有效果的原因,也就是没有描绘(blt)




能够正确显示图片的脚本如下,下方有简单解释

  1. # 直接放在事件中就可以
  2. a = Sprite.new
  3. a.bitmap = Bitmap.new(640 - 32, 480 - 32)
  4. # 改路径和文件名就可以了
  5. bitmap = RPG::Cache.title("001-Title01")
  6. rect = Rect.new(0, 0, bitmap.width,
  7. bitmap.height)
  8. a.bitmap.blt(0, 0, bitmap, rect)
复制代码
bit属于Bitmap的属性
所以描绘之前一定要建立Bitmap的对象,
参照默认的例子 a.bitmap = Bitmap.new(xxxx)
让a能够使用bitmap方法,只能建立Sprite对象
然后再描绘图像。

另外我这里说的bitmap和Bitmap是两个概念不要混淆了
bitmap是Sprite的方法,Bitmap是独立的类





另外,
模块不是那样写的

简单例子:

module SHEZHI
   ITEM = [1, 2, 3]
end
class Interpreter
  include SHEZHI
end

在事件中使用 p SHEZHI::ITEM 看看吧~~
会显示 [1, 2, 3]

想说的:
1.要引用模块中的量,需要使用常量(也就是全是大写字母的变量)
2.要想在某个类中使用该模块,需要导入模块,也就是include SHEZHI
3.在以上2点都没问题的情况下, 使用 模块名::常量名 的方式就可以读取到常量的值

以上3点任意一点有问题,都不会正常显示,
要在事件脚本中p就要在Interpreter类导入模块,Interpreter就是常说的 事件解释器
作者: 芯☆淡茹水    时间: 2013-10-12 22:49
直接弄个全局变量,比如:$back_name = "背景图片名"
然后把读取的地方改掉:Background = RPG::Cache.picture($back_name)

改变背景图片,就在 事件 --> 脚本  里,写上 :$back_name = "背景图片名"

没试过,可以试下。




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