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

Project1

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

泛用型地图即时信息显示

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
65
在线时间
433 小时
注册时间
2007-5-1
帖子
993
跳转到指定楼层
1
发表于 2009-2-16 01:35:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
MS已经有很多人写过即时信息显示了,所以呢……我又写了一个。
(喂喂,所以个头啊,根本不符合逻辑关系……)

之所以叫泛用型,是因为的确比较很泛用……(喂喂,这不跟没说一样么,而且什么叫“的确比较很”)

那么,下面就来看看有什么功能:
1.信息字体颜色可控。
2.信息显示位置(居中,左对齐,右对齐)可控。
3.信息消失条件(自动,按键,不消失)可控。
4.信息字体大小可控。
5.信息显示行数可控。
6.可内嵌变量的值。
7.信息淡出消失。
8.信息超过最大行数时向上滚动。

这么说……还真是没有什么特别的功能,咳咳,那么,来看看有什么用法。

1.显示物品得失提示及其他


当然,这个是要手动设置,不是自动的……(什么当然!这不是【显示文章】就能做到的事情么!)。咳咳,我们来看下一个……

2.任务提示


道具设置公共事件,然后调用即时信息显示,配合信息按键消失,哇卡卡,多完美的任务提示~(完美个啥!还不是【显示文章】就能做的事,还不是难以做出多条支线的任务提示。)顺便说下,这里就是居中显示了。

3.地图上显示变量


看吧!通过内嵌表达式把变量的值嵌入字符串中,再设置信息不消失,把语句放进并行事件里让它随时更新,这不就是完美的地图显示变量了么!(嗯?那就是传说中的自设信息颜色呀?效果真差……)

4.滚动字幕


还在用图片显示字幕吗?还是用那些复杂得不知道如何操作而且只能显示同一段话的字幕脚本?通过等待和显示信息的结合,就可以做出从下到上滚到的字幕了,虽然滚动效果强差人意……(强也不能差人意!分明就是一行行地弹出来!这也叫滚动?)

5.其它
几乎是一切皆有可能。使用【泛用型地图即时信息显示】做什么,一切就看您的了。
(嗯……这句话好熟,好像在哪里听过……呃!这不是F1脚本入门的结束语么!)


   使用方法:

     脚本插入Main前,事件脚本或其他可以执行脚本的地方写:

     $game_information.push("我是RM爱好者")     => 默认颜色字体输出信息   
     $game_information.push("我是RM爱好者",1)   => 1号颜色字体输出信息

     $game_information.push("HP: #{game_variables[1]}")
                                                => 输出(HP: 1号变量的值)
     $game_information.clear                    => 立刻清除所有信息

  1. #==============================================================================
  2. # ■ Window_Information —— by 水镜风生
  3. #------------------------------------------------------------------------------
  4. #  地图上显示即时信息的窗口。
  5. #
  6. #   使用方法:
  7. #     $game_information.push("我是RM爱好者")     => 默认颜色字体输出信息   
  8. #     $game_information.push("我是RM爱好者",1)   => 1号颜色字体输出信息
  9. #
  10. #     $game_information.push("HP: #{game_variables[1]}")
  11. #                                                => 输出(HP: 1号变量的值)
  12. #
  13. #     $game_information.clear                    => 立刻清除所有信息
  14. #
  15. #=============================================================================
  16. class Window_Information < Window_Base
  17.   #--------------------------------------------------------------------------
  18.   # ● 初始化
  19.   #--------------------------------------------------------------------------  
  20.   def initialize(x, y, width, height)
  21.    
  22.     ##################  ↓以下可根据个人情况修改  ##################
  23.    
  24.     super(x, y, width, height)            # 要改窗口位置和大小可以在这里改
  25.     @wlh = 16                             # 行高
  26.     @line_max = 5                         # 最大行数
  27.     @font_size = 14                       # 字体大小
  28.     @align = 1                            # 信息位置,0左对齐,1居中,2右对齐
  29.     @disappear_condition = 0              # <_消失条件,0自动消失,1不消失,
  30.                                           #   2按键消失,键位可在第77行改_>
  31.     self.opacity = 0                      # 窗口的不透明度,等于0时隐藏
  32.    
  33.     ##################  ↑以上可根据个人情况修改  ##################
  34.    
  35.     @queue = []                           # 信息队列
  36.     @disappear_count = 0                  # 消失时间
  37.     @disappear_status = 0                 # 消失度,信息淡出用
  38.     @disappearing = false                 # 消失标志,信息淡出用
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 刷新
  42.   #--------------------------------------------------------------------------
  43.   def refresh
  44.     line_max = @queue.size
  45.     self.contents.font.size = @font_size
  46.     if line_max >= @line_max            # 如果信息已满
  47.       self.contents.clear
  48.       for i in 0...(line_max - 1)       # 重绘旧有信息
  49.         str = @queue[i].dup
  50.         color = str.slice!(-1, 1)       # 获取颜色编号并将其从信息字符串中删除
  51.         self.contents.font.color = text_color(color.to_i)
  52.         self.contents.draw_text(0, @wlh * i, self.width, @wlh, str, @align)
  53.       end
  54.     end   
  55.     # 描绘新信息
  56.     str = @queue[-1].dup                # 复制队列最后的元素
  57.     color = str.slice!(-1, 1)         
  58.     self.contents.font.color = text_color(color.to_i)
  59.     self.contents.draw_text(0, @wlh * (@queue.size - 1), self.width, @wlh, str, @align)
  60.     @disappear_count = 0                # 消失计时归零
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ● 更新
  64.   #--------------------------------------------------------------------------  
  65.   def update
  66.     super
  67.     if @disappearing                    # 正在消失的话,执行淡出然后返回
  68.       disappear
  69.       return
  70.     end
  71.     # 自动消失的处理
  72.     @disappear_count += 1 unless @queue.empty? or @disappear_condition != 0
  73.     if @disappear_count >= 180         
  74.       @disappearing = true
  75.     end
  76.     # 按键消失的处理
  77.     if Input.trigger?(Input::C)         
  78.       if @disappear_condition == 2
  79.         @disappearing = true
  80.       end
  81.     end
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● 消失(淡出哦~)
  85.   #--------------------------------------------------------------------------  
  86.   def disappear
  87.     @disappear_status += 5
  88.     return unless @disappear_status %20 == 0
  89.     self.contents.clear
  90.     line_max = @queue.size
  91.     for i in 0...line_max      
  92.       str = @queue[i].dup
  93.       color = str.slice!(-1, 1)
  94.       self.contents.font.color = text_color(color.to_i)
  95.       self.contents.font.color.alpha = (255 - @disappear_status)
  96.       self.contents.draw_text(0, @wlh * i, self.width, @wlh, str, @align)
  97.     end
  98.     if self.contents.font.color.alpha <= 10
  99.       @queue.clear
  100.       @disappear_count = 0
  101.       @disappear_status = 0
  102.       @disappearing = false
  103.     end
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 清除(立刻清除内容,不淡出)
  107.   #--------------------------------------------------------------------------
  108.   def clear
  109.     @queue.clear
  110.     @disappear_count = 0
  111.     @disappear_status = 0
  112.     @disappearing = false
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● 插入信息
  116.   #--------------------------------------------------------------------------   
  117.   def push(str, color = 0)
  118.     @queue.shift if @queue.size >= @line_max
  119.     str = str + color.to_s          # 将颜色编号转换成字符插入信息字符串
  120.     @queue.push(str)
  121.     refresh
  122.   end
  123. end


  124. #==============================================================================
  125. # ■ Scene_Map
  126. #------------------------------------------------------------------------------
  127. #  处理地图画面的类。
  128. #==============================================================================
  129. class Scene_Map < Scene_Base
  130.   #--------------------------------------------------------------------------
  131.   # ● 开始处理
  132.   #--------------------------------------------------------------------------  
  133.   alias start2 start
  134.   def start
  135.     start2
  136.     $game_information = Window_Information.new(0, 316, 544, 100)
  137.   end
  138.   #--------------------------------------------------------------------------
  139.   # ● 更新
  140.   #--------------------------------------------------------------------------
  141.   alias update2 update
  142.   def update
  143.     update2
  144.     $game_information.update
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   # ● 结束处理
  148.   #--------------------------------------------------------------------------  
  149.   alias terminate2 terminate
  150.   def terminate
  151.     $game_information.dispose
  152.     terminate2
  153.   end
  154. end

