引用

什么是 EasyX? 作者:EasyXEasyX 是针对 C++ 的图形库,可以帮助 C 语言初学者快速上手图形和游戏编程。 比如,可以用 VC + EasyX 很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏可以练习图形学的各种算法,等等。许多学编程的都是从 C 语言开始入门的,而目前的现状是:1. 有些学校以 Turbo C 为环境讲 C 语言,只是 Turbo C 的环境实在太老了,复制粘贴都很不方便。2. 有些学校直接拿 VC 来讲 C 语言,因为 VC 的编辑和调试环境都很优秀,并且 VC 有适合教学的免费版本。可惜在 VC 下只能做一些文字性的练习 题,想画条直线画个圆都很难,还要注册窗口类、建消息循环等等,初学者会受严重打击的。初学编程想要绘图就得用 TC,很是无奈。3. 还有计算机图形学,这门课程的重点是绘图算法,而不是 Windows 编程。所以,许多老师不得不用 TC 教学,因为 Windows 绘图太复杂了,会偏离教学的重点。新的图形学的书有不少是用的 OpenGL,可是门槛依然很高。所以,我们想给大家一个更好的学习平台,就是 VC 方便的开发平台和 TC 简单的绘图功能,于是就有了这个 EasyX 库。如果您刚开始学 C 语言,或 者您是一位教 C 语言的老师,再或者您在教计算机图形学,那么这个库一定会让您兴奋的。

1.配置easyx(vs2017+easyx)

1.点击easyx官网,进入easyx网页->点击下载按钮->下载安装包(可选择第二个下载,第一个一般为测试版)

点击进入easyx官网

2.安装easyx会出现下图页面,点击安装文档和Visual c++ 2017

3.打开刚才安装的文档,就可以看到里面包括了easyx函数的介绍和使用方法。


2.函数使用

Copy使用之前要#include<graphics.h>// 引用图形库头文件
然后initgraph(640, 480);   // 创建绘图窗口,大小为 640x480 像素(绘图窗口不是控制台,initgraph(640,480,SHOWCONSOLE)就可以看到我们熟悉的控制台了)

2.1绘图

Copy过程:定义变量->加载->贴出
分别用到IMAGE、loadimage、putimage
往往和BeginBatchDraw、FlushBatchDraw、EndBatchDraw搭配使用可解决绘图闪烁问题,详见文档。
  • 一段使用循环绘图实现的动画效果代码

Copy    IMAGE  bk2, bk3;loadimage(&bk2, "image\\bk2.jpg", 1000, 700, true);//幕布loadimage(&bk3, "image\\bk3.jpg");//背景setbkmode(TRANSPARENT);for (int i = -700; i != 0; i++)//幕布{putimage(0, i, &bk2);Sleep(5);}for (int i = 0; i != -700; i--){BeginBatchDraw();cleardevice();putimage(-60, 0, &bk3);putimage(0, i, &bk2);EndBatchDraw();}

2.2与鼠标输入相关函数的使用#

