允许用户只播放某个级别的&解锁他们

时间:2012-03-11 01:10:39

标签: java android andengine

这让我头疼了大约两天了!

我有一个关卡的游戏。加载关卡选择场景后,我会检查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 个答案:

答案 0 :(得分:2)

我认为你的比较是错误的。

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

如果用户所在的等级大于达到的最高等级或达到的最高等级为零等,则读取该等。

所以它应该是<