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

Project1

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

[已经解决] 如何用事件脚本修改module类的脚本?

[复制链接]

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

跳转到指定楼层
1
发表于 2013-10-12 21:36:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RUBY 代码复制
  1. module Image
  2.  
  3.   # 背景图片
  4.   Background = RPG::Cache.picture("background")


在事件脚本写入 Background = RPG::Cache.picture("background2")
好像没有效果啊。
请问要怎么使用事件脚本修改module类的脚本?
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

Lv3.寻梦者

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

贵宾

2
发表于 2013-10-12 22:00:12 | 只看该作者
我觉得可以这样,执行脚本时先进行一个判断(if),根据开关或变量的值执行后面的脚本。

评分

参与人数 1星屑 +66 收起 理由
美丽晨露 + 66 我很赞同

查看全部评分

(Created by @喵kano)


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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3570
在线时间
3064 小时
注册时间
2011-11-17
帖子
980
3
发表于 2013-10-12 22:10:25 | 只看该作者
Image::Background = RPG::Cache.picture("background2")

评分

参与人数 2星屑 +175 收起 理由
myownroc + 75 认可答案
美丽晨露 + 100 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
4
发表于 2013-10-12 22:32:15 | 只看该作者
本帖最后由 恋′挂机 于 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就是常说的 事件解释器

评分

参与人数 2星屑 +240 收起 理由
myownroc + 90 塞糖
美丽晨露 + 150 感谢热心解释

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33125
在线时间
5104 小时
注册时间
2012-11-19
帖子
4878

开拓者

5
发表于 2013-10-12 22:49:25 | 只看该作者
直接弄个全局变量,比如:$back_name = "背景图片名"
然后把读取的地方改掉:Background = RPG::Cache.picture($back_name)

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

没试过,可以试下。

评分

参与人数 2星屑 +190 收起 理由
myownroc + 90 塞糖
美丽晨露 + 100 精品文章

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-30 03:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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