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

Project1

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

[已经解决] 显示NPC名字的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
107 小时
注册时间
2010-10-10
帖子
228
跳转到指定楼层
1
发表于 2010-10-27 11:14:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 梦到叶子了 于 2010-10-27 19:49 编辑

我显示图片,但是NPC还要主角的名字 压在图片上面,怎么放下面 ,不让他压着图片?
  1. #==============================================================================

  2. # 显示NPC名

  3. #------------------------------------------------------------------------------

  4. # 跟原版一样,EV开头的不显示,逗号后加颜色代码

  5. # 修改某事件名的方法:

  6. #   set_npc_name("新名", 事件ID, 地图ID, 是否永久生效)

  7. #     事件ID 为空时表示当前事件

  8. #     地图ID 为空时表示当前地图

  9. #     是否永久生效 默认永久,否则只允许修改当前地图

  10. #==============================================================================

  11. # 参数设定

  12. #==============================================================================

  13. module NPC

  14.   NAME_FONT = "黑体"

  15.   NAME_SIZE = 13

  16.   NAME_SHADOW = true#false

  17.   NAME_WIDTH = 120

  18. end

  19. #==============================================================================

  20. # 重定事件名

  21. #==============================================================================

  22. def set_npc_name(name, event_id = nil, map_id = nil, forever = true)

  23.   # 处理事件 ID

  24.   if event_id == nil

  25.     event_id = $game_map.interpreter.event_id

  26.   end

  27.   # 处理地图 ID

  28.   if map_id == nil

  29.     $game_map.events[event_id].name = name

  30.     map_id = $game_map.map_id

  31.   else

  32.     map_id = map_id

  33.   end

  34.   return unless forever

  35.   data = load_data(sprintf("Data/Map%03d.rvdata", map_id))

  36.   # 更改名

  37.   data.events[event_id].name = name

  38.   save_data(data, sprintf("Data/Map%03d.rvdata", map_id))

  39. end

  40. #==============================================================================

  41. # ■ Game_Character

  42. #==============================================================================

  43. class Game_Character

  44.   #--------------------------------------------------------------------------

  45.   # ◎ 定义实例变量

  46.   #--------------------------------------------------------------------------

  47.   attr_accessor :name                  # 名称

  48.   #--------------------------------------------------------------------------

  49.   # ◎ 初始化对象

  50.   #--------------------------------------------------------------------------

  51.   alias character_ini initialize

  52.   def initialize

  53.     character_ini

  54.     @name = ""

  55.   end

  56. end

  57. #==============================================================================

  58. # ■ Game_Event

  59. #==============================================================================

  60. class Game_Event < Game_Character

  61.   #--------------------------------------------------------------------------

  62.   # ◎ 定义实例变量

  63.   #--------------------------------------------------------------------------

  64.   attr_reader   :erased

  65.   #--------------------------------------------------------------------------

  66.   # ◎ 初始化对像

  67.   #     map_id : 地图 ID

  68.   #     event  : 事件 (RPG::Event)

  69.   #--------------------------------------------------------------------------

  70.   alias event_ini initialize

  71.   def initialize(map_id, event)

  72.     event_ini(map_id, event)

  73.     @name = @event.name

  74.   end

  75. end

  76. #==============================================================================

  77. # ■ Game_Player

  78. #==============================================================================

  79. class Game_Player < Game_Character

  80.   #--------------------------------------------------------------------------

  81.   # ◎ 获取角色名

  82.   #--------------------------------------------------------------------------

  83.   def name

  84.     return $game_party.members[0].name

  85.   end

  86. end

  87. #==============================================================================

  88. # ■ Game_Interpreter

  89. #==============================================================================

  90. class Game_Interpreter

  91.   #--------------------------------------------------------------------------

  92.   # ◎ 定义实例变量

  93.   #--------------------------------------------------------------------------

  94.   attr_reader   :event_id

  95. end

  96. #==============================================================================

  97. # ■ Sprite_Character

  98. #==============================================================================

  99. class Sprite_Character < Sprite_Base

  100.   #--------------------------------------------------------------------------

  101.   # ◎ 初始化对象

  102.   #     viewport  : 视区

  103.   #     character : 角色 (Game_Character)

  104.   #--------------------------------------------------------------------------

  105.   def initialize(viewport, character = nil)

  106.     super(viewport)

  107.     @character = character

  108.     @balloon_duration = 0

  109.     ## 名称

  110.     @name = @character.name

  111.     set_name_sprite

  112.     update

  113.   end

  114.   #--------------------------------------------------------------------------

  115.   # ◎ 释放

  116.   #--------------------------------------------------------------------------

  117.   def dispose

  118.     dispose_balloon

  119.     super

  120.     ##

  121.     return if @name_sprite == nil

  122.     @name_sprite.bitmap.dispose

  123.     @name_sprite.dispose

  124.   end

  125.   #--------------------------------------------------------------------------

  126.   # ● 更新画面

  127.   #--------------------------------------------------------------------------

  128.   def update

  129.     super

  130.     update_bitmap

  131.     self.visible = (not @character.transparent)

  132.     update_src_rect

  133.     self.x = @character.screen_x

  134.     self.y = @character.screen_y

  135.     self.z = @character.screen_z

  136.     self.opacity = @character.opacity

  137.     self.blend_type = @character.blend_type

  138.     self.bush_depth = @character.bush_depth

  139.     update_balloon

  140.     if @character.animation_id != 0

  141.       animation = $data_animations[@character.animation_id]

  142.       start_animation(animation)

  143.       @character.animation_id = 0

  144.     end

  145.     if @character.balloon_id != 0

  146.       @balloon_id = @character.balloon_id

  147.       start_balloon

  148.       @character.balloon_id = 0

  149.     end

  150.     ## 名称可视和跟随

  151.     unless @name_sprite == nil or @name_sprite.disposed?

  152.       if @character.is_a?(Game_Event) and @character.erased

  153.         @name_sprite.visible = false

  154.         return

  155.       else

  156.         @name_sprite.visible = true

  157.       end

  158.       if @character.is_a?(Game_Player) and @character.in_vehicle?

  159.         @name_sprite.visible = false

  160.         return

  161.       else

  162.         @name_sprite.visible = true

  163.       end

  164.       if @name != @character.name

  165.         @name = @character.name

  166.         refresh_name_sprite

  167.       end

  168.       @name_sprite.x = self.x - 80

  169.       @name_sprite.y = self.y - self.height - NPC::NAME_SIZE+2

  170.       @name_sprite.z = self.z+1

  171.     end

  172.   end

  173.   #--------------------------------------------------------------------------

  174.   # ○ 设定 NPC 名称

  175.   #--------------------------------------------------------------------------

  176.   def set_name_sprite

  177.     return if @character.name[0, 2] == "EV"

  178.     return if @character.name == ""

  179.     return if @character.character_name == ""

  180.     return if @character.is_a?(Game_Event) and @character.erased

  181.     @color_board = Window_Base.new(0,0,33,33)

  182.     @color_board.visible = false

  183.     @name_sprite = Sprite.new

  184.     @name_sprite.bitmap = Bitmap.new(NPC::NAME_WIDTH, NPC::NAME_SIZE+2)

  185.     @name_sprite.bitmap.font.name = NPC::NAME_FONT

  186.     @name_sprite.bitmap.font.size = NPC::NAME_SIZE

  187.     @name_sprite.bitmap.font.shadow = NPC::NAME_SHADOW

  188.     refresh_name_sprite

  189.   end

  190.   #--------------------------------------------------------------------------

  191.   # ○ 更新 NPC 名称

  192.   #--------------------------------------------------------------------------

  193.   def refresh_name_sprite

  194.     name,color_index = @name.split(/,/)

  195.     color_index = 0 if color_index == ""

  196.     @name_sprite.bitmap.font.color = @color_board.text_color(color_index.to_i)

  197.     @name_sprite.bitmap.clear

  198.     @name_sprite.bitmap.draw_text(0,0,160,NPC::NAME_SIZE+2,name,1)

  199.   end

  200. end
复制代码

1.jpg (90.16 KB, 下载次数: 11)

1.jpg

Lv2.观梦者

花开堪折直须折

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

贵宾

2
发表于 2010-10-27 17:49:33 | 只看该作者
应该……是调Z坐标吧?小人不才,期待高手。
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复 支持 反对

使用道具 举报

Lv1.梦旅人

超级囧神 无尽的灌水

梦石
0
星屑
144
在线时间
784 小时
注册时间
2010-6-27
帖子
2065
3
发表于 2010-10-27 19:28:26 | 只看该作者
我很好奇,钓鱼的事件可以在另外一个地图上完成,非要在这个地图?
另外的地图只要没有npc名字就可以

点评

已经解决了。多谢你的回答我确实没有想到,不过不要紧了。  发表于 2010-10-27 19:49

评分

参与人数 1星屑 +700 收起 理由
八云紫 + 700 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-5 01:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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