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

Project1

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

[已经过期] 如何在战斗时给敌人脚下显示名字

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
71 小时
注册时间
2010-7-12
帖子
57
跳转到指定楼层
1
发表于 2011-6-20 22:25:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
如何在战斗时给敌人脚下显示名字。

Lv2.观梦者

虚構歪曲

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

贵宾

2
发表于 2011-6-21 13:21:00 | 只看该作者
本帖最后由 忧雪の伤 于 2011-6-21 13:23 编辑



  1. module EnemyName
  2.   Edge = true
  3.   Plus = [24, 0]
  4.   String = '[No Display]'
  5.   Font = { :size => 20, :name => '黑体', :color => Color.new(255, 255, 255) }
  6.   class Sprite_EnemyName < Sprite
  7.     attr_accessor(:name)
  8.     attr_accessor(:size)
  9.     attr_accessor(:enemy)
  10.     def initialize(enemy)
  11.       super(nil);  self.z, self.enemy = 9999, enemy
  12.       temp, self.ox, self.oy = Bitmap.new(640, 480), Plus[0], Plus[1]
  13.       self.size, string = [], ['width', 'height']
  14.       temp.font.size, temp.font.name = Font[:size], Font[:name]
  15.       string.each {|item| eval("size.push(temp.text_size(enemy.name).#{item})") }
  16.       self.bitmap = Bitmap.new(self.size[0] + 1, self.size[1] + 1)
  17.       bitmap.font.size, bitmap.font.name = Font[:size], Font[:name]
  18.       ((-1).upto(1) {|x| (-1).upto(1) {|y|  next if x.zero? and y.zero?;  
  19.       bitmap.font.color = Color.new(0, 0, 0); rect = Rect.new(
  20.       bitmap.rect.x + x, bitmap.rect.y + y, bitmap.rect.width,
  21.       bitmap.rect.height);  bitmap.draw_text(rect, enemy.name) } }) if Edge
  22.       bitmap.font.color = Font[:color]
  23.       self.bitmap.draw_text(bitmap.rect, self.enemy.name)
  24.     end
  25.   end
  26. end

  27. class Spriteset_Battle
  28.   include(EnemyName)
  29.   _array = ['initialize', 'update', 'dispose']
  30.   _array.each {|item| alias_method('_' + item, item) }
  31.   attr_accessor(:event_names)
  32.   def initialize
  33.     @enemy_names = []
  34.     $game_troop.enemies.reverse.each {|enemy|
  35.     (@enemy_names.push(Sprite_EnemyName.new(enemy))
  36.     ) unless enemy.name.include?(String) }
  37.     _initialize
  38.   end
  39.   def dispose;  _dispose
  40.     @enemy_names.each {|item| item.dispose }
  41.   end
  42.   def update
  43.     _update
  44.     @enemy_sprites.each {|item1| @enemy_names.each {|item2| (item2.x,
  45.     item2.y, item2.z, item2.visible = item1.x, item1.y, item1.z,
  46.     item1.battler.exist?) if item1.battler.equal?(item2.enemy) } }
  47.   end
  48. end
复制代码


改造过来的- -||。不过其实大部分都不一样了。


这个不具备居中功能。但是多了描边功能。
其实是我懒得算……需要居中再说,其实就是几个字。
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-29 22:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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