关于C语言实现easyX一帧一帧播放动态图(超详细)

播放动态图

这里写的在控制台窗口绘制图片是一帧一帧绘制的,而且有种动态图的效果。
在这里插入图片描述
以这四张图片为例,在程序运行的时候通过按键实现人物动态移动的效果。

Timer定时器

这个是图片延迟播放的关键。引用头文件<time.h>

//定时器
bool Timer(int ms, int id)
{	//ms是延迟时间,id是定时器的编号
	static DWORD t[10];
	if (clock() - t[id] > ms)
	{
		t[id] = clock();
		return true;
	}
	return false;
}

实现程序

#include <graphics.h>
#include<stdio.h>
#include<time.h>
IMAGE img_player[4];	//定义玩家图片数组
//这张图片是我随机挑出来的四张
int dirleft;	//定义传入图片的参数值
//定义玩家结构体
struct 
{
	int x,y;
}player;
 //加载图片资源
 void loadimg()
 {
 	char arry[64];	//定义数组,将图片的地址写入到数组
 	for(int i=0;i<4;i++)
 	{
 		sprintf(arry,"./%d.png",i+9);//图片的编号是从9开始的
 		loadimage(&img_player[i],arry);
 	}
 }
 //绘制图片
 void draw()
 {
 	putimage(player.x,player.y,&img_player[dirleft-9]);
 }
 //键盘事件
 void keyboardEvent()
 {
 	//判断是否按下键盘的-->(右方向键)
 	//GetAsyncKeyState()是Windows里面的函数
 	//延时200毫秒,第0号定时器
 	if(GetAsyncKeyState(VK_RIGHT)&&Timer(200,0))
 	{	//这个写法也可以来控制玩家的坐标
 		player.x++;
 		dirleft++;
 		if(dirleft>12)
 		{
 			dirleft=9
 		}
 	}	
 }	
 int main()
 {
 	loadimg();
 	while(true)
 	{
 		draw();
 		keyboardEvent();
 	}
 }

基本上就是上面代码里的写法,直接在CSDN文本编辑器里面写的,没有运行。
注释比较全面,希望对大家能够有所帮助。

  • 6
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十九.19

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值