Допустим, я должен использовать оператор if внутри цикла for, а цикл for запускается при определенном условии, а оператор if запускается только тогда, когда цикл for достиг определенной стадии.
Например,Условием является счетчик, который считает, когда происходит определенная вещь, например, когда мяч падает на экран.круги рисуются один за другим каждый раз, когда мяч пересекает экран.Когда круги в первом ряду достигли конца экрана, круги начинают появляться во втором ряду ниже первого.Однако вторая строка не работает для меня, что я реализовал с помощью оператора if.
float BallY = 50; // y value of the ball
float BallX = 260; // x value of the ball
float ScoreX = 52;
float ScoreY = 40;
int counter;
void setup()
{
size(512, 348); //width and height of screen
counter = 0;
}
void draw()
{
frameRate(600);
background(255);
fill(0);
ellipse(BallX, BallY, 15, 15); //ball that will fall
BallY++; //ball's y value increases each frame
if (BallY > height) //if ball's y value is greater than the screen
{
BallY = 0; //reset the y value of the ball back to 0
counter++;
}
for (int i = 0; i < counter; i++) {
ellipse(ScoreX + i * 80, 40, 40, 40); // draw circles in the first row one by one
if( ScoreX + i * 80 > width) // if the circles cross the width
{
i = 0; //reset i to be 0
ellipse(ScoreX + i * 80, 80, 40, 40); // draw circles in the second row
}
}}
Оператор if предназначен для стрельбы только тогда, когда шары в первом ряду пересекают ширину, однако всяигра просто останавливается вместо стрельбы по этому ряду, в чем проблема?