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

Project1

 找回密码
 注册会员
搜索

可不可以菜单内新建一个显示少量文字的窗口?

查看数: 2528 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-10-12 12:40

正文摘要:

本帖最后由 诺亚之城 于 2013-10-12 12:44 编辑

回复

芯☆淡茹水 发表于 2013-10-12 18:41:50
本帖最后由 芯☆淡茹水 于 2013-10-15 19:30 编辑

是不是这效果:
添加了手动换行和改颜色。如果不需手动换行,脚本会根据一行字限制的宽度或窗口的宽度自动换行。




范例:

Project1.rar (193.16 KB, 下载次数: 37)

范例里有一全局变量:$game_party.text   (方便储存)
要更改显示的文字时,只需要在 事件 -->  脚本里 , 写上:$game_party.text =  "显示的文字。"
无需换行,只需计算那么大的窗口能显示多少字(脚本里有字体大小设置)

最后PS一下:该范例可用于 物品详细信息介绍窗口 和 特技详细信息介绍窗口 的物品/特技的说明文字。

详见范例 --> 事件

点评

再问一句,能否让显示的文字支持保存呢?保存读取存档就会重新一片空白。  发表于 2013-10-13 15:34
-.-! ~~~~~  发表于 2013-10-12 18:57
知道了,是和这个脚本http://bbs.66rpg.com/thread-330587-1-1.html放到一起就会卡,不过既然能自动换行就先去掉另一个脚本好啦。  发表于 2013-10-12 18:54
对了,使用后菜单会很卡,帧数在6~7帧之间,如果能优化下就好了。  发表于 2013-10-12 18:50
非常感谢您为我制作的脚本。  发表于 2013-10-12 18:44

评分

参与人数 3星屑 +150 收起 理由
我爱吴悦淇 + 30
诺亚之城 + 45 塞糖
myownroc + 75 塞糖

查看全部评分

chd114 发表于 2013-10-12 17:00:33
  1. class Bitmap
  2.   alias draw_text2 draw_text
  3.   def draw_text(*args)
  4.     case  args.size
  5.     when 2
  6.       rect = args[0]
  7.       text = args[1].split("\n")
  8.       auto = 0
  9.     when 3
  10.       rect = args[0]
  11.       text = args[1].split("\n")
  12.       auto = args[2]
  13.     when 5
  14.       rect = Rect.new(*(args[0,4]))
  15.       text = args[4].split("\n")
  16.       auto = 0
  17.     when 6
  18.       rect = Rect.new(*(args[0,4]))
  19.       text = args[4].split("\n")
  20.       auto = args[5]
  21.     else
  22.       raise ArgumentError,"错误的参数个数(#{args.size} to 2,3,5,6)."
  23.     end
  24.     wmax = [text.map{|t| self.text_size(t).width}.max,rect.width].min
  25.     h = self.text_size(text[0]).height
  26.     hmax = [h*text.size,rect.height].min
  27.     bmp = Bitmap.new(wmax,hmax)
  28.     bmp.font = self.font.clone
  29.     text.each_with_index{|t,i|
  30.       bmp.draw_text2(0,i*h,wmax,h,t,auto%3)
  31.     }
  32.     y = rect.y+(rect.height-bmp.height)/2
  33.     case auto%3
  34.     when 0
  35.       x = rect.x
  36.     when 1
  37.       x = rect.x+(rect.width-bmp.width)/2
  38.     when 2
  39.       x = rect.x+rect.width-bmp.width
  40.     end
  41.     self.blt(x,y,bmp,bmp.rect)
  42.     bmp.dispose
  43.     self
  44.   end
  45. end
复制代码
补充说明···你需要在工程里再放一个这个···(来自http://rpg.blue/thread-330587-1-1.html

点评

原来如此,换行也是需要一堆额外代码的啊。  发表于 2013-10-12 17:03

评分

参与人数 1星屑 +90 收起 理由
︶ㄣ牛排ぶ + 90 认可答案

查看全部评分

chd114 发表于 2013-10-12 15:56:19
诺亚之城 发表于 2013-10-12 13:06
弄成这个样子了,不会换行也不会在事件脚本内改它的文字。、

改就是这么改法···换行的话在文字内容里面放\n就是换行

点评

直接放不行。  发表于 2013-10-12 16:41
诺亚之城 发表于 2013-10-12 13:40:01
本帖最后由 诺亚之城 于 2013-10-12 15:24 编辑
myownroc 发表于 2013-10-12 13:35
在游戏一开始时运行一个脚本然后在事件中调用脚本改变内容
refresh脚本中改为这个至于换行,暂时还没想好( ...


全局变量么……是不是还要加上$啊。
换行好难的样子……

看来只能建立好几个不同的变量……每个变量一行了。

点评

貌似全大写也行,知道是全局变量说明楼主已经懂了。另外,xp事件调用脚本貌似不能换行(就是宽度被限定了)。  发表于 2013-10-12 13:43
myownroc 发表于 2013-10-12 13:35:54
在游戏一开始时运行一个脚本
  1. WINDOW_TEXT=""
复制代码
然后在事件中调用脚本
  1. WINDOW_TEXT="xxxxxxx"
复制代码
改变内容
refresh脚本中改为这个
  1. self.contents.draw_text(x,y,width,height,WINDOW_TEXT)
复制代码
至于换行,暂时还没想好(手机发帖怎么想得出来…)。
kuerlulu 发表于 2013-10-12 12:48:33
新做一个窗口然后把[游戏时间][步数]相关的内容换成那个窗口就行了,,这个脚本很容易写,而且教程也很多。。建议去技术区看看相关的改菜单 排版 新手教程
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-12-4 04:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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