rendered paste bodyclass Sprite_Animated < RPG::Sprite
attr_accessor :max_poses
attr_accessor :max_frames
attr_reader :pose
attr_reader :frame
def initialize(poses = 1, frames = 1, viewport = nil)
super(viewport)
@max_poses = poses
@max_frames = frames
@pose = 0
@frame = 0
end
def bitmap=(bitmap)
super(bitmap)
@frame_width = bitmap.width / @max_frames
@frame_height = bitmap.height / @max_poses
end
def set_pose(pose)
old_pose = @pose
@pose = pose unless pose > @max_poses
@frame = 0 if old_pose != @pose
update_oxoy
end
def set_frame(frame)
@frame = frame unless frame > @max_frames
update_oxoy
end
def update_oxoy
#self.ox = @frame * @frame_width
#self.oy = @pose * @frame_height
self.src_rect.set(@frame * @frame_width, @pose * @frame_height,
@frame_width, @frame_height)
end
def update
super
animate_frames if @max_frames > 1
update_oxoy
end
def animate_frames
@frame += 1
@frame = 0 if @frame > @max_frames
end
end