Project1

标题: 求教,要让scene里的某个sprite显示动画要如何写? [打印本页]

作者: 灯笼菜刀王    时间: 2018-2-23 10:51
标题: 求教,要让scene里的某个sprite显示动画要如何写?
本帖最后由 灯笼菜刀王 于 2018-2-23 10:58 编辑

尝试写了个小scene,如下

class Scene_Battle_easy
  def main
    @donghua = 0
    @wait_count = 0
    a = $game_actors[$b_act]
    @actor = RPG::Sprite.new
    @actor.bitmap = RPG::Cache.battler(a.battler_name,a.battler_hue)
    b = $data_enemies[$c_act]
    @battler = Sprite_Battler.new(@viewport2, b)
    @battler.bitmap = RPG::Cache.battler(b.battler_name,b.battler_hue)
  
    Graphics.transition(20)
    #----循环-----------------  
    loop do
     Graphics.update
     @wait_count -= 1 if @wait_count != 0
     Input.update
     update
      if $scene != self
        break
      end
    end
   #---------------------------
    @actor.dispose
    @enemy.dispose
  end
  #--------------------------------------------------------------------------
  def update
    if @donghua != 0
    @enemy.animation($data_animations[29],true)
    @donghua = 0
    else
    @enemy.animation(nil,true) if @wait_count == 0
    end
    if Input.trigger?(Input::B)
      # 战斗结束
      Graphics.freeze
      $scene = Scene_Map.new
    end
    if Input.trigger?(Input::C)
      @donghua = 1
      @wait_count = 40
    end
  end
end

想要的效果是,当按下确定的时候,@actor或者@enemy 会播放一个指定IP的动画。


咱翻烂了F1,尝试了N种方法,不管是Sprite.new,RPG::Sprite.new, Sprite_Battler.new,都不让用Scene_Battle里的 XX.animation_id~~

而这样写的情况是只显示了动画的一帧......  要怎么做才能让它乖乖的播放完一个2秒的动画呢= =......


作者: 芯☆淡茹水    时间: 2018-2-23 11:32
你没有加刷新:

@enemy.update
作者: 灯笼菜刀王    时间: 2018-2-23 11:43
芯☆淡茹水 发表于 2018-2-23 11:32
你没有加刷新:

@enemy.update

问题解决了,非常感谢~~

请问怎么认可答案呢?




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