北邮2019春计导下 [project] 外卖订单模拟 5.字符动画

该博客主要介绍了如何在北邮2019年春季计算机导论课程的项目中,利用C语言实现一个220x60字符数组来模拟外卖订单的显示效果,通过不断更新数组内容来实现字符动画。
摘要由CSDN通过智能技术生成

没什么好讲的,具体原理就是定一个220x60的字符数组,把内容都写进数组,每时刻更新一次

display.c

#include "define.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

enum PARAMETERS{
   
	RESOLUTION_X=220,RESOLUTION_Y=60,IMG_X=6,IMG_Y=3,
	LEFT_JUSTIFYING=0,MID_JUSTIFYING=1,RIGHT_JUSTIFYING=2,
	POLE_X=3*RESOLUTION_X/5,
	SPLASH_Y=30,SPLASH_X=80,
	DEFAULT_WATING_TIME=4,
};
//输出图像的参数
char screen[RESOLUTION_Y][RESOLUTION_X+1];
//图像存储的数组
//所有的坐标是行后列,X是横向伸展,Y是纵向伸展,所以看起来是先y后x

extern int isFileAvailable();
extern int OrderCnt;
extern Order *OrderListHead;
extern Rider *RiderListHead;
extern int CurrentTime;
extern int Balance;
extern int OrderTaken;
extern int OrderCompleted;
extern int OrderOverdue;

void initScreen();
void fillZone(int y1,int x1,int y2,int x2,char ch);
void drawStraightLine(int y1,int x1,int y2,int x2);
void printScreen();
void writeWord(char *src,int y1,int x1,int mode);
int xShift(int logic_x);
int yShift(int logic_y);
void pasteImg(Image from,int y,int x);
void drawRect(int y1,int x1,int y2,int x2);
void splash();
void displayAllElems();
void updateScreen();

Image Canteen={
   
	"+____+|Shop|======",IMG_X,IMG_Y
};
Image Customer={
   
	"+____+|Cust|======",IMG_X,IMG_Y
};
Image Normal={
   
	"+____+|    |======",IMG_X,IMG_Y
};
Image Road={
   
	"                  ",IMG_X,IMG_Y
};
Image Man={
   
	"      Rider       ",IMG_X,IMG_Y
};
Image Welcome={
   
	" __          __  _                           \\ \\        / / | |                           \\ \\  /\\  / /__| | ___ ___  _ __ ___   ___    \\ \\/  \\/ / _ \\ |/ __/ _ \\| '_ ` _ \\ / _ \\    \\  /\\  /  __/ | (_| (_) | | | | | |  __/     \\/  \\/ \\___|_|\\___\\___/|_| |_| |_|\\___|",44,6
};

Order *OrderClipDisplay=NULL;
void initScreen()
{
   
	fillZone(0,0,RESOLUTION_Y-1,RESOLUTION_X-1,' ');
	fillZone(0,RESOLUTION_X,RESOLUTION_Y-1,RESOLUTION_X,'\0');
	//清理区域
	drawRect(0,0,RESOLUTION_Y-1,RESOLUTION_X-1);
	//画边框
	drawStraightLine(2,0,2,RESOLUTION_X-1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值