Libgdx拖放卡片游戏

时间:2015-02-18 15:32:38

标签: image drag-and-drop libgdx

我正在与LibGdx建立一个纸牌游戏。我是libgdx的新手,已经阅读了所有教程和LibGdx的DragAndDrop测试类,但我无法弄清楚如何为我的游戏实现dragAndDrop?

用户手中的牌是来源,当用户拖到桌面上时,当放在牌桌上的相应牌上时,如果牌是有效目标,则必须根据牌值进行计算,如果不是拖动的卡片应添加到桌卡中并成为新的目标。这些卡都是图像。这是我到目前为止所做的,但是当运行时,源卡向右滑动而不是被拖动。

有人可以帮我解决这个问题吗?

DragAndDrop dragNdrop =  new DragAndDrop();
        dragNdrop.addSource(new Source(userCard1)
        {
            @Override
            public Payload dragStart(InputEvent event, float x, 
                                     float y,int pointer) 
            {
                Payload payload = new Payload();
                payload.setObject(userCard1);
                payload.setDragActor(userCard1);

                if(userhand.getCard(0).getValue() +
                   maidaanhand.getCard(0).getValue() == 11)
                {
                    payload.setValidDragActor(maidaanCard1);
                }
                return payload;
            }

        });

        dragNdrop.addTarget(new Target(maidaanCard1)
        {
            @Override
            public boolean drag(Source source, Payload payload, 
                                float x, float y, int pointer) 
            {
                getActor();
                return true;
            }

            @Override
            public void drop(Source source, Payload payload, 
                             float x, float y, int pointer) 
            {
                if(userhand.getCard(0).getValue() + 
                   maidaanhand.getCard(0).getValue() == 11)
                {
                    userScore = 10;
                }
            }
        });

1 个答案:

答案 0 :(得分:0)

您可以使用(实现)手势监听器界面:

http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/input/GestureDetector.GestureListener.html

..并使用pan()panStop()方法分别跟踪拖放。