当前位置:首页 > 趣味小程序 > 正文内容

EasyX—制作复杂动画效果

亿万年的星光4年前 (2022-02-06)趣味小程序2808

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

本文资源下载地址:这里


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


说明:

请注意图片的具体位置。


    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    C++小游戏—弹跳小球

    C++小游戏—弹跳小球

    首先,要注意屏幕直角坐标系的问题,不然的话,后面移动过程中一定会出错。然后,利用printf函数在屏幕坐标(x,y)处显示一个静止的小球字符‘O’,注意屏幕坐标系的原点在左上方,参考代码#includ...

    【C++图形化编程】flappy bird(3)—碰撞检测(大功告成)

    0.前言    前面几篇文章中,我们简单介绍了基础框架和游戏逻辑,这一篇文章我们接着上一篇,继续完善游戏,主要是移动与碰撞逻辑的检测...

    C++使用键盘控制物体移动

    C++使用键盘控制物体移动

    0.前言在前面几篇文章中,学习了键盘事件和光标移动,在这篇文章中,我们要使用键盘的上下左右键控制在控制台中出现的角色1.原理因为我们要通过移动键盘控制光标位置,那么在此之前需要提前获取到光标位置,然后...

    C++在指定位置输出符号

    C++在指定位置输出符号

    0.前言需要做控制台小游戏,需要获取光标在控制台的位置,从网上查到了gotoxy()函数可以实现,但是在DEVC++环境中直接调用这个gotoxy()会报错,于是查了一些资料,把过程记录下来。1.过程...

    【C++图形化编程】EasyX函数~图形绘制相关函数(2)

    【C++图形化编程】EasyX函数~图形绘制相关函数(2)

    (1)ellipse  椭圆void ellipse( int left, int top, int right, int ...

    【C++图形化编程】EasyX实现弹跳小球

    【C++图形化编程】EasyX实现弹跳小球

    前面的文章实现了C++控制台显示一个弹跳的小球,这篇文章使用EasyX实现一个带有界面的弹跳小球的效果。首位,我们需要准备好EasyX。然后让EasyX画一个小的圆。然后我们使用前面学过的判断边界的函...