public void defineSnapperViews() { if (logic.level == null) return; SnapperView view; int i; int j; int state; synchronized (activeSnappers) { for (i = 0; i < activeSnappers.size; i++) removeActor(activeSnappers.get(i)); snapperViewPool.free(activeSnappers); activeSnappers.clear(); int w = logic.width; int h = logic.height; for (i = 0; i < Snappers.WIDTH; i++) for (j = 0; j < Snappers.HEIGHT; j++) if ((state = logic.snappers.getSnapper(i, j)) > 0) { view = snapperViewPool.obtain(); view.set(i, j, state); view.setRandomStart(0, 0, w, h, SNAPPER_WARM_TIME); activeSnappers.add(view); addActor(view); view.setListener(snapperAnimationListener); view.setAnimFn(snapperAnimFn); } } }
@Override public void snapperHit(int i, int j) { SnapperView view = snappers.find(i, j); view.touch(); /*if (view.state <1){ snappers.free(view); bangs.add(i, j); }*/ }
@Override public void onAnimationEnd(MovableActor item) { float time = (float) Math.random() * 2f + 1f; ((SnapperView) item).shiftRandom(time); }