Project1

标题: 【紧急】 事件显名,在线等答案。。。。。。。。。。。... [打印本页]

作者: ♞丝瓜☣daye    时间: 2014-9-27 12:40
标题: 【紧急】 事件显名,在线等答案。。。。。。。。。。。...
本帖最后由 ♞丝瓜☣daye 于 2014-9-27 14:02 编辑

{:2_277:}前几天我XP弃坑了,刚接触VA,碰壁,
求VA   事件显示名字的脚本
谢谢了

作者: 子弹君    时间: 2014-9-27 14:08
  1. #面向注释有“<ShowText:XXX>”的事件时,画面右下角显示“XXX”
  2. class Sprite_Cue < Sprite
  3.   Padding = 2     # 设置距离屏幕边距
  4.   OnEvent = true
  5.   def setup_bitmap(text = " ")
  6.     return if @text == text
  7.     @text = text
  8.     btmp = Bitmap.new(1, 1)
  9.     rect = btmp.text_size(text)
  10.     btmp.dispose#
  11.     rect.width += 2
  12.     rect.height += 2
  13.     bitmap.dispose if bitmap
  14.     self.bitmap = Bitmap.new(rect.width, rect.height)
  15.     bitmap.draw_text(rect, text)
  16.     self.x = Graphics.width - width / 2 - Padding
  17.     self.y = Graphics.height - Padding
  18.     self.ox = width / 2
  19.     self.oy = OnEvent ? height + 32 : height
  20.   end
  21.   #
  22.   def update
  23.     event = face_event
  24.     if event && text = cue_text(event.list)
  25.       self.visible = true
  26.       setup_bitmap(text)
  27.       pos_to(event.screen_x, event.screen_y) if OnEvent
  28.     else
  29.       self.visible = false
  30.     end
  31.   end
  32.   def pos_to(x, y)
  33.     self.x = x
  34.     self.y = y
  35.   end
  36.   def face_event
  37.     fx = $game_map.round_x_with_direction(player.x, player.direction)
  38.     fy = $game_map.round_y_with_direction(player.y, player.direction)
  39.     return $game_map.events_xy(fx, fy)[0]
  40.   end
  41.   def cue_text(list)
  42.     list.each {|cmd|
  43.       next unless cmd.code == 108 || cmd.code == 408
  44.       return $1 if cmd.parameters[0] =~ /<ShowText.(.+)>/
  45.     };return nil
  46.   end
  47.   #
  48.   def dispose
  49.     bitmap.dispose if bitmap
  50.     super
  51.   end
  52.   #
  53.   def player
  54.     $game_player
  55.   end
  56. end

  57. class Spriteset_Map
  58.   alias_method :create_characters_20130820, :create_characters
  59.   alias_method :update_20130820, :update
  60.   alias_method :dispose_20130820, :dispose
  61.   def create_characters
  62.     create_characters_20130820
  63.     @cue_sprite = Sprite_Cue.new(@viewport2)
  64.   end
  65.   def update
  66.     update_20130820
  67.     @cue_sprite.update
  68.   end
  69.   def dispose
  70.     dispose_20130820
  71.     @cue_sprite.dispose
  72.   end
  73. end
复制代码

作者: 永燃的狂炎    时间: 2014-9-27 14:23
子弹君 发表于 2014-9-27 14:08

使用教程 以及 效果, 无视左下

教程


效果



作者: VIPArcher    时间: 2014-9-27 14:37
........
摔链接




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1