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

Project1

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

[已经解决] (2V悬赏)求地图讯息显示

 关闭 [复制链接]

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
686
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

跳转到指定楼层
1
发表于 2011-6-14 10:26:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 冰舞蝶恋 于 2011-6-15 19:03 编辑

为了维护世界的和平,为了= =!噢,为了不浪费VIP,所以决定有满意答案之后再追加好了!

具体要求:
在地图上建立一个窗口,大小……随便好了,反正坐标咱会改- -||【原来你只会改坐标啊!
窗口中显示1行文字,不必换行……
然后有个全局变量,在这里为了解释就暂且称为 $讯息 ,这个变量是可以随时更正的- -【废话!变量不能变还叫变量么!!
当这个变量为一段文本的时候,窗口中显示这段文字,然后等待固定的帧数(最好是60或者120。。),然后消失;
如果变量是一个数组的时候,如,["啊!","噢!","呀!"],就先显示出“啊!”,等待时间,然后“啊”消失,显示“噢!”然后再等待,消失……以此类推。
注意:这些必须都是并行进行的,不影响人物的操作,假设正在显示“噢!”还没消失,那么当转换到其他界面之后再转换回来,继续从“噢!”开始显示,然后是“呀!”。

嗯,谢谢了,因为这个并行咱怎么也搞不出来- -【脚本盲的杯具啊啊!
用wait总是整个界面都停止了……唉!

多谢各位大神~
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群

Lv4.逐梦者

醉啸 长风万里

梦石
0
星屑
6197
在线时间
6595 小时
注册时间
2007-12-16
帖子
4501

贵宾

2
发表于 2011-6-14 10:43:28 | 只看该作者

点评

学到了,谢谢你  发表于 2011-6-14 18:50

还在龟速填坑中
回复

使用道具 举报

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
686
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

3
 楼主| 发表于 2011-6-14 15:06:25 | 只看该作者
仲秋启明 发表于 2011-6-14 10:43
http://rpg.blue/thread-158856-1-1.html

可以吗?

呃,谢谢仲秋前辈,不过有点麻烦哎……
咱想要的就是,变量一改动(就算变量改动成和之前一样的也没关系!)就自动显示,如果是数组就依次显示,消失……而那些背景颜色,坐标之类的是在脚本库里改的…………呃,还是谢谢前辈了
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1071 小时
注册时间
2011-5-12
帖子
2317

贵宾

4
发表于 2011-6-14 18:40:08 | 只看该作者
本帖最后由 月夜神音 于 2011-6-14 18:44 编辑

关于变量一旦改动就自动显示这些可以去Game_Interpreter里的def command_122修改,
(但在事件中如果用脚本来更改变量的话就没反应了…)
至于自动消失可以在update时增加临时变量,
比如:@v += 1,再加分歧,if @v == (等待的帧数),
脚本大概是这样写:
  1.   def update
  2.     #在这里调用update时的事情吧~
  3.     @v += 1
  4.     if @v == 50#帧数
  5.       #这里可以执行消失时的语句
  6.     end
  7.   end
