Разрешение пользователю играть только на определенных уровнях и разблокировать их - PullRequest
0 голосов
/ 11 марта 2012

Вот уже около двух дней у меня болит голова!

У меня игра с уровнями.Когда сцена выбора уровня загружена, я проверяю переменную maxLevelReached int.

При первом воспроизведении пользователем переменная maxlevelreached равна 0.

Первый уровень = 0, так что я делаюэто когда сцена загружена ...

 private int level = 60; 

 if (level >=  maxLevelReached || maxLevelReached == 0){
     box.setColor(0, 0, 0);  
 }
 else
 {
     box.setColor(0, 0.9f, 0);
 }

Как видите, я проверяю, не ниже ли уровень maxLevel или равен ему.

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

Если пользователь нажимает на уровень, и он еще не разблокирован, то так я тестирую, чтобы запустить уровень илине ..

Log.e("Level:"+levelClicked, "Level");

if(levelClicked >= maxLevelReached){                                                           
    levelClicked = levelToLoad;    
    Intent intent = new Intent(level.this, GameLevel.class);                        
    intent.putExtra("level", levelClicked);                                          
    startActivity(intent);                                                        
 }

Это тоже не работает ... По какой-то причине все уровни можно воспроизводить, когда это должен быть только первый уровень, с которого начинается.

Здеськак разблокировать уровни после завершения предыдущего уровня ..

int CurrentLevel = level+1;
Log.e("Current Level unlocked", String.valueOf(CurrentLevel));
editor.putInt("max_level",CurrentLevel);
editor.commit();

Затем я делаю это в сцене выбора уровня ...

int unlockedLevel = preference.getInt("max_level",0);
maxLevelReached += unlockedLevel;

Я знаю, это похоже на беспорядок,Действительно, я верю, что это вызывает у меня головную боль.Может ли кто-нибудь помочь мне, пожалуйста?

1 Ответ

2 голосов
/ 11 марта 2012

Я думаю, что ваше сравнение неверно.

if (level >=  maxLevelReached || maxLevelReached == 0)

Это означает, что если уровень, на котором находится пользователь, превышает максимальный достигнутый уровень или достигнутый максимальный уровень равен нулю, то разрешите.

Так что вместо этого должно быть <.

...