0
public void update(){
            /*
            *  Purpose: Called each frame update (i.e. 30 times a second)
            *  Preconditions: None
            *  Postconditions: return nothing
            */

                int count = 0 ;
                int x = 0;

                if (checkPaddle() == true){
                    count++;
                }



                if (count % 2 == 0) {

                    x = -7;
                    }

                else {
                    x = 7;}


                paddleLocation.y= paddleLocation.y + x;

            }//end update

我希望底部的计数成为方法顶部的初始值。我无法理解如何做到这一点。

4

2 回答 2

0

我想您可以将计数设为成员变量,然后您可以删除该行int count = 0;以防止计数在每次更新期间重置:

int count = 0; // Declare it here or in your constructor

public void update() {
    int x = 0;
    if (checkPaddle() == true) {
        count++;
    }
    if (count % 2 == 0) {
        x = -7;
    } else {
        x = 7;
    }
    paddleLocation.y = paddleLocation.y + x;
}
于 2014-01-26T04:03:53.273 回答
0

是的,我认为您想为此计算一个私有字段。

在不相关的说明上;您的代码还有一些改进空间。我个人会摆脱所有空行,它们占用了屏幕空间。此外,您将更改变量命名为 x,这有点模棱两可。由于您使用 y 来表示桨的 y 位置,因此可能会认为您的意思是 x 的 x 位置,而实际上您的意思是 deltaY。(改变 y 位置)。

最后,checkPaddle() 已经返回一个布尔值,你不需要检查它是否等于 true。看起来很复杂。

于 2014-01-26T04:09:09.217 回答