easyx库的介绍与使用(二)

简介: easyx库的介绍与使用(二)

4.图片的使用(重点)

第一步:放图片

先将图片复制粘贴到项目所在的文件夹

第二步:定义图片(IMAGE)

用IMAGE对图片进行定义,例如 IMAGE image

如果图片不止一张,用数组贮存图片,例如IMAGE image[N],N代表图片的数量

第三步:加载图片(loadimage)

IMAGE image;

loadimage(&image,“(定义图片的地址)”),.“./images/2.bmp”(放图片的位置));

注意:如果出现重载中没有一个可以转换参数的类型的报错

有三种解决方法:

第一种(最简单的方法):调成多字节字符集(具体步骤在前面的注意事项中)。

第二种,在loadimage函数中,放图片的位置的参数前面加上个,_T(放图片的位置)。

第三种方法:在放图片位置的参数前面加上个L。

第四步:图片的打印(putimage)

putimage(int x, int y, 定义图片的地址)

(x, y)表示位置

同时loadimage函数的第三个参数和第四个参数,分别表示图片的宽度和高度。

实例:

5.音乐的使用

首先声明一点,这个并不属于easyx库,而是属于windows,所以就需要用头文件,#include<mmsystem.h>(mm- 多媒体的,system系统多媒体系统),还需要个库文件**#pragma comment(lib, “winmm.lib”) —>windows的多媒体库文件**,同样也需要把音乐,复制粘贴到项目所在的文件夹中

#include<stdio.h>
#include<graphics.h>
#include<mmsystem.h>  // 包含多媒体设备接口文件  
#pragma comment(lib, "winmm.lib")
int main()
{
  initgraph(460, 460);
  //第一种
  mciSendString("open ./fire/小幸运.mp3", 0, 0, 0);
  mciSendString("play ./fire/小幸运.mp3", 0, 0, 0);
  // 
  //第二种方法   alias 取别名 bk
  //mciSendString("open ./fire/小幸运.mp3 alias bk", 0, 0, 0);   打开音乐
  //mciSendString("play bk ", 0, 0, 0);                           播放音乐
  // mciSendString("close ./fire/小幸运.mp3", 0, 0, 0);         关闭音乐
  //如果想程序运行一会儿 自动关闭音乐,
  //可以使用Sleep函数,然后再关闭音乐的函数,Sleep(3000)表示前面的程序执行3秒,再执行下面的程序 
  while (1)
  {
    ;                   // 使程序卡住,不闪退,方便看到效果
  }
  return 0;
}

其中mciSendString 最后三个参数 分别是 快进 快退,这里播放,就没管,全为0。

6.消息(鼠标 键盘)

首先,我们应该知道,initgraph 创建的窗口的无法直接使用键盘和鼠标操作的,所以接下来我们来学习,怎样输出消息。

消息的定义(ExMessage)

直接使用 ,像这样Exmessage m;来定义一个消息

消息的接受(peekmessage)

peekmessage(参数1, 参数2),peekmessage的参数1为消息的地址,参数2则为接受消息的对象(键盘或者鼠标或者都有),所以peekmessage的参数2有3种,分别是EM_MOUSE(鼠标) , EM_KEY(键盘), EM_MOUSE | EM_KEY(鼠标和键盘)

#include<stdio.h>
#include<graphics.h>
int main()
{
  ExMessage m;  // 定义消息
  peekmessage(&m, EM_KEY);  //接受消息(键盘)
  peekmessage(&m, EM_MOUSE); //接受消息(鼠标)
  peekmessage(&m, EM_KEY | EM_MOUSE);// 接受消息(鼠标和键盘)
  return 0;
}

键盘和鼠标的使用