复制代码


嗯,不能浪费签名了,打广告。本人的悲剧作品:
坑化游戏《龙之影》      R剧《星空》     小游戏《剑与拳头》
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
114 小时
注册时间
2008-10-29
帖子
515

开拓者

2
发表于 2009-2-16 01:41:50 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2007-5-28
帖子
364
3
发表于 2009-2-16 01:45:44 | 只看该作者
的确很泛用……
话说那个叫弹出字幕……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
433 小时
注册时间
2007-5-1
帖子
993
4
 楼主| 发表于 2009-2-16 01:53:18 | 只看该作者
以下引用小柯于2009-2-15 17:45:44的发言:

的确很泛用……
话说那个叫弹出字幕……


如果是用普通显示功能的话,的确是弹出字幕,但如果能控制窗口位置的话,的确能做出滚动字幕,如:

并行事件,脚本 $game_information.y -= 5,这样就真的滚动了……

嗯,不能浪费签名了,打广告。本人的悲剧作品:
坑化游戏《龙之影》      R剧《星空》     小游戏《剑与拳头》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
75
在线时间
12 小时
注册时间
2007-3-15
帖子
102
5
发表于 2009-2-16 02:11:20 | 只看该作者
以下引用yuxuan于2009-2-15 17:41:50的发言:

蛮有趣的,支持下~
===========分割线==========
寻求VX RTP人物倒地图...囧TZ


[本贴由作者于 2009-2-15 17:42:11 最后编辑]









非常感谢LZ的分享!{/qiang}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
244 小时
注册时间
2008-1-25
帖子
312
6
发表于 2009-2-16 04:04:47 | 只看该作者
XP的即时消息 保存会出错,这个会么?{/fd}
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

7
发表于 2009-2-17 04:43:03 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2008-10-25
帖子
75
8
发表于 2009-2-17 04:44:57 | 只看该作者
支持一个
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2008-8-13
帖子
112
9
发表于 2009-2-20 00:39:36 | 只看该作者
arpg~arpg~
支持。
Moving,Slowly and Good……
http://hi.baidu.com/1_station_of_kid/blog发布站,有空来玩~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 10:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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