print_image(DF_run_r[DF_run_r_index], DF_x, DF_y, DF_width, DF_height);用loadimage打印
时间: 2023-08-16 18:07:34 浏览: 50
好的,你可以将print_image函数替换为loadimage函数来打印图片。具体的实现方法如下:
```
#include <graphics.h>
#include <string.h>
//屏幕宽度和高度
int screen_width = 800;
int screen_height = 600;
//戴夫奔跑时使用的图片组
const char* DF_run_r[4] = {"DF_run_r_1.png", "DF_run_r_2.png", "DF_run_r_3.png", "DF_run_r_4.png"};
//戴夫的初始坐标和大小
int DF_x = 100;
int DF_y = 100;
int DF_width = 100;
int DF_height = 100;
//戴夫奔跑时的速度
int DF_speed = 5;
//当前显示的图片编号
int DF_run_r_index = 0;
void DF_run_r() {
//计算戴夫奔跑时的新坐标
int new_x = DF_x + DF_speed;
int new_y = DF_y;
//判断新坐标是否超出屏幕范围
if (new_x + DF_width > screen_width) {
new_x = screen_width - DF_width;
}
//更新戴夫的坐标
DF_x = new_x;
DF_y = new_y;
//切换图片
DF_run_r_index = (DF_run_r_index + 1) % 4;
//加载图片
IMAGE img;
const char* path = DF_run_r[DF_run_r_index];
loadimage(&img, path);
//在新坐标处打印戴夫奔跑的图片
int x = DF_x;
int y = DF_y;
int width = DF_width;
int height = DF_height;
putimage(x, y, &img);
}
int main()
{
initgraph(screen_width, screen_height); // 初始化图形窗口
while(1) {
cleardevice(); //清空屏幕
DF_run_r(); //打印戴夫奔跑的图片
delay_ms(50); //延时
if (kbhit()) { //判断是否有键盘输入
char ch = getch();
if (ch == 27) { //如果按下ESC键,则退出程序
break;
}
}
}
closegraph(); // 关闭图形窗口
return 0;
}
```
在这个示例代码中,我们使用loadimage函数加载一张图片,并使用putimage函数在屏幕上打印该图片。具体的打印位置和大小由DF_x、DF_y、DF_width和DF_height这4个变量指定。在DF_run_r()函数中,我们根据戴夫的奔跑速度计算出新的坐标,并判断是否超出屏幕范围。然后,通过切换图片并加载新图片来实现动画效果。最后,我们在新坐标处打印戴夫奔跑的图片。