#include<stdio.h>
#include<graphics.h>
#include<mmsystem.h>
#pragma comment(lib, "winmm.lib")
int main()
{
  initgraph(460, 460);
  ExMessage m;  // 定义消息
  //peekmessage(&m, EM_KEY);  //接受消息(键盘)
  //peekmessage(&m, EM_MOUSE); //接受消息(鼠标)
  peekmessage(&m, EM_KEY | EM_MOUSE);// 接受消息(鼠标和键盘)
  mciSendString("open ./fire/11.mp3", 0, 0, 0);
  while (1)
  {
    if (m.message == WM_LBUTTONDOWN) // 鼠标左键      M_RBUTTONDOWN 鼠标右键
    {
      mciSendString("play ./fire/11.mp3", 0, 0, 0);
    }
    if (m.message == WM_KEYDOWN) // 按键
    {
      if (m.vkcode == 'f')     // 如果按f  就播放小幸运 
      {
        mciSendString("pause ./fire/11.mp3", 0, 0, 0);
      }
    }
  }
  return 0;
}

应用:如何控制游戏里人物的移动

ExMessage msg;
  peekmessage(&msg, EM_KEY);
  switch (msg.message)
  {
  case WM_KEYDOWN://键盘按下消息
    switch (msg.vkcode)
    {
    case VK_LEFT://按下左键
      break;
    case VK_RIGHT://按下右键
      break;
    case VK_UP://按下上键
      break;
    case VK_DOWN://按下下键
      break;
    }
    break;
  }

其中,例如 case VK_LEFT : 中,可以自行添加事物(人), 移动的距离,以及是否超出游戏边界的判断条件。

源码讲解领取(gitee)

gitee:easyx库使用讲解源码

所学有限暂时先介绍到这里,后续可能有补充,如有错误还请指出。


相关文章
uniapp如何安装vant
uniapp如何安装vant
1045 1
|
12月前
|
10月前
|
监控 供应链 数据可视化
高效采购管理的全流程解读,提升竞争力的关键
本文介绍了采购管理在企业运营中的核心价值、常见痛点及优化路径。通过引入可视化工具,企业能实现全流程透明化管理,提升资源利用率、运营效率和决策精准度,降低运营成本与风险,最终助力企业运营升级和竞争力提升。
|
存储 编解码 Windows
EasyX图形库学习(三、用easyX控制图形界面中的小球、图片-加载、输出)
EasyX图形库学习(三、用easyX控制图形界面中的小球、图片-加载、输出)
|
图形学 C++
|
算法 程序员 C语言
【深度揭秘】汇编语言:现代编程中不可或缺的秘密武器!它如何在幕后操控一切?
【8月更文挑战第31天】随着计算机科学的进步,尽管高级编程语言因易读和可维护而流行,汇编语言在特定领域仍不可或缺。本文介绍汇编语言基础及其在现代编程中的应用。汇编语言通过助记符表示机器码,便于编写和理解。例如,在x86架构下,加法指令可表示为 `add eax, ebx`。尽管高级语言提供更高抽象,但在优化性能瓶颈(如矩阵乘法)和嵌入式系统中精确控制硬件方面,汇编语言依然发挥重要作用。例如,通过AVX-2指令集优化矩阵乘法,或在实时系统中实现精确时间延迟。这些示例展示了汇编语言在现代编程中的独特价值。
252 3
数据在内存中的存储(了解数据在内存中的存储规则,看这一篇就够了!)
数据在内存中的存储(了解数据在内存中的存储规则,看这一篇就够了!)
|
存储 算法 C语言
C语言中的字符串处理:深入解析与应用
C语言中的字符串处理:深入解析与应用
327 1
|
算法 图形学 C++
[EasyX库安装介绍讲解】超详细入门级
[EasyX库安装介绍讲解】超详细入门级
832 1
|
存储 机器学习/深度学习 数据可视化
开发人员必知的医疗影像基础概念
DICOM(Digital Imaging and Communication in Medical) 是医学影像领域最常见的标准之一,主要用于存储、交换和检索医学图像。如 X光片、CT扫描、MRI等。
585 1