loadimage(&img,"mjq\\lyw.png");
时间: 2023-08-22 22:08:12 浏览: 67
这行代码使用了EasyX图形库中的loadimage函数,它的作用是将指定路径的图像文件加载到内存中,并返回一个IMAGE类型的结构体对象。第一个参数&img表示将图像数据存储到img对象中,第二个参数"mjq\\lyw.png"表示要加载的图像文件的路径,可以根据需要进行修改。需要注意的是,如果文件路径不正确或者文件格式不支持,该函数将会返回一个空对象,因此需要确保文件路径和文件格式正确。
相关问题
函数设计 要求:对创建的void init()函数画出流程图,贴出对应代码和注释,代码为:void init() { mciSendString("open BGM.mp3 alias bgm", 0, 0, 0);//打开背景音乐 mciSendString("play bgm repeat", 0, 0, 0);//循环播放 loadimage(&image.background, "background.png");//导入背景图片 loadimage(&image.player, "player.png", PLAYER_WIDTH, PLAYER_HEIGHT);//导入飞机的图片 loadimage(&image.playerY, "playerY.png", PLAYER_WIDTH, PLAYER_HEIGHT); player.x = WIN_WIDTH / 2 - PLAYER_WIDTH / 2;//飞机初始位置 player.y = WIN_HEIGHT - PLAYER_HEIGHT * 2; player.flag = true; player.hp = PLAYER_HP; player.Myunion.score = 0; loadimage(&image.bullet, "bullet.png"); //导入子弹的图片 loadimage(&image.bulletY, "bulletY.png"); for (int i = 0; i < BULLET_NUM; i++) { bullet[i].flag = false; } loadimage(&image.enemy1, "enemy1.png");//导入敌机的图片 loadimage(&image.enemy1Y, "enemy1Y.png"); loadimage(&image.enemy2, "enemy2.png"); loadimage(&image.enemy2Y, "enemy2Y.png"); loadimage(&image.enemy3, "enemy3.png", 100, 153); loadimage(&image.enemy3Y, "enemy3Y.png", 100, 153); for (int i = 0; i < ENEMY_NUM; i++) { //加载多架敌机 enemy[i].flag = false; } t1 = GetTickCount();//获取当前系统的运行时间 t3 = t1; }
该函数的作用是初始化游戏,包括打开背景音乐、导入游戏图片、设置飞机的初始位置和状态、以及加载多架敌机等。
以下是对应代码和注释:
```c++
void init() {
mciSendString("open BGM.mp3 alias bgm", 0, 0, 0); // 打开背景音乐
mciSendString("play bgm repeat", 0, 0, 0); // 循环播放
loadimage(&image.background, "background.png"); // 导入背景图片
loadimage(&image.player, "player.png", PLAYER_WIDTH, PLAYER_HEIGHT); // 导入飞机的图片
loadimage(&image.playerY, "playerY.png", PLAYER_WIDTH, PLAYER_HEIGHT);
player.x = WIN_WIDTH / 2 - PLAYER_WIDTH / 2; // 飞机初始位置
player.y = WIN_HEIGHT - PLAYER_HEIGHT * 2;
player.flag = true; // 飞机状态为存活
player.hp = PLAYER_HP; // 飞机初始生命值
player.Myunion.score = 0; // 飞机初始得分
loadimage(&image.bullet, "bullet.png"); // 导入子弹的图片
loadimage(&image.bulletY, "bulletY.png");
for (int i = 0; i < BULLET_NUM; i++) {
bullet[i].flag = false; // 初始化子弹状态为未发射
}
loadimage(&image.enemy1, "enemy1.png"); // 导入敌机的图片
loadimage(&image.enemy1Y, "enemy1Y.png");
loadimage(&image.enemy2, "enemy2.png");
loadimage(&image.enemy2Y, "enemy2Y.png");
loadimage(&image.enemy3, "enemy3.png", 100, 153);
loadimage(&image.enemy3Y, "enemy3Y.png", 100, 153);
for (int i = 0; i < ENEMY_NUM; i++) { // 加载多架敌机
enemy[i].flag = false; // 初始化敌机状态为未出现
}
t1 = GetTickCount(); // 获取当前系统的运行时间
t3 = t1;
}
```
流程图如下:
![init函数流程图](https://img-blog.csdn.net/20170718150807192?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFua2l0aGVpY2M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)
#include<stdio.h> #include<graphics.h> #include <mmsystem.h> #include<stdbool.h> #pragma comment(lib,"winmm.lib") int main() { /* IMAGE bk; loadimage(&bk, "./1.png"); int width = bk.getwidth(); int height = bk.getheight(); IMAGE background; loadimage(&background, "./1.png"); width = background.getwidth(); height = background.getheight(); initgraph(width, height); putimage(0, 0, &background); */ mciSendString("open 1.mp3", 0, 0, 0); mciSendString("play 1.mp3", 0, 0, 0); while (true); return 0; }找找问题
这段代码的问题在于 while 循环会一直运行,导致程序无法正常结束,需要手动强制关闭。建议将 while 循环替换为一个等待用户输入的语句,例如:
```c
#include<stdio.h>
#include<graphics.h>
#include<mmsystem.h>
#include<stdbool.h>
#pragma comment(lib,"winmm.lib")
int main() {
IMAGE bk;
loadimage(&bk, "./1.png");
int width = bk.getwidth();
int height = bk.getheight();
IMAGE background;
loadimage(&background, "./1.png");
width = background.getwidth();
height = background.getheight();
initgraph(width, height);
putimage(0, 0, &background);
mciSendString("open 1.mp3", 0, 0, 0);
mciSendString("play 1.mp3", 0, 0, 0);
printf("Press any key to exit...\n");
getchar(); // 等待用户输入
return 0;
}
```
这样程序就会在用户按下任意键后正常退出,避免了无法正常结束的问题。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)