我正在自学C编程语言,但是我的学习是结合设计Gameboy游戏(使用GBDEK)的上下文进行的。
我正在制作一个简单的打砖块克隆游戏,并决定使用printf()函数显示玩家的得分。当玩家的得分增加时,显示的得分显然也应该相应更改。以下是相关代码:
当游戏开始时,控制台会打印一些空行来定位得分。当得分改变时(在这种情况下,当球击中挡板时),它应该返回到该行的开头并打印一个新数字。但是,它会打印回车符号(一个奇怪的CR符号),并且不会擦除先前的得分。以下是一张屏幕截图,以便说明我的意思。
我正在制作一个简单的打砖块克隆游戏,并决定使用printf()函数显示玩家的得分。当玩家的得分增加时,显示的得分显然也应该相应更改。以下是相关代码:
int score = 0;
void main() {
printf(" \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n%d", score);
}
void moveBall() {
if((ballY == paddleY-8) && (ballX >= paddleX-8) && (paddleX+24 >= ballX-8)) {
score+=10;
printf("\r%d", score);
}
}
当游戏开始时,控制台会打印一些空行来定位得分。当得分改变时(在这种情况下,当球击中挡板时),它应该返回到该行的开头并打印一个新数字。但是,它会打印回车符号(一个奇怪的CR符号),并且不会擦除先前的得分。以下是一张屏幕截图,以便说明我的意思。
我不确定如何修复这个问题。需要帮助吗?
\r
。也许它有其他API来重置行位置。 - Jean-François Fabre