Copy首先需要定义一个MOUSEMSG变量,然后可以使用MouseHit函数判断是否有鼠标信息(一般使用嵌套while循环多次判断),然后GetMouseMsg,再根据鼠标信息执行相应操作。
CopyMOUSEMSG m;FlushMouseMsgBuffer();while (1){while (MouseHit()){m = GetMouseMsg();if ((m.x >= 105 && m.x <= 282) && (m.y >= 423 && m.y <= 480))//管理员模式{setlinecolor(RED);rectangle(105, 423, 282, 480);if (m.uMsg == WM_LBUTTONDOWN){n = 1;return ;}}if (!((m.x >= 105 && m.x <= 282) && (m.y >= 423 && m.y <= 480)))//鼠标放在按钮变色{setlinecolor(WHITE);rectangle(105, 423, 282, 480);}if ((m.x >= 751 && m.x <= 929) && (m.y >= 425 && m.y <= 482))//用户模式{setlinecolor(RED);rectangle(751, 425, 929, 482);if (m.uMsg == WM_LBUTTONDOWN){n = 2;return ;}}if (!((m.x >= 751 && m.x <= 929) && (m.y >= 425 && m.y <= 482)))//鼠标放在按钮变色{setlinecolor(WHITE);rectangle(751, 425, 929, 482);}}}

2.3矩形、椭圆等函数的使用#

Copy使用这类函数可以知道鼠标操作判断时的坐标,比如上方的按钮坐标就是用rectangle找的。或者实现鼠标放在按钮变色、点击效果等。

2.4输出、输入相关函数#

Copyouttextxy、settextcolor、settextstyle,InputBox等等(不难,看完文档介绍就懂)
但是outtextxy只能输出char型,需要输出int等类型时需要用到sprintf

点击进入sprintf百科

Copyint ybkcount=1;char tempnum[50];sprintf(tempnum, "已选票数:%d", ybkcount);outtextxy(765, 405, tempnum);

2.4小技巧#

Copy* 一个函数往往有多个参数,可以有默认参数,没有特别什么一般默认为NULL。
* cleardevice可以清屏,但是如果需要保留某部分时可以用getimage
* 加入sleep来控制贴图速度
* 可以通过绘图覆盖,然后输出来实现更新

2.5尾声#

Copy相信大家到这里已经对easyx的使用有了一定的理解,但是可能有的同学会说好像没学到什么,或者是就会这几个函数有什么用,我个人认为教程不是手把手教学,而是启蒙,然后同学们举一反三,从原理上理解函数,学会自己去领悟函数,函数是教不完的,而且一个函数可以有非常多的用法,不同的搭配方法也可以实现不同的效果,这些都需要同学们积极探索,easyx或许只是一个小的开始,希望同学们能够在学习的过程中不断思考,不断成长。

最后来个效果图

END


有想深入学easyx图形库小伙伴们,我这里整理了一些关于easyx使用教程及用easyx图形库开发的游戏项目等,可以分享给大家,需要的来我的编程学习基地嗷~

easyx的基础应用教程相关推荐

  1. 【Easyx库基础用法教程】

    Easyx图像库 @[TOC](Easyx图像库) 1.1简单介绍 1.2Easyx原理 2.Easyx基础知识 2.1Easyx颜色 2.2Easyx坐标和设备 3.Easyx图形编程----窗口函 ...

  2. 虚幻引擎虚拟现实开发基础学习教程

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:3.93 GB |时长:5h 15m 了 ...

  3. 动画产业基础学习教程 Rad How to Class – Animation Industry Fundamentals

    如何分类--动画产业基础 大小解压后:6.2G 含课程素材 1920X1080 mp4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 信息: 绘画技巧.解剖学.角色设计.透视和整体讲故事--这门 ...

  4. ue5新手零基础学习教程 Unreal Engine 5 Beginner Tutorial - UE5 Starter Course

    ue5新手零基础学习教程 Unreal Engine 5 Beginner Tutorial - UE5 Starter Course! 教程大小解压后:4.96G 语言:英语+中英文字幕(机译)时长 ...

  5. Android基础新手教程——1.5.2 Git之使用GitHub搭建远程仓库

    Android基础新手教程--1.5.2 Git之使用GitHub搭建远程仓库 标签(空格分隔): Android基础新手教程 本节引言: 在上一节中.我们学习了怎样使用Git.构建我们的本地仓库.轻 ...

  6. python怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)

    一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...

  7. python菜鸟基础教程-python基础菜鸟教程,Python的基础语法

    原标题:python基础菜鸟教程,Python的基础语法 什么是Python?Python是一门简单直观的编程语言,并且目前是开源的,可以方便任何人使用. Python的开发哲学:用一种方法,最好是只 ...

  8. python免费入门手册-Python 基础入门教程

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年. <Python 基础入 ...

  9. Python基础入门教程:使用 Python 3 协程快速获得一个代理池

    Python基础入门教程:使用 Python 3 协程快速获得一个代理池 前言 在执行 IO 密集型任务的时候,程序会因为等待 IO 而阻塞.比如我们使用 requests 库来进行网络爬虫请求的话, ...

最新文章

  1. 9path 导致的一场冤假错案
  2. ORA-12516 TNS: 监听程序找不到符合协议堆栈要求的可用处理程序
  3. java技术栈有哪些_Java程序员必备的21个核心技术,你都掌握了哪些?
  4. 小程序 | 获取用户头像信息接口改进:getUserInfo的使用
  5. C#算法设计排序篇之05-归并排序(附带动画演示程序)
  6. HOLOLENS不适合加天空盒
  7. 详解python 字符串
  8. cfb为什么不需要填充_高压输电线路中为什么只有相线不需要零线
  9. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-3.登录检验JWT实战之封装通用方法...
  10. My97DatePicker日历实现开始日期小于结束日期验证
  11. .axf文件_Jlink使用技巧之单独下载HEX文件到单片机
  12. AURIX TC397 Flash编程
  13. python 查询oracle数据库返回具体字段名
  14. 码云 VS首次提交代码报错:failed to push some refs to 'https://gitee.com/Liu_Cabbage/ASP.NET-MVC-QQ-Connect.git'
  15. 在Harvester上安装windows sever 2012 r2
  16. 2021衡阳田家炳高考成绩查询,2021年衡阳高考最高分多少分,历年衡阳高考状元
  17. 会泡妞的程序员都是怎么撩妹子的?
  18. 205.自定义菜单[个人公众号未认证无法使用]
  19. Windows电脑怎么查看自己的电脑是64位的?
  20. CCF 会议检索(近期可投)

热门文章

  1. iOS开发-Please sign in with an app-specific password. You can create one at appleid.apple.com
  2. [微软拼音小技巧] 如何用Unicode输入生僻字
  3. dwm.exe(桌面窗口管理器)占用内存过大解决办法
  4. java实用型:mybatis的好帮手-MybatisCodeHelperPro
  5. 脿什么意思_襆怎么读_襆组词和拼音
  6. 面试题(十二)自我介绍
  7. Unity3D 矩阵运算
  8. 由浅入深了解机械键盘:各种轴的区别
  9. 新手也能看懂,Kubernetes其实很简单
  10. windows禁用屏幕旋转_如何在Windows 10中禁用屏幕自动旋转