赞
踩
这里写的在控制台窗口绘制图片是一帧一帧绘制的,而且有种动态图的效果。
以这四张图片为例,在程序运行的时候通过按键实现人物动态移动的效果。
这个是图片延迟播放的关键。引用头文件<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文本编辑器里面写的,没有运行。
注释比较全面,希望对大家能够有所帮助。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。