Я работаю над простой игрой памяти, где вы в основном сопоставляете одни и те же карты. Я хочу, чтобы карты могли откидываться назад, если оба они не совпадали. Коды Подавать являются следующие:Memory game card flipping problems
mT1.unselect();
mT2.unselect();
Когда я положил его в заявлении еще карты переворачивать обратно немедленно, я использовал обработчик, чтобы замедлить его.
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();
}
Возможный дубликат [Проблемы с памятью игры] (http://stackoverflow.com/questions/31926462/memory-game-problems) –
У вас есть проблема в вашей функции mT1.unslect() и mT2.unselect(). ваши эти функции тоже –
Мне жаль, что я этого не понял. – markos