java - 内存游戏卡翻转问题

标签 java android eclipse handler

我正在开发一个简单的内存游戏,您基本上可以匹配相同的牌。如果两者不匹配,我希望卡片能够翻转回来。翻转代码如下:

 mT1.unselect();
 mT2.unselect();

当我把它放在 else 语句中时,卡片会立即翻转回来,所以我使用了一个处理程序来减慢它的速度。

Handler handler = new Handler(); 
                handler.postDelayed(new Runnable() { 
                     public void run() { 
                         mT1.unselect();
                         mT2.unselect();
                         playSound( SOUND_FAILED );
                     } 
                }, 2000); 

但当我测试时它不会翻转,而是在给定时间后播放声音。有什么问题?

完整代码:

   public void onPosition(int position)
{
    if (position == mLastPosition)
    {

        return;
    }
    mLastPosition = position;
    Tile tile = mList.get(position);
    tile.select();
    int sound = tile.mResId % mSounds.length;
    playSound(sound);

    switch (mSelectedCount)
    {
        case 0:
            mT1 = tile;
            break;

        case 1:
            mT2 = tile;
            if (mT1.getResId() == mT2.getResId())
            {
                mT1.setFound(true);
                mT2.setFound(true);
                mFoundCount += 2;
                playSound(SOUND_SUCCEED);
            }
            else
            {

                Handler handler = new Handler(); 
                handler.postDelayed(new Runnable() { 
                     public void run() { 
                         mT1.unselect();
                         mT2.unselect();
                         playSound( SOUND_FAILED );
                     } 
                }, 2000); 

            }
            break;

        case 2:
            if (mT1.getResId() != mT2.getResId())
            {

            }
            mSelectedCount = 0;
            mT1 = tile;
            break;
    }
    mSelectedCount++;
    mMoveCount++;
    updateView();
    checkComplete();
}

最佳答案

对于你之前的问题,你仍然没有给我们足够的背景信息,但我会在黑暗中进行一次疯狂的刺探——也许你需要调用:

updateView();

在您的 Runnablerun() 方法中。

也许如果您发布您的 updateView() 方法及其工作原理的更多上下文,如果这个猜测不能解决问题,我们可能会提供更多帮助。

关于java - 内存游戏卡翻转问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31928025/

相关文章:

c++ - 使用 MinGW 在 Eclipse 中 boost 单元测试不产生输出

java - 我应该使用这两种方法中的哪一种来正确停止计划线程?

java - 有没有办法为 JTable 创建渐变背景?

java - Android - 静态嵌套类(上下文)

android - Activity 选择器菜单问题 : Dialing a number

python - Sonar 不知道 Pylint 规则

java - 在Eclipse中删除磁盘上的项目内容之前,如何在删除参与者中执行操作?

java - 使用 Scala Flume Sink 到 Spark

java - 当我将 Java 代码转换为 C++ 代码时失败结果

android - Facebook 分享 - 缺少文本