Project1

标题: 精灵的draw_text不显示 [打印本页]

作者: saturnfjh    时间: 2014-7-11 10:44
标题: 精灵的draw_text不显示
本帖最后由 saturnfjh 于 2014-7-11 12:04 编辑

用了下面这段代码,里面有一句 draw_text 方法,但是始终不见有文字,精灵和动画的显示一切正常,求指教是什么原因?@owner[code]#encoding:utf-8
#==============================================================================
# ■ Sprite_HeroSkill
#------------------------------------------------------------------------------
#  显示英雄技能的精灵。根据 Game_Battler 类的实例自动变化。
#==============================================================================

class Sprite_HeroSkill < Sprite_Creature
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_accessor :hero_skill
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize(viewport, hero = nil)
    super(viewport)
    @hero_skill = hero.skill
    @owner= hero.owner
    @prc_appear = 1
    @effect_duration = 0
    @animation_id = 0
  end
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    super
    if @hero_skill
      if @prc_appear > 0
        @prc_appear += 1
        if @prc_appear > 120
          @prc_appear = 0
          @sprite_effect_type = :appear
        elsif @prc_appear > 60
          @animation_id = 117 unless animation?
        end
      else
        update_bitmap
        draw_skill_mana
      end
      update_origin
      update_position
      setup_new_effect
      setup_new_animation
      update_effect
    else
      self.bitmap = nil
    end
  end
  #--------------------------------------------------------------------------
  # ● 更新源位图(Source Bitmap)
  #--------------------------------------------------------------------------
  def update_bitmap
    new_bitmap = Cache.minions("#{hero_skill.skill_id}_s")
    if bitmap != new_bitmap
      self.bitmap = new_bitmap
      self.bitmap.font.name = Font.default_name
      self.bitmap.font.size = 30
    end
  end
  #--------------------------------------------------------------------------
  # ● 更新位置
  #--------------------------------------------------------------------------
  def update_position
    self.x = 80
    if @owner== :local
      self.y = 142
    else
      self.y = 360   
    end
    self.z = 12
  end
  #--------------------------------------------------------------------------
  # ● 描绘法力消耗
  #--------------------------------------------------------------------------
  def draw_skill_mana
    # 经过测试,这里是被正常调用的
    self.bitmap.draw_text(self.x, self.y + 16, 220, 32, @hero_skill.mana, 1)
  end
end
作者: taroxd    时间: 2014-7-11 10:54
本帖最后由 taroxd 于 2014-7-11 11:56 编辑

绘制文字的坐标错了。你是在位图上绘制,而不是在画面上绘制。

self.x 改成 0 ,self.y + 16 改为 16 试试看

提一句,别忘了 dispose bitmap

@VIPArcher 结贴




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