gpt4 book ai didi

java - 由于 while() 正在处理,代码运行速度极慢

转载 作者:行者123 更新时间:2023-12-01 17:55:29 26 4
gpt4 key购买 nike

我正在对一个正在处理的蛇克隆进行编程,一切都很顺利,直到我插入了 while() 函数,现在游戏没有以应有的 5 fps 运行。我已经尝试了一切,但似乎无法解决问题,有人知道发生了什么事吗?

int playerX = 400;
int playerY = 400;
void setup(){
size(1350,655);
frameRate(5);
noStroke();

};

int[] posX = {playerX,playerX-17};


int[] posY = {playerY,playerY};

void draw(){
background(0,0,0);

if (keyCode == UP) { playerY -= 17;};
if (keyCode == DOWN) { playerY += 17;};
if (keyCode == LEFT) { playerX -= 17;};
if (keyCode == RIGHT) { playerX += 17;};

int i = posX.length;
while(i>0){
posX[1] = posX[0];
posY[1] = posY[0];
i++;};


posX[0] =playerX;
posY[0] =playerY;

snakeBlock(posX[0],posY[0]);

snakeBlock(posX[1],posY[1]);
};

void snakeBlock(int snakeX,int snakeY){
fill(255,2550);
rect(snakeX,snakeY,15,15);
};

最佳答案

看一下这个循环:

while(i > 0){
posX[1] = posX[0];
posY[1] = posY[0];
i++;
}

只要i大于0,这个循环就会持续进行。但在循环内部,i 只会增加。它什么时候会变得小于0?不会的!所以这个循环永远不会退出。

更准确地说,只有当数字变得太大以至于溢出时才会退出,并从最小值重新开始。

另请注意,由于您甚至没有在此循环中使用 i 变量,因此您根本不需要该循环。

关于java - 由于 while() 正在处理,代码运行速度极慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45272852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com