2016-12-15 7 views
1

私はゲームを作ろうとしており、スコアを数える必要があります。スコアはload()メソッドで生成され、TextView scoreに配置する必要があります。問題は、私のtextViewが変更されていないこと、常に同じままであることです。0です。アンドロイド - スコアカウントを作成

public class MainActivity extends Activity implements OnGestureListener { 
    private Paint paint = new Paint(); 
    public int sco = 0; 
    public int colora; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_game); 

     load(); 

     TextView score = (TextView) findViewById(R.id.textView1); 
     score.setText(String.valueOf(sco)); 
    } 

    private void load() { 

     Bitmap bg = Bitmap.createBitmap(480, 800, Bitmap.Config.ARGB_8888); 
     Canvas canvas = new Canvas(bg); 
     RelativeLayout ll = (RelativeLayout) findViewById(R.id.rect); 
     ll.setBackgroundDrawable(new BitmapDrawable(bg)); 

     List <Integer> numbers = Arrays.asList(Color.RED, Color.BLUE, Color.GREEN, Color.YELLOW); 
     Collections.shuffle(numbers); 

     colora = numbers.get(0); 
     if (colora == Color.RED) { 
      sco++; 
     } 

     paint.setColor(numbers.get(0)); 
     canvas.drawRect(20, 15, 11, 3, paint); 

     paint.setColor(numbers.get(1)); 
     canvas.drawRect(19, 15, 15, 3, paint); 

     paint.setColor(numbers.get(2)); 
     canvas.drawRect(5, 5, 15, 35, paint); 

     paint.setColor(numbers.get(3)); 
     canvas.drawRect(5, 15, 26, 1.4, paint); 
    } 
} 

答えて

1

コールscore.setText(String.valueOf(sco));たびsco変更。あなたはonCreate()で一度しか電話していません。

1

私はこれのコピーを移動する:あなたのloadメソッドに

score.setText(String.valueOf(sco)); 

を:

colora = numbers.get(0); 
    if (colora == Color.RED) { 
     sco++; 
     score.setText(String.valueOf(sco)); 
    } 

ので、一緒にすべては次のようになります。

public class MainActivity extends Activity implements OnGestureListener { 
    private Paint paint = new Paint(); 
    public int sco = 0; 
    public int colora; 
    TextView score; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_game); 

     score = (TextView) findViewById(R.id.textView1); 
     score.setText(String.valueOf(sco)); 

     load(); 
    } 

    private void load() { 

     Bitmap bg = Bitmap.createBitmap(480, 800, Bitmap.Config.ARGB_8888); 
     Canvas canvas = new Canvas(bg); 
     RelativeLayout ll = (RelativeLayout) findViewById(R.id.rect); 
     ll.setBackgroundDrawable(new BitmapDrawable(bg)); 

     List <Integer> numbers = Arrays.asList(Color.RED, Color.BLUE, Color.GREEN, Color.YELLOW); 
     Collections.shuffle(numbers); 

     colora = numbers.get(0); 
     if (colora == Color.RED) { 
      sco++; 
      score.setText(String.valueOf(sco)); 
     } 

     paint.setColor(numbers.get(0)); 
     canvas.drawRect(20, 15, 11, 3, paint); 

     paint.setColor(numbers.get(1)); 
     canvas.drawRect(19, 15, 15, 3, paint); 

     paint.setColor(numbers.get(2)); 
     canvas.drawRect(5, 5, 15, 35, paint); 

     paint.setColor(numbers.get(3)); 
     canvas.drawRect(5, 15, 26, 1.4, paint); 
    } 
} 
+0

さて、それはカウントを開始しますが、継続的ではありません。それは条件が真でない場合でも増加しますか?またはシャッフル方法はあまり正確ではありませんか? –

+0

私はあなたのコードをチェックします。デバッガを使用して、ifステートメントに渡されるコードを判断します。 – BlackHatSamurai

+0

これを見るにはどうすればいいですか? –

関連する問題