Project1

标题: 继续提问,这次是精灵draw_text的擦写 [打印本页]

作者: saturnfjh    时间: 2014-7-12 11:52
标题: 继续提问,这次是精灵draw_text的擦写
请看下面这一段:

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 更新画面
  3.   #--------------------------------------------------------------------------
  4.   def update
  5.     super
  6.     if @deck_size > 0
  7.       if @prc_appear > 0
  8.         @prc_appear += 1
  9.         if @prc_appear > 122
  10.           @prc_appear = 0
  11.           @sprite_effect_type = :appear
  12.         elsif @prc_appear > 60
  13.           @animation_id = 118 unless animation?
  14.         end
  15.       else
  16.         update_bitmap
  17.       end
  18.       update_position
  19.       setup_new_effect
  20.       setup_new_animation
  21.       update_effect
  22.     else
  23.       self.bitmap = nil
  24.       @effect_type = nil
  25.     end
  26.     draw_left_cards
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ● 更新源位图(Source Bitmap)
  30.   #--------------------------------------------------------------------------
  31.   def update_bitmap
  32.     new_bitmap = Cache.system("back_POP_left")
  33.     if bitmap != new_bitmap
  34.       self.bitmap = new_bitmap
  35.     end
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 描绘剩余卡牌
  39.   #--------------------------------------------------------------------------
  40.   def draw_left_cards
  41.     set_handcards #这里获取@deck_size的最新值
  42.     self.bitmap.draw_text(text_rect, @deck_size, 1) if self.bitmap
  43.   end


这段代码的问题在于:
1. 怎么把之前的draw_text擦掉,以免文字叠加?
2.即便是@deck_size的值改变了(p得出改变后的值),draw_text描绘的依旧是初值?
对于第(2)问,具体描述一下:
这个sprite一共有两个,一个是本地玩家的,一个是对手玩家的,两个sprite用Symbol来区分,例如,两名玩家的初始deck_size都是20,然后其中一个玩家抽了3张牌,
这两个sprite的deck_size应该是20和17才对,但是描绘出来的结果两个都是20.

看不懂= =
作者: 喵呜喵5    时间: 2014-7-12 12:00
self.bitmap.clear




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