青少年编程知识记录 codecoming

EasyX—制作复杂动画效果

这篇文章来简单学习一下复杂动画效果。

本文资源下载地址:这里



  1. 参考代码







#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;  }



说明:

请注意图片的具体位置。



(adsbygoogle = window.adsbygoogle || []).push({});

作者:亿万年的星光 分类:趣味小程序 浏览: