三辆移动的小车
动图效果不好,直接上代码
// 程序名称:3 辆行驶的小车
// 编译环境:VS2013 VC6.0,EasyX 2017-9-19
// 程序编写:鼠瓜
// 最后修改:2018-12-9
// 程序说明:
// 先绘制好BUS,将其保存为图片结构体 img,用的时候直接调用 img
#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
// 声明需要使用的函数
void carstart(int x, int y, int z);
void drawbus();
void init();
// 定义全局变量
IMAGE img;
void main()
{
init();
int x = 0, y = 0, z = 0;
BeginBatchDraw();
while (!_kbhit())
{
x += 2;
y++;
z += 3;
if (x > 600) x = -200;
if (y > 600) y = -200;
if (z > 600) z = -200;
carstart(x, y, z);
FlushBatchDraw();
Sleep(5);
}
EndBatchDraw();
closegraph();
}
// 初始化函数,初始化窗口大小,获取所画图片
void init()
{
// 初始化窗口大小
initgraph(600, 600);
drawbus(); // 调用绘图函数,绘制 BUS
getimage(&img, 80, 40, 180, 90); // 获取 BUS 图片位置,保存在 img 变量中
}
//
// 车辆行驶程序,通过 putimge 函数,改变移动的像素来达到图片移动
void carstart(int x, int y, int z)
{
cleardevice();
putimage(x, 40, &img);
setlinestyle(PS_SOLID, 10); //设置画线的大小
line(0, 135, 600, 135);
putimage(y, 220, &img);
line(0, 315, 600, 315);
putimage(z, 380, &img);
line(0, 475, 600, 475);
}
//
// 绘制 BUS 函数,通过画一些线条,组合它们的位置,组合成一辆小车
void drawbus()
{
setcolor(RED);
setfillstyle(BLUE);
fillcircle(120, 120, 10); // 画车的轮胎
fillcircle(200, 120, 10); // 画车的轮胎
line(80, 120, 110, 120); // 画车的底部车板
line(80, 40, 80, 120); // 画车的四周车板
line(130, 120, 190, 120); // 画车的底部车板
line(210, 120, 250, 120); // 画车的底部车板
line(250, 40, 250, 120); // 画车的四周车板
line(80, 40, 250, 40); // 画车的顶部车板
// 画车窗
for (int x = 90, y = 100; x < 190 && y < 190; x += 15, y += 15)
{
rectangle(x, 60, y, 70);
}
// 画车门
rectangle(220, 60, 240, 120);
line(230, 60, 230, 120);
circle(230, 90, 5);
}