c语言怎么实现滚动的字母?比如一排文字,从下面一直平移到上面? 10
2个回答
展开全部
下面是贪吃蛇简化版代码,可以参考。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
#include<windows.h>//Sleep
int x=1,y=4;
char dir='d';
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //获取标准输出的句柄 <windows.h>
//句柄 :标志应用程序中的不同对象和同类对象中的不同的实例 方便操控,
void gotoxy(int x, int y)//设置光标位置
{
COORD pos = {x,y}; //定义一个字符在控制台屏幕上的坐标POS
SetConsoleCursorPosition(hConsole, pos); //定位光标位置的函数<windows.h>
}
void SetColor(int color)//设置颜色
{
SetConsoleTextAttribute(hConsole, color);
//是API设置字体颜色和背景色的函数 格式:SetConsoleTextAttribute(句柄,颜色);
}
int move()
{
if(kbhit())//keyboard hit,in conio.h
{
switch(getch())
{
case 0x77:
dir = 'w';
break;
case 0x73:
dir = 's';
break;
case 0x61:
dir = 'a';
break;
case 0x64:
dir = 'd';
break;
default:
break;
}
}
switch(dir)
{
case 'w':
y--;break;
case 's':
y++;break;
case 'a':
x--;break;
case 'd':
x++;break;
}
return 0;
}
void check()
{
if(x==0||y==0);
}
int main()
{
int interval=500;//列;行。
system("mode con:cols=60 lines=60");//设置窗体大小 ,超过会自动清除前面的//错题集
system("color 47");//black background
while(1)
{
gotoxy(x,y);
SetColor(0xf);
printf("※");
Sleep(interval);
system("CLS");
move();
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
#include<windows.h>//Sleep
int x=1,y=4;
char dir='d';
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //获取标准输出的句柄 <windows.h>
//句柄 :标志应用程序中的不同对象和同类对象中的不同的实例 方便操控,
void gotoxy(int x, int y)//设置光标位置
{
COORD pos = {x,y}; //定义一个字符在控制台屏幕上的坐标POS
SetConsoleCursorPosition(hConsole, pos); //定位光标位置的函数<windows.h>
}
void SetColor(int color)//设置颜色
{
SetConsoleTextAttribute(hConsole, color);
//是API设置字体颜色和背景色的函数 格式:SetConsoleTextAttribute(句柄,颜色);
}
int move()
{
if(kbhit())//keyboard hit,in conio.h
{
switch(getch())
{
case 0x77:
dir = 'w';
break;
case 0x73:
dir = 's';
break;
case 0x61:
dir = 'a';
break;
case 0x64:
dir = 'd';
break;
default:
break;
}
}
switch(dir)
{
case 'w':
y--;break;
case 's':
y++;break;
case 'a':
x--;break;
case 'd':
x++;break;
}
return 0;
}
void check()
{
if(x==0||y==0);
}
int main()
{
int interval=500;//列;行。
system("mode con:cols=60 lines=60");//设置窗体大小 ,超过会自动清除前面的//错题集
system("color 47");//black background
while(1)
{
gotoxy(x,y);
SetColor(0xf);
printf("※");
Sleep(interval);
system("CLS");
move();
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询