查看: 3176|回复: 12

[已经解决] 怎样用脚本显示文本?

  [复制链接]
梦石
0
星屑
48
在线时间
35 小时
注册时间
2011-7-16
回帖
26
发表于 2011-8-11 23:17:24 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 xcqxhb2011 于 2011-8-11 23:19 编辑

初涉Ruby,想学一下怎样用脚本显示文字,就像事件里的显示文章一样,可以自己设置文字框位置之类的。我觉得这种脚本应该比较容易理解。

点评

需要纠正你一个观点,你应该说,你初涉 RGSS ?  发表于 2011-8-12 15:55

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
回帖
3515
发表于 2011-8-11 23:18:16 | 显示全部楼层
去改写Window_Gold吧

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

梦石
0
星屑
48
在线时间
35 小时
注册时间
2011-7-16
回帖
26
 楼主| 发表于 2011-8-11 23:20:40 | 显示全部楼层
Wind2010 发表于 2011-8-11 23:18
去改写Window_Gold吧

??不太懂……是一个组吗?改了有什么效果呢?
回复

使用道具 举报

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
回帖
3515
发表于 2011-8-11 23:23:29 | 显示全部楼层
xcqxhb2011 发表于 2011-8-11 23:20
??不太懂……是一个组吗?改了有什么效果呢?

默认脚本中的Window_Gold类
个人认为这是一个比较容易修改的窗口类,里面涉及到了窗口生成、位置、画布、描绘方法等

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

梦石
0
星屑
48
在线时间
35 小时
注册时间
2011-7-16
回帖
26
 楼主| 发表于 2011-8-11 23:36:17 | 显示全部楼层
Wind2010 发表于 2011-8-11 23:23
默认脚本中的Window_Gold类
个人认为这是一个比较容易修改的窗口类,里面涉及到了窗口生成、位置、画布、 ...

我试试……不过……本帖重点在“画框显字”,好奇心爆发ing……


xcqxhb2011于2011-8-11 23:39补充以下内容:
怎么只有27行……
回复

使用道具 举报

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
回帖
3515
发表于 2011-8-11 23:39:31 | 显示全部楼层
xcqxhb2011 发表于 2011-8-11 23:36
我试试……不过……本帖重点在“画框显字”,好奇心爆发ing……

画框就是生成个窗口,显字就是
  1. self.contents.draw_text(x,y,w,h,str,align)
复制代码
具体其他的描绘多看看F1里的Bitmap

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

梦石
0
星屑
50
在线时间
157 小时
注册时间
2011-7-17
回帖
121
发表于 2011-8-12 15:20:49 | 显示全部楼层
事件中的“显示文章”等:
1。显示文章
  1. $game_temp.message_text = "你想要的文字"
复制代码
比如你在事件脚本里打上$game_temp.message_text = "啊啊啊!",那就会出现一个对话框写着“啊啊啊!”。

2。更改对话框位置
  1. $game_system.message_position = 数字
复制代码
这个数字代表的是对话框的显示位置,默认的只有三个位置,但是可以通过在脚本Window_Message里面自行添加新的位置(不是本教程的内容,就不说了。)0代表在上面显示,1代表在中间,2代表在下面。当然也可以是别的数字,不过必须在Window_Message里面定义。
  1. #其实添加新位置就在Window_Message类里
  2. case $game_system.message_position
  3.         when 0 # 上
  4.           self.y = 16
  5.         when 1 # 中
  6.           self.y = 160
  7.         when 2 # 下
  8.           self.y = 304
  9.         end
复制代码
后面接着添就行了

3。更改对话框透明度
  1. $game_system.message_frame = 数字
复制代码
这里的数字只能是0或者1,0代表完全不透明,1代表完全不透明。当然这个和对话框的显示位置一样,也可以在脚本Window_Message里面添加新的选项以做出不同的透明度。
#方法同上,只是把if条件句换成case条件句就OK了.

点评

可以自己试试你写的第一条~  发表于 2011-8-15 07:06
在那遥远的地方——有一只小猫
这里没有字→
相信我吧。
回复

使用道具 举报

虚構歪曲

梦石
0
星屑
354
在线时间
1196 小时
注册时间
2010-12-18
回帖
3842

贵宾

发表于 2011-8-12 15:56:58 | 显示全部楼层
本帖最后由 忧雪の伤 于 2011-8-12 16:05 编辑

标准输出:
p(objects ... )
print(objects ...)


生成窗口:
window = Window_Base.new(x, y, width, height)


生成画布:
window.contents = Bitmap.new(window.width - 32, window.height - 32)


描绘文字:
window.contents.draw_text(x, y, width, height, str[, align])


an example:
  1. window = Window_Base.new(0, 0, 128, 64) # 调用 Window_Base.new ,构建实例。
  2. window.contents = Bitmap.new(0, 0, 32, 96) # 调用 Window#contents 。
  3. window.contents.draw_text(0, 0, 32, 96, 'window') # 调用 Bitmap#draw_text 。
  4. loop { Graphics.update } # 这个不需要理解。
复制代码
* 这个回帖有待完善。

点评

我承认我多写了一个(args)  发表于 2011-8-12 16:07
= =  发表于 2011-8-12 16:00
回复

使用道具 举报

小小的百鬼夜行<

梦石
0
星屑
54
在线时间
579 小时
注册时间
2010-7-29
回帖
2593

贵宾

发表于 2011-8-12 16:00:02 | 显示全部楼层
本帖最后由 退屈£无聊 于 2011-8-12 16:06 编辑

好吧。
  1. class Window_NM < Window_Base
  2. def initialize(*args)
  3. super;self.contents = Bitmap.new(width-32,height-32)
  4. end
  5. def draw_text(text)
  6. self.contents.clear
  7. self.contents.draw_text(0,0,self.width,self.height,text,1)
  8. end
  9. end

  10. 先调个Window_NM
  11. 再用draw_text("我说我想要OOXX")
  12. XY什么的直接改就可以了。。
复制代码

点评

好寂寞的对话……  发表于 2011-8-17 13:45
Ahh, thanks my owner.  发表于 2011-8-12 16:28
so no questions now~~~  发表于 2011-8-12 16:26
But it runs on my computer and didn't find any questions!  发表于 2011-8-12 16:11
I have finished rewriting it(really?),and now it won't have the same bug.(It means,it may find some other questions but not this.)  发表于 2011-8-12 16:11
某只PHP/HTML小白鼠→退屈の间


Cause I knew you were trouble when you walked in
So shame is on me now
I flow me to place i ve never been
till you put me down oh
Now Im lying on the cold hard ground
回复

使用道具 举报

虚構歪曲

梦石
0
星屑
354
在线时间
1196 小时
注册时间
2010-12-18
回帖
3842

贵宾

发表于 2011-8-12 16:09:13 | 显示全部楼层
退屈£无聊 发表于 2011-8-12 16:00
好吧。

super(args) <=> super(*args)
pass a array <=> pass each item

点评

SOKA- -  发表于 2011-8-12 16:12
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部