就是让文字碰到边框后可以反弹
时间: 2023-07-28 10:10:07 浏览: 40
要让文字碰到边框后反弹,可以在计算文本的新位置时,检查文本是否超出屏幕边界,如果超出,则改变移动方向。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
int main()
{
char text[] = "Hello, World!"; // 要移动的文本
int x = 0, y = 0; // 文本的初始位置
int dx = 1, dy = 1; // 文本每次移动的距离
int width = 80, height = 25; // 屏幕的宽度和高度
while (1)
{
// 清空屏幕
system("cls");
// 计算文本的新位置
x += dx;
y += dy;
// 如果文本超出屏幕边界,则改变移动方向
if (x < 0 || x + strlen(text) >= width)
{
dx = -dx;
x += dx * 2;
}
if (y < 0 || y >= height)
{
dy = -dy;
y += dy * 2;
}
// 在新位置上打印文本
COORD coord = { x, y };
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
printf("%s", text);
// 将程序暂停一段时间,以控制移动速度
Sleep(100);
}
return 0;
}
```
以上代码中,我们在检查文本是否超出屏幕边界时,不仅改变了移动方向,还将文本移动了两个单位的距离,以避免文本反弹后仍然超出屏幕边界。