EasyX—制作复杂动画效果
这篇文章来简单学习一下复杂动画效果。
本文资源下载地址:这里
参考代码
#include <graphics.h>
#include <conio.h>
int main()
{
initgraph(480, 300);
IMAGE img_human,img_walls; // 定义 IMAGE 对象
loadimage(&img_human, "D:\\行走素材图.jpg");
loadimage(&img_walls, "D:\\walls.gif");
int x,y; // 小人整体的坐标位置
x = 250;
y = 80;
int left_i = 0; // 向左行走动画的序号
int right_i = 0; // 向右行走动画的序号
char input;
int maps[8][5] = {0}; // 存储地图信息,0为空地,1为墙
int i,j;
// 以下让地图四个边界为墙
for (i=0;i<8;i++)
{
maps[i][0] = 1;
maps[i][4] = 1;
}
for (j=0;j<5;j++)
{
maps[0][j] = 1;
maps[7][j] = 1;
}
// 显示地图图案
for (i=0;i<8;i++)
for (j=0;j<5;j++)
if (maps[i][j]==1)
putimage(i*60,j*60,&img_walls);
putimage(x,y,75,130,&img_human,0,0);
BeginBatchDraw();
while (1)
{
if(kbhit()) // 判断是否有输入
{
input = getch(); // 根据用户的不同输入来移动,不必输入回车
if (input == 'a') // 左移
{
clearrectangle(x,y,x+75,y+130); // 清空画面全部矩形区域
left_i++;
if (x>60) // 没有达到左边的墙,才移动小人的坐标
x = x-10;
putimage(x,y,75,130,&img_human,left_i*75,0);
FlushBatchDraw();
Sleep(1);
if (left_i==3)
left_i = 0;
}
else if (input == 'd') // 右移
{
clearrectangle(x,y,x+75,y+130); // 清空画面全部矩形区域
right_i++;
if (x<340) // 没有达到右边的墙,才移动小人的坐标
x = x+10;
putimage(x,y,75,130,&img_human,right_i*75,120);
FlushBatchDraw();
Sleep(1);
if (right_i==3)
right_i = 0;
}
}
}
return 0;
}说明:
请注意图片的具体位置。
扫描二维码推送至手机访问。
版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。




