Java 记忆游戏卡翻转问题
我正在做一个简单的记忆游戏,你基本上会匹配相同的牌。如果两张卡都不匹配,我希望这些卡能够反向翻转。翻转代码如下所示:Java 记忆游戏卡翻转问题,java,android,eclipse,handler,Java,Android,Eclipse,Handler,我正在做一个简单的记忆游戏,你基本上会匹配相同的牌。如果两张卡都不匹配,我希望这些卡能够反向翻转。翻转代码如下所示: mT1.unselect(); mT2.unselect(); 当我把它放在else语句中时,卡会立即倒转,所以我使用了一个处理程序来减慢速度 Handler handler = new Handler(); handler.postDelayed(new Runnable() { public
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();
在Runnable
的run()
方法中
如果你发布你的
updateView()
方法和更多关于它如何工作的上下文,如果这个猜测不能解决问题,我们可能会提供更多帮助。你的函数mT1.unselect()和mT2.unselect()中可能存在重复的问题。向您提及这些函数。很抱歉,我没有理解。取消选择方法的代码?私有静态最终字符串ATTR_SELECTED=“SELECTED”;mSelected=object.getBoolean(ATTR_SELECTED);public void unselect(){mSelected=false;}它实际上起作用了!!非常感谢你,伙计!很抱歉,我没有两次提供足够的信息。很高兴这对你有用。这个问题比上一个问题要好,因为它提供了有关您尝试过的内容的更多信息,但是如果没有unselect()
方法或updateView()
的代码,很难猜测它的作用。只有在您对@Tarikhelian的回答中看到您的unselect()
代码时,我才发现它没有更新UI,因此我猜您可能需要调用updateView()
。希望您在不断开发和使用stackoverflow时,能够更好地了解与您的问题相关的信息。祝你好运