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

Project1

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

[已经解决] 求主角脚下显示名称

[复制链接]

Lv2.观梦者

梦石
0
星屑
255
在线时间
75 小时
注册时间
2014-6-26
帖子
155
跳转到指定楼层
1
发表于 2014-11-3 04:52:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这个应该不用解释了吧
我只见过XP的 不知道VX有木有啊。

Lv2.观梦者

梦石
0
星屑
255
在线时间
75 小时
注册时间
2014-6-26
帖子
155
2
 楼主| 发表于 2014-11-3 04:55:45 | 只看该作者
@怪蜀黍  说好的 过来帮我不要钱的。
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

3
发表于 2014-11-3 10:12:36 | 只看该作者
@name @sprite @character
找了一个修改了一下,看能不能用喵~~~
RUBY 代码复制
  1. class Game_Event < Game_Character
  2. #——————————————————————————————————————
  3. # 用来返回名称
  4. #——————————————————————————————————————
  5. def name
  6.    return @event.name
  7. end  
  8. def name=(newname)
  9.    @event.name = newname
  10. end
  11. end
  12. #==============================================================================
  13. # ■ Sprite_Character
  14. #------------------------------------------------------------------------------
  15. #  角色显示用脚本。监视 Game_Character 类的实例、
  16. # 自动变化脚本状态。
  17. #==============================================================================
  18. $flyname = "Vehicle"
  19. class Sprite_Character < Sprite_Base
  20.   #--------------------------------------------------------------------------
  21.   # ● 定量
  22.   #--------------------------------------------------------------------------
  23.   BALLOON_WAIT = 12                  # 表情最后帧的等待时间
  24. #--------------------------------------------------------------------------
  25. # ● 定义实例变量
  26. #--------------------------------------------------------------------------
  27. attr_accessor :character                # 角色
  28. #--------------------------------------------------------------------------
  29. # ● 初始化对像
  30. #     viewport  : 查看端口
  31. #     character : 角色 (Game_Character)
  32. #--------------------------------------------------------------------------
  33. def initialize(viewport, character = nil)
  34.    if character.character_name != $flyname
  35.    name = character.name
  36.    end
  37.    super(viewport)
  38.    @character = character
  39.    @namesprite = Sprite.new
  40.    @namesprite.bitmap = Bitmap.new(160, 48)
  41.    @namesprite.bitmap.font.name = "黑体"
  42.    @namesprite.bitmap.font.size = 16
  43.    @namesprite.bitmap.font.color.set(255, 255, 255)
  44.    @evname = name
  45.    if character.character_name != $flyname
  46.    @evname_split = name.split(/,/)[0]
  47. else
  48.    @evname_split = nil
  49. end
  50. @evname_split = $game_party.members[0].name if character.is_a?(Game_Player)
  51. if character.character_name != $flyname
  52.    if name[0, 2]=="EV" or character.character_name == $flyname
  53.      @evname_split = " "
  54.    end
  55. end
  56. if character.character_name != $flyname
  57.    if name.split(/,/)[1] != nil
  58.      case name.split(/,/)[1]
  59.      when "0"
  60.        @namesprite.bitmap.font.color.set(255, 255, 255)
  61.      when "1"
  62.        @namesprite.bitmap.font.color.set(128, 128, 255)
  63.      when "2"
  64.        @namesprite.bitmap.font.color.set(255, 128, 128)
  65.      when "3"
  66.        @namesprite.bitmap.font.color.set(128, 255, 128)
  67.      when "4"
  68.        @namesprite.bitmap.font.color.set(128, 255, 255)
  69.      when "5"
  70.        @namesprite.bitmap.font.color.set(255, 128, 255)
  71.      when "6"
  72.        @namesprite.bitmap.font.color.set(255, 255, 128)
  73.      when "7"
  74.        @namesprite.bitmap.font.color.set(192, 192, 192)
  75.      else
  76.        @namesprite.bitmap.font.color.set(255, 255, 255)
  77.      end
  78.    end
  79. end
  80.    if @evname_split != "" and @evname_split != nil
  81.      @namesprite.bitmap.draw_text(0, 0, 160, 36, @evname_split, 1)
  82.    end
  83.     @character = character
  84.     @balloon_duration = 0
  85.    update
  86. end
  87.   #--------------------------------------------------------------------------
  88.   # ● 释放
  89.   #--------------------------------------------------------------------------
  90.   def dispose
  91.    if character.character_name != $flyname
  92.    @namesprite.bitmap.dispose
  93.    @namesprite.dispose
  94. end
  95.  
  96.     dispose_balloon
  97.     super
  98.   end
  99. #--------------------------------------------------------------------------
  100. # ● 更新画面
  101. #--------------------------------------------------------------------------
  102. def update
  103.     super
  104.     update_bitmap
  105.     self.visible = (not @character.transparent)
  106.     update_src_rect
  107.     self.x = @character.screen_x
  108.     self.y = @character.screen_y
  109.     self.z = @character.screen_z
  110.     self.opacity = @character.opacity
  111.     self.blend_type = @character.blend_type
  112.     self.bush_depth = @character.bush_depth
  113.     update_balloon
  114.     if @character.animation_id != 0
  115.       animation = $data_animations[@character.animation_id]
  116.       start_animation(animation)
  117.       @character.animation_id = 0
  118.     end
  119.     if @character.balloon_id != 0
  120.       @balloon_id = @character.balloon_id
  121.       start_balloon
  122.       @character.balloon_id = 0
  123.     end
  124.  
  125.     if character.character_name != $flyname
  126.    if @evname != @character.name
  127.      @namesprite.bitmap.clear
  128.      @evname = @character.name
  129.      @evname_split = @character.name.split(/,/)[0]
  130.      if @character.name.split(/,/)[1] != nil
  131.        case @character.name.split(/,/)[1]
  132.        when "0"
  133.          @namesprite.bitmap.font.color.set(255, 255, 255)
  134.        when "1"
  135.          @namesprite.bitmap.font.color.set(128, 128, 255)
  136.        when "2"
  137.          @namesprite.bitmap.font.color.set(255, 128, 128)
  138.        when "3"
  139.          @namesprite.bitmap.font.color.set(128, 255, 128)
  140.        when "4"
  141.          @namesprite.bitmap.font.color.set(128, 255, 255)
  142.        when "5"
  143.          @namesprite.bitmap.font.color.set(255, 128, 255)
  144.        when "6"
  145.          @namesprite.bitmap.font.color.set(255, 255, 128)
  146.        when "7"
  147.          @namesprite.bitmap.font.color.set(192, 192, 192)
  148.        else
  149.          @namesprite.bitmap.font.color.set(255, 255, 255)
  150.        end
  151.      end
  152.      if @evname_split != "" and @evname_split != nil
  153.        @namesprite.bitmap.draw_text(0, 0, 160, 36, @evname_split, 1)
  154.      end
  155.    end
  156.    @namesprite.x = self.x-80
  157.    @namesprite.y = self.y-self.oy-24+48
  158.    #@namesprite.visible = $game_switches[39]
  159.    end
  160. end
  161.   #--------------------------------------------------------------------------
  162.   # ● 获取图块图像的指定图块
  163.   #     tile_id : 图块 ID
  164.   #--------------------------------------------------------------------------
  165.   def tileset_bitmap(tile_id)
  166.     set_number = tile_id / 256
  167.     return Cache.system("TileB") if set_number == 0
  168.     return Cache.system("TileC") if set_number == 1
  169.     return Cache.system("TileD") if set_number == 2
  170.     return Cache.system("TileE") if set_number == 3
  171.     return nil
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # ● 刷新传送的位图数据
  175.   #--------------------------------------------------------------------------
  176.   def update_bitmap
  177.     if @tile_id != @character.tile_id or
  178.        @character_name != @character.character_name or
  179.        @character_index != @character.character_index
  180.       @tile_id = @character.tile_id
  181.       @character_name = @character.character_name
  182.       @character_index = @character.character_index
  183.       if @tile_id > 0
  184.         sx = (@tile_id / 128 % 2 * 8 + @tile_id % 8) * 32;
  185.         sy = @tile_id % 256 / 8 % 16 * 32;
  186.         self.bitmap = tileset_bitmap(@tile_id)
  187.         self.src_rect.set(sx, sy, 32, 32)
  188.         self.ox = 16
  189.         self.oy = 32
  190.       else
  191.         self.bitmap = Cache.character(@character_name)
  192.         sign = @character_name[/^[\!\$]./]
  193.         if sign != nil and sign.include?('$')
  194.           @cw = bitmap.width / 3
  195.           @ch = bitmap.height / 4
  196.         else
  197.           @cw = bitmap.width / 12
  198.           @ch = bitmap.height / 8
  199.         end
  200.         self.ox = @cw / 2
  201.         self.oy = @ch
  202.       end
  203.     end
  204.   end
  205.   #--------------------------------------------------------------------------
  206.   # ● 刷新传送的矩形数据
  207.   #--------------------------------------------------------------------------
  208.   def update_src_rect
  209.     if @tile_id == 0
  210.       index = @character.character_index
  211.       pattern = @character.pattern < 3 ? @character.pattern : 1
  212.       sx = (index % 4 * 3 + pattern) * @cw
  213.       sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
  214.       self.src_rect.set(sx, sy, @cw, @ch)
  215.     end
  216.   end
  217.   #--------------------------------------------------------------------------
  218.   # ● 开始显示表情图标
  219.   #--------------------------------------------------------------------------
  220.   def start_balloon
  221.     dispose_balloon
  222.     @balloon_duration = 8 * 8 + BALLOON_WAIT
  223.     @balloon_sprite = ::Sprite.new(viewport)
  224.     @balloon_sprite.bitmap = Cache.system("Balloon")
  225.     @balloon_sprite.ox = 16
  226.     @balloon_sprite.oy = 32
  227.     update_balloon
  228.   end
  229.   #--------------------------------------------------------------------------
  230.   # ● 刷新表情图标
  231.   #--------------------------------------------------------------------------
  232.   def update_balloon
  233.     if @balloon_duration > 0
  234.       @balloon_duration -= 1
  235.       if @balloon_duration == 0
  236.         dispose_balloon
  237.       else
  238.         @balloon_sprite.x = x
  239.         @balloon_sprite.y = y - height
  240.         @balloon_sprite.z = z + 200
  241.         if @balloon_duration < BALLOON_WAIT
  242.           sx = 7 * 32
  243.         else
  244.           sx = (7 - (@balloon_duration - BALLOON_WAIT) / 8) * 32
  245.         end
  246.         sy = (@balloon_id - 1) * 32
  247.         @balloon_sprite.src_rect.set(sx, sy, 32, 32)
  248.       end
  249.     end
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ● 释放表情图标
  253.   #--------------------------------------------------------------------------
  254.   def dispose_balloon
  255.     if @balloon_sprite != nil
  256.       @balloon_sprite.dispose
  257.       @balloon_sprite = nil
  258.     end
  259.   end
  260. end
  261. class Game_Player < Game_Character
  262. def name
  263.    return ""
  264. end
  265. end

评分

参与人数 1星屑 +100 收起 理由
丿梁丶小柒 + 100 认可答案

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 09:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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