Java 我如何组织此功能,使其按我的意愿工作

Java 我如何组织此功能,使其按我的意愿工作,java,android,loops,Java,Android,Loops,我是android studio的新手,我希望这个函数能够循环并创建一个无限球下落循环,直到两个整数不匹配为止,但是当我尝试运行它时,它只会循环一次,如果我在else语句中更改strike=2,应用程序就会崩溃 public void mainGameLoop(){ do { //sets Balls integer setColourint(); ball.setVisibility(View.VISIBLE); //ba

我是android studio的新手,我希望这个函数能够循环并创建一个无限球下落循环,直到两个整数不匹配为止,但是当我尝试运行它时,它只会循环一次,如果我在
else
语句中更改
strike=2
,应用程序就会崩溃

public void mainGameLoop(){
    do {
        //sets Balls integer
        setColourint();
        ball.setVisibility(View.VISIBLE);
        //ball fall
        float bottomOfScreen = getResources().getDisplayMetrics()
                .heightPixels - (ball.getHeight() * 4);

        //fall animation
        ball.animate()
                .translationY(bottomOfScreen)
                .setInterpolator(new AccelerateInterpolator())
                .setInterpolator(new BounceInterpolator())
                .setDuration(9000);
        //once animation is complete compares balls variable with current variable
        if (colourint == ranint){
            //if they are same then +1 score
            score = score+1;
            scr.setText(Integer.parseInt(String.valueOf(score)));

        } else {
            //else game is over
             streak = 2;
        }
        //repeat until game is over
    } while (streak == 1);
}

一旦球到达相对布局的底部,我希望函数检查
setcoulour int
ran int
是否相同,然后如果are
score=score+1
,球返回顶部,调用
setColourInt
函数,球再次下落(依此类推)但如果不是循环结束,游戏就结束了……我为自己的无能道歉,但我无法想象你们也不记得什么时候,在编码方面是如此幼稚。非常感谢Tom

您必须给UI一个机会来绘制您正在做的事情。无论使用哪种方法(
onStart
onCreate
,等等)调用
mainGameLoop
,它都不会返回,因为它卡在无限循环中。这是一个错误


一种方法是创建一个
视图
,并在
onDraw
方法中实现游戏绘制逻辑。在绘图时,UI线程将调用您的
onDraw
方法。这里有一篇文章谈论这个方法:

现在你认为“错误”是怎么回事?