Android-головоломка со слайдерами

Я разрабатываю слайдер-головоломку в Android, в которой изображение разбито на маленькие изображения, и нам нужно заказать эти части, чтобы сформировать правильное изображение. Я использовал вид сетки 3x3, который содержит 8 изображений и одно черное пятно. Таким образом, в основном, когда вы касаетесь любой из 8 частей головоломки, в зависимости от того, является ли это допустимым ходом или нет, часть перемещается на пустое место. Все это прекрасно работает, но я хочу придать эффект скольжения. Поэтому, когда вы касаетесь кусочка, он должен скользить в пустое место. Я думаю, мне нужно использовать метод onFling, но я не очень уверен, как это сделать.

Любая помощь приветствуется. Спасибо


person Nisha    schedule 01.11.2012    source источник
comment
Я думаю, вы хотите переместить изображение на пустое место ... верно?   -  person ckpatel    schedule 01.11.2012
comment
да. и на данный момент он движется, но я хочу придать ему эффект скольжения. Скажем, когда вы касаетесь изображения и перетаскиваете его, изображение должно двигаться вместе с пальцем.   -  person Nisha    schedule 01.11.2012
comment
На самом деле я использую слайд, но с задержкой во времени. я опубликую свой код, я думаю, полезный для вас   -  person ckpatel    schedule 01.11.2012
comment
мой код - это слайд-изображение вовремя, поэтому вы меняетесь только вовремя. вы просто вызываете метод анимации при касании   -  person ckpatel    schedule 01.11.2012


Ответы (2)


этот код работает с временной задержкой и слайд-изображением: -

public class SliderActivity extends Activity {

    public int currentimageindex=0;
    Timer timer;
    TimerTask task;
    ImageView slidingimage;

    private int[] IMAGE_IDS = {
            R.drawable.splash0, R.drawable.splash1, R.drawable.splash2,
            R.drawable.splash3
        };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mygame);
        final Handler mHandler = new Handler();

        // Create runnable for posting
        final Runnable mUpdateResults = new Runnable() {
            public void run() {

                AnimateandSlideShow();

            }
        };

        int delay = 1000; // delay for 1 sec.

        int period = 8000; // repeat every 4 sec.

        Timer timer = new Timer();

        timer.scheduleAtFixedRate(new TimerTask() {

        public void run() {

             mHandler.post(mUpdateResults);

        }

        }, delay, period);

    }

    public void onClick(View v) {

        finish();
        android.os.Process.killProcess(android.os.Process.myPid());
      }

    /**
     * Helper method to start the animation on the splash screen
     */
    private void AnimateandSlideShow() {

        slidingimage = (ImageView)findViewById(R.id.ImageView3_Left);
        slidingimage.setImageResource(IMAGE_IDS[currentimageindex%IMAGE_IDS.length]);

        currentimageindex++;

        Animation rotateimage = AnimationUtils.loadAnimation(this, R.anim.custom_anim);

          slidingimage.startAnimation(rotateimage);

    }

}
person ckpatel    schedule 01.11.2012

Вы можете рассмотреть возможность использования игрового движка для этого. Ценность в том, что он обрабатывает анимацию для вас, а анимация плитки будет такой же простой, как одна строка кода.

плитка.MoveTo (новая позиция).

Я рекомендую cocos2d для Android, и вы можете найти подробное руководство по сборке слайдера здесь.

http://denvycom.com/blog/step-by-step-guide-on-how-to-build-your-first-slider-puzzle-game-in-cocos2d-for-android-part-1/

В учебнике также рассказывается о создании головоломки с изображением слайдера здесь. -game-in-cocos2d-for-android-part-3-2/#comment-1313951361" rel="nofollow">http://denvycom.com/blog/step-by-step-guide-on-how- to-build-your-first-slider-головоломка-игра-in-cocos2d-for-android-part-3-2/#comment-1313951361

person Vykthur D .    schedule 28.03.2014