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

Project1

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

[已经解决] 关于NPC头上显示名字如何去除的问题。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
320 小时
注册时间
2011-6-23
帖子
260
跳转到指定楼层
1
发表于 2012-1-23 16:57:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 liuziyuan201019 于 2012-1-23 16:59 编辑

从网上看到一个NPC显名脚本,即如下:
  1. module EventName
  2.   Plus = [0, 20]
  3.   String = '[No Display]'
  4.   Font = [15, '黑体']
  5.   class Sprite_EventName < Sprite
  6.     attr_accessor(:name)
  7.     attr_accessor(:size)
  8.     attr_accessor(:event)
  9.     def initialize(event)
  10.       super(nil);  self.z, self.event, temp = 1, event, Bitmap.new(640, 480)
  11.       self.size, string = [], ['width', 'height']
  12.       temp.font.size, temp.font.name = Font
  13.       string.each {|item| eval("size.push(temp.text_size(self.event.name).#{item})") }
  14.       self.bitmap = Bitmap.new(self.size[0] + 1, self.size[1] + 1)
  15.       self.bitmap.font.size, self.bitmap.font.name = Font
  16.       self.bitmap.draw_text(bitmap.rect, self.event.name)
  17.     end
  18.   end
  19. end

  20. class Game_Event
  21.   define_method(:name) { eval('return @event.name') } unless method_defined?(:name)
  22. end

  23. class Spriteset_Map
  24.   include(EventName)
  25.   _array = ['initialize', 'update', 'dispose']
  26.   _array.each {|item| alias_method('_' + item, item) unless $@ }
  27.   attr_accessor(:event_names)
  28.   def initialize
  29.     @event_names = []
  30.     $game_map.events.each_value {|item| @event_names.push(
  31.     Sprite_EventName.new(item)) unless item.name.include?(String) }
  32.     _initialize;  
  33.     @character_sprites.each {|item1| @event_names.each {|item2|
  34.     bitmap = item2.bitmap;  (item2.ox = bitmap.width / 2 + Plus[0];
  35.     item2.oy = (item1.bitmap.height + bitmap.height) / 4 + Plus[1]
  36.     ) if item2.event.equal?(item1.character) } }
  37.   end
  38.   def dispose;  _dispose
  39.     @event_names.each {|item| item.dispose }
  40.   end
  41.   def update;  _update
  42.     $game_map.events.each_value {|event| @event_names.each {|sprite| sprite.x,
  43.     sprite.y = event.screen_x, event.screen_y if event.equal?(sprite.event) } }
  44.   end
  45. end
复制代码
然后,发现只有这个脚本与我的游戏系统不冲突……(我的游戏简直创意无穷……啥脚本都不能用……全冲突……)
之后,开始制作游戏, 发现:
当我亲爱的NPC因为事件需要消失不见时,
名字依然显示……
作为一个年龄大技术低能力差的人,
这种问题还真是解决不了……
无奈之下上网求助……
大家谁能够告诉我一个办法,
能够在事件需要没有的时候把名字也拉进地狱去?

Lv2.观梦者

虚構歪曲

梦石
0
星屑
364
在线时间
1198 小时
注册时间
2010-12-18
帖子
3928

贵宾

2
发表于 2012-1-24 14:15:44 | 只看该作者
http://rpg.blue/thread-217619-1-3.html
谁再提练手我就剁手。

点评

那个啥……忘了加分……谢了啊,不过我知道向您这样的人不用经验的……  发表于 2012-1-30 11:40
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 08:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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