#--------------------------------------------------------------------------
# ● 更新动画模式
#--------------------------------------------------------------------------
def update_pattern
return @pattern_rest_time -= 1 if @pattern_rest_time != 0
return if @max_pattern_w == 1 && @max_pattern_h == 1
@pattern_rest_time = @pattern_time
# 开始播放・取得结束单元位置
if @pattern_kind > 0 # 通常播放中
@pattern_start = 0
@pattern_end = @max_pattern_w - 1
elsif @pattern_kind < 0 # 逆转播放中
@pattern_start = @max_pattern_w - 1
@pattern_end = 0
end
# 结束单程的播放
@pattern_count += 1 if @pattern_w == @pattern_end && @pattern_kind != 0
# 循环处理
case @pattern_type.abs
when 1,3 # 单程
@pattern_kind = 0 if @pattern_count != 0 && @pattern_type == 1
@pattern_kind = 0 if @pattern_count != 0 && @pattern_type == -1
@pattern_kind = 1 if @pattern_count != 0 && @pattern_type == 3
@pattern_kind = -1 if @pattern_count != 0 && @pattern_type == -3
@pattern_w = @pattern_start - @pattern_kind if @pattern_count != 0 && @pattern_type.abs == 3
@pattern_count = 0
when 2,4 # 往返
@pattern_kind = -1 if @pattern_count == 1 && @pattern_type == 2
@pattern_kind = 1 if @pattern_count == 1 && @pattern_type == -2
@pattern_kind = 0 if @pattern_count == 2 && @pattern_type == 2
@pattern_kind = 0 if @pattern_count == 2 && @pattern_type == -2
@pattern_kind = -1 if @pattern_count == 1 && @pattern_type == 4
@pattern_kind = 1 if @pattern_count == 1 && @pattern_type == -4
@pattern_kind = 1 if @pattern_count == 2 && @pattern_type == 4
@pattern_kind = -1 if @pattern_count == 2 && @pattern_type == -4
@pattern_count = 0 if @pattern_count == 2
end
# 更新单元
@pattern_w += 1 * @pattern_kind
@sx = (@graphic_index % 4 * @max_pattern_w + @pattern_w) * @cw
end