我正在制作一个Clicker游戏,您在其中点击一个按钮以增加能量。 当我的进度栏达到最大值时,它将重置并将最大值设置为下一个更高的值(一切都会正常进行)。 但是,当我再次点击时,进度会以旧的最大值增加,但此后通常会继续。 我不知道该如何解决
public class MainActivity extends AppCompatActivity {
public int MinPoints = 0;
public int MaxPointsSSJ = 10;
public int MaxPointsSSJ2 = 20;
public int MaxPointsSSJ3 = 50;
public int Progress;
private void checker(int currentPoints, int maxPoints, int
newmaxPoints, ImageView anzeige, int bild, ProgressBar pb){
if (currentPoints == maxPoints)
maxPoints = newmaxPoints;
pb.setMax(newmaxPoints);
anzeige.setImageResource(bild);
pb.setProgress(currentPoints - maxPoints);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ImageView Anzeige = (ImageView) findViewById(R.id.imageView);
final ProgressBar KiAnzeige = (ProgressBar) findViewById (R.id.progressBar);
Button MehrEnergie = (Button) findViewById(R.id.button);
KiAnzeige.setMax(MaxPointsSSJ);
KiAnzeige.setMin(MinPoints);
KiAnzeige.setProgress(0);
Progress = KiAnzeige.getProgress();
MehrEnergie.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Progress++;
KiAnzeige.setProgress(Progress);
if (Progress == MaxPointsSSJ){
checker(Progress, MaxPointsSSJ, MaxPointsSSJ2, Anzeige, R.drawable.goku_ssj1, KiAnzeige);
}
if (Progress == MaxPointsSSJ2){
checker(Progress, MaxPointsSSJ2, MaxPointsSSJ3, Anzeige, R.drawable.goku_ssj2, KiAnzeige);
}
}
});
}
}
答案 0 :(得分:1)
设置进度条的状态,以便进度无限显示。
KiAnzeige.setIndeterminate(true);
答案 1 :(得分:0)
尝试
MehrEnergie.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
++Progress;
KiAnzeige.setProgress(Progress);
if (Progress == MaxPointsSSJ){
checker(Progress, MaxPointsSSJ, MaxPointsSSJ2, Anzeige, R.drawable.goku_ssj1, KiAnzeige);
}
if (Progress == MaxPointsSSJ2){
checker(Progress, MaxPointsSSJ2, MaxPointsSSJ3, Anzeige, R.drawable.goku_ssj2, KiAnzeige);
}
}
});
答案 2 :(得分:0)
您的OnClick
函数将进度条进度增加1,但是在checker
函数中,您将进度条进度设置为0,这是有效的,因为currentPoints等于maxPoints。
所以在OnClick
中,它看起来像1 / 10、2 / 10、3 / 10,... 10/10,然后触发checker
,将其设置为0/20 ,然后返回到OnClick
,在此继续为11 / 20、12 / 20、13 / 20等。
您可以通过将最大值更改为新的最大值和旧的最大值之间的差异,然后将“进度”设置回0来解决此问题,或者在设置进度时考虑差异。
或者,如果您希望进度条“加宽”以便仍显示以前的点击,但是进度条的比例会增加,则只需在{{中将进度设置为currentPoints
1}}功能。