package com.lfk.justweengine.drawable.Sprite; import com.lfk.justweengine.anim.BaseAnim; import com.lfk.justweengine.engine.Engine; import java.util.concurrent.ConcurrentHashMap; /** * Created by liufengkai on 16/1/15. */ public class StateSprite extends BaseSprite { private ConcurrentHashMap<StateFinder, BaseAnim> b_state; public StateSprite(Engine engine) { super(engine); initState(); } public StateSprite(Engine engine, int w, int h, FrameType type) { super(engine, w, h, type); initState(); } public StateSprite(Engine engine, int w, int h, int columns) { super(engine, w, h, columns); initState(); } @Override public void animation() { for (StateFinder state : b_state.keySet()) { if (state.isContent(this)) { BaseAnim anim = b_state.get(state); if (anim.animating) { doAnimation(anim); } } } } protected void initState() { b_state = new ConcurrentHashMap<>(); } public void addState(StateFinder finder, BaseAnim anim) { b_state.put(finder, anim); } public void removeState(StateFinder finder) { b_state.remove(finder); } }