复制代码
半桶水的脚本,不一定行得通的说…………= =|||
找我请找芙蕾娅
顺带一提,完全看得懂我头像请捡起你自己的节操哟(自重
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
帖子
590
5
发表于 2011-6-14 20:33:48 | 只看该作者
你看看可不可以
  1. class Scene_Map < Scene_Base
  2.   alias old_start start
  3.   def start
  4.     old_start
  5.     $msg.z = 10000
  6.   end
  7.   alias old_update update
  8.   def update
  9.     old_update
  10.     $msg.update
  11.   end
  12.   alias old_terminate terminate
  13.   def terminate
  14.     old_terminate
  15.     $msg.z = -1
  16.   end
  17. end
  18. class Scene_Title < Scene_Base
  19.   alias old_start start
  20.   def start
  21.     old_start
  22.     $msg = Message_Map.new
  23.   end
  24. end

  25. class Message_Map < Sprite
  26.   def initialize
  27.     super
  28.     self.bitmap = Bitmap.new(100,24)#显示区域大小
  29.     self.x = 0 #显示坐标
  30.     self.y = 0 #显示坐标
  31.     @anime = 0
  32.     @duration = 0
  33.   end
  34.   def start
  35.     @message = $讯息
  36.     case $讯息
  37.     when Array
  38.       @anime = 1
  39.       refresh_anime
  40.     else
  41.       @anime = 0
  42.       refresh
  43.     end
  44.     $讯息 = nil
  45.   end
  46.   def refresh
  47.     self.bitmap.clear
  48.     self.bitmap.draw_text(0, 0, 100, 24, @message.to_s, 1)
  49.     @duration = 60 #显示时间
  50.   end
  51.   def refresh_anime
  52.     self.bitmap.clear
  53.     self.bitmap.draw_text(0, 0, 100, 24, @message[@anime-1].to_s, 1)
  54.     @duration = 30 #数组显示间隔
  55.   end
  56.   def update
  57.     if @duration > 0 then
  58.       @duration -= 1
  59.       if @duration == 0
  60.         if @anime > 0
  61.           @anime += 1
  62.           if @anime > @message.size
  63.             self.bitmap.clear
  64.           else
  65.             refresh_anime
  66.           end
  67.         else
  68.           self.bitmap.clear
  69.         end
  70.       end
  71.     end
  72.     start if $讯息 != nil
  73.   end
  74. end
复制代码

点评

判定咱会,就是描绘变色之类的文字就完全不会……嗯,谢谢前辈,不知道可不可以再麻烦下呢  发表于 2011-6-14 21:00
太感谢了……是这样的……咱再贪心一下下,希望能加入判别如对话框的“\c[]”,“\v[]”,“\n[]”等功能……  发表于 2011-6-14 21:00
回复

使用道具 举报

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
686
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

6
 楼主| 发表于 2011-6-14 20:55:20 | 只看该作者
wbsy8241 发表于 2011-6-14 20:33
你看看可不可以

多谢!我看看!~
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
帖子
590
7
发表于 2011-6-14 21:28:32 | 只看该作者
只加了 /c[]  /v[]  /n[]   "\"是反的正的会出问题 复制了MESSAGE里的= =

好象还不能 中右对齐
  1. class Scene_Map < Scene_Base
  2.   alias old_start start
  3.   def start
  4.     old_start
  5.     $msg.z = 10000
  6.   end
  7.   alias old_update update
  8.   def update
  9.     old_update
  10.     $msg.update
  11.   end
  12.   alias old_terminate terminate
  13.   def terminate
  14.     old_terminate
  15.     $msg.z = -1
  16.   end
  17. end
  18. class Scene_Title < Scene_Base
  19.   alias old_start start
  20.   def start
  21.     old_start
  22.     $msg = Message_Map.new
  23.   end
  24. end

  25. class Message_Map < Window_Base
  26.   def initialize
  27.     super(0,0,200,65)#显示区域大小
  28.     self.contents = Bitmap.new(width - 32, height - 32)
  29.     self.opacity = 0
  30.     self.x = 0 #显示坐标
  31.     self.y = 0 #显示坐标
  32.     @anime = 0
  33.     @duration = 0
  34.   end
  35.   def start
  36.     @message = $讯息
  37.     case $讯息
  38.     when Array
  39.       @anime = 1
  40.       refresh_anime
  41.     else
  42.       @anime = 0
  43.       refresh
  44.     end
  45.     $讯息 = nil
  46.   end
  47.   def draw_message(msg)
  48.     self.contents.clear
  49.     msg.gsub!(/\/V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
  50.     msg.gsub!(/\/N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
  51.     msg.gsub!(/\/C\[([0-9]+)\]/i) { "\x01[#{$1}]" }
  52.     x = 0
  53.     loop do
  54.       c = msg.slice!(/./m)            # 获取一个文字
  55.       case c
  56.       when nil                          # 无法获取文字时
  57.         break
  58.       when "\x01"                       # \C[n](文字变色)
  59.         msg.sub!(/\[([0-9]+)\]/, "")
  60.         self.contents.font.color = text_color($1.to_i)
  61.         next
  62.       else                              # 一般文字
  63.         contents.draw_text(x, 0, 40, WLH, c)
  64.         c_width = contents.text_size(c).width
  65.         x += c_width
  66.       end
  67.     end
  68.   end
  69.   def refresh
  70.     draw_message(@message.to_s)
  71.     @duration = 60 #显示时间
  72.   end
  73.   def refresh_anime
  74.     draw_message(@message[@anime-1].to_s)
  75.     @duration = 30 #数组显示间隔
  76.   end
  77.   def update
  78.     if @duration > 0 then
  79.       @duration -= 1
  80.       if @duration == 0
  81.         if @anime > 0
  82.           @anime += 1
  83.           if @anime > @message.size
  84.             self.contents.clear
  85.           else
  86.             refresh_anime
  87.           end
  88.         else
  89.           self.contents.clear
  90.         end
  91.       end
  92.     end
  93.     start if $讯息 != nil
  94.   end
  95. end
复制代码
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-11 09:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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