2012-03-11 47 views
-1

这让我头疼大约两天了!允许用户只玩特定级别并解锁它们

我有一个级别的游戏。当级别选择场景被加载时,我检查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; 

我知道这看起来像一团糟。的确,我相信它让我头痛。任何人都可以帮我吗?

回答

2

我觉得你的比较是错误的。

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

这读取,如果用户是在水平比达到最大水平或最大水平达到更高的零电平则允许。

所以应该是<

+0

只要正确地设置颜色,就可以工作!谢谢。现在这个问题是当我点击他们都可以播放的级别时,只有第一级应该可以初始播放。 – 2012-03-11 01:17:48

+0

感谢您的帮助,我发现我的一些比较错误。 – 2012-03-11 01:22:58

+0

@ coder_For_Life22 - 您的欢迎。我希望你在更多的地方有同样的错误。我倾向于始终将最大值与右侧进行比较,以避免混淆情况。 – 2012-03-11 01:28:15