文章目录
- 🍊自我介绍
- 🍊图像界面绘制
- 界面绘制
- 界面显示代码
- 运行结果
你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~
🍊自我介绍
Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾” 和“内容共创官” ,现在我来为大家介绍一下有关物联网-嵌入式方面的内容。
🍊图像界面绘制
界面绘制
解释图中信息:
左边界面是游戏界面;右上边区域是下一个要出现的图形区域;右下方区域是显示分数和等级。
图中(10,5),(40,5)等坐标表示横坐标和纵坐标。
因为绘制的界面横坐标占用两个格子,纵坐标占用一个格子;所以x的有效取值范围是:12-39,y的有效取值范围是6-29。
界面显示代码
#include <stdio.h>
#include <termios.h>
#include <signal.h>
#include <time.h>
#include <sys/time.h>
#include <stdlib.h>
int score_x = 45;
int score_y = 18;
int level_x = 45;
int level_y = 22;
int getch()//获得一个字符,不回显;切记是1个字符
{
struct termios tm,tm_old;
//1.获得用户输入的属性到 tm_old
tcgetattr(0,&tm_old);
//2.获取原始输入的属性
cfmakeraw(&tm);
//3.把输入的属性设置到终端上
tcsetattr(0,0,&tm);
//4.读取用户输入的一个字符
int ch = getchar();
//5.恢复正常输入
tcsetattr(0,0,&tm_old);
return ch;
}
void print_start_ui()
{
printf("\33[2J");//清屏
int i;
for(i = 0;i < 47;i++)//输出黄色最顶行。最低行
{
printf("\033[%d;%dH\033[43m \033[0m",5,i+10);
printf("\033[%d;%dH\033[43m \033[0m",30,i+10);
}
for(i = 0;i < 26;i++)
{
printf("\033[%d;%dH\033[43m \033[0m",i+5,10);
printf("\033[%d;%dH\033[43m \033[0m",i+5,40);
printf("\033[%d;%dH\033[43m \033[0m",i+5,56);
}
for(i = 0;i < 17;i++)//输出用户下一图形分割行
{
printf("\033[%d;%dH\033[43m \033[0m",12,40+i);
}
printf("\033[%d;%dH分数:\033[0m",score_y,score_x);//输出分数
printf("\033[%d;%dH分数:\033[0m",level_y,level_x);//输出等级
}
void init_game_ui()
{
print_start_ui();//输出窗体界面
getch();//等待用户输出,然后程序开始运行
}
int main()
{
init_game_ui();
return 0;
}