解锁下一级游戏

时间:2015-09-17 11:44:19

标签: android

我正在制作一个有10个级别的琐事测验应用程序,如果之前级别的分数为4或更高,则每个级别都会解锁。现在,如果我使用此代码(使用共享首选项存储游戏数据),它就可以正常工作了!

   button.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v) {
      SharedPreferences pref2 = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
    int score2 = pref2.getInt("score2",0);  //score2 is the score of previous level
            if(score2 >= 4)
           {

            startActivity(new Intent(Lyricswho.this,Lylevel3.class));
           }
         else{ Toast.makeText(getApplicationContext(), "Level Locked", Toast.LENGTH_SHORT).show();}
        }
    });
然而,我试图实现像我在按钮上设置锁定图像imageview的东西,我希望它在得分> = 4时消失/删除。我面临的问题是我不能把它放在setOnClickListener函数中,因为当Level1的分数大于等于4时,如果按下“Level2”按钮,它就会起作用,imageview应该变为null 。所以我试着把它放在按钮点击funtcion之外,但它不起作用。它仅在我重新开始游戏时起作用,例如我用socre> = 4完成了level1,当我回到选择level2时它仍然被锁定!当我重新开始游戏时,关卡会被解锁。请帮帮我!这是代码

SharedPreferences pref2 = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
   final int score2 = pref2.getInt("score2",0);
    if(score2 >= 4)
    {
           imageview.setImageDrawable(null);
    button.getBackground().setAlpha(45);
    }


    button.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v) {

            if(score2 >= 4)
           {

            startActivity(new Intent(Lyricswho.this,Lylevel3.class));
           }
         else{ Toast.makeText(getApplicationContext(), "Level Locked", Toast.LENGTH_SHORT).show();}
        }
    });

1 个答案:

答案 0 :(得分:0)

根据你的描述,听起来好像你需要一个线程在得分增加后进行更新。每当游戏代码中出现任何分数增加后,您都希望在分数上调用您的支票。此检查将删除阻止图像并允许您继续。

我相信情况就是这样,因为你说该项目的工作原理是你打算重新加载游戏。由于首选项将保留在那里直到它们被清除,因此您实际上是在重新加载代码后分数增加。您需要做的就是自然地将此检查写入您的代码。