这让我头疼了大约两天了!
我有一个关卡的游戏。加载关卡选择场景后,我会检查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;
我知道这似乎很乱。事实上,我相信它让我头疼。有人可以帮帮我吗?
答案 0 :(得分:2)
我认为你的比较是错误的。
if (level >= maxLevelReached || maxLevelReached == 0)
如果用户所在的等级大于达到的最高等级或达到的最高等级为零等,则读取该等。
所以它应该是<
。