EasyX库使用入门 [学编程做游戏,快速入门](一)

简介: EasyX库使用入门 [学编程做游戏,快速入门]

前言


准备一个任意vs系列的编译器(vs c++ 6.0, vs2011, vs2013, vs2017, vs2019等等)

下载EasyX帮助文档

下载EasyX并根据提示完成配置(很简单的,跟着提示走一次成功,vscode配置比较麻烦本文不做说明)

下载地址:https://easyx.cn/

参考视频:【C/C++/EasyX】学编程,做游戏,小白快速入门图形编程,零基础入门到精通,学习就是这么快乐_哔哩哔哩_bilibili

EasyX是什么?


EasyX是针对C++的图形库,可以帮助C/C++初学者快速上手图形的游戏编程。比如:可以基于EasyX图形库很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块,贪吃蛇,黑白棋等小游戏.

许多人学编程都是从C语言入门的,而目前的现状是:


学习只交基础语法,一直都在黑窗口上学习,同学们都学习很乏味。

即使有的学校教图形编程也是,使用一些难度较高的,比如win32,OpenGL门槛依然很高,初学者会受严重打击的.

于是就有了这个EasyX库,等这个学完后,我会后续更新天天酷跑,贪吃蛇,扫雷等小游戏,供大家练习参考,OK,现在开搞

EasyX坐标和设备


  • 坐标默认的原点是在窗口的左上角,X轴向右为正,Y轴向下为正,度量单位是像素点。

image.png

窗口函数


头文件:#include

  • initgraph(int width,int height,int flag=NULL);用于初始化绘图窗口(创建窗口)

    width  指定窗口的宽度

  height 指定窗口的高度

    flag     窗口的样式,默认为NULL

  • closegraph(); 关闭绘制窗口
  • cleardevice();清空绘图设备

代码示例:

#include<iostream>
//1.包含图形库头文件,就能使用提供给我的函数
#include<graphics.h>
using namespace std;
int main()
{
  //2.创建一个窗口,q确定窗口大小
  initgraph(640,480);
  getchar();
  //2.1关闭窗口
  closegraph();
  return 0;
}

运行结果:

image.png

EasyX颜色


RGB方式

setcolor(RGB(0,0,0));

字母方式

setcolor(BLACK);

六个十六进制

setcolor(0x000000);

RGB颜色对应表

一些常见的颜色

  • 0x000000 黑色
  • 0xFF0000 蓝色
  • 0xFFAAAA 蓝色
  • 0xFFFFFF 白色

图形绘制函数


图形绘制函数用于在窗口上绘制各种图形

  • 绘图函数从填充样式分类可分为无填充,有边框填充,无边框三种。
  •    以画圆为例:
1. circle()      无填充
2. fillcircle()  有边框填充
3. solidcircle() 无边框填充

从形状来分,常用的可以分为八种

circle画圆                   elipse画椭圆                pie画扇形                      polygon画多边形

rectangle画矩形         roundrect画圆角矩形   line画线                        putpixel 画点

设置填充颜色: setfillcolor;
设置线条颜色: setlinecolor;
设置线条样式: setlinestyle;

代码示例:

#include<iostream>
//1.包含图形库头文件,就能使用提供给我的函数
#include<graphics.h>
using namespace std;
int main()
{
  2.创建一个窗口,q确定窗口大小
  initgraph(640,480);
  //3.画圆
  setfillcolor(YELLOW);//设置填充颜色
  setlinecolor(BLUE);//设置线条颜色
  setlinestyle(PS_SOLID,5);//设置线条样式
  circle(50, 50, 50);
  fillcircle(50, 100, 50);
  solidcircle(50, 250, 50);
  getchar();
  //2.1关闭窗口
  closegraph();
  return 0;
}

运行结果:

image.png

设置背景颜色

1. setbkcolor(WHITE);//设置背景颜色
2. cleardevice();//清屏,清除掉原来的背景
3. //这两步合起来才能设置背景颜色

代码示例:

2.创建一个窗口,q确定窗口大小
  initgraph(640,480);
  //设置背景颜色,one two两步才能设置背景颜色
    setbkcolor(WHITE);//one
    cleardevice();//清屏//two
  //3.画圆
  setfillcolor(YELLOW);//设置填充颜色
  setlinecolor(BLUE);//设置线条颜色
  setlinestyle(PS_SOLID,5);//设置线条样式
  circle(50, 50, 50);
  fillcircle(50, 100, 50);
  solidcircle(50, 250, 50);
  getchar();
  //2.1关闭窗口
  closegraph();

运行结果:

image.png

文字绘制函数


  • outtextxy(int x,int y,PCTSTR str); 在指定位置输出字符串
  • settextcolor(COLORREF color);设置当前文字颜色
  • settextstyle(int nHeight,int nWidth,LPCTSTR lpszFace) 设置字体样式
  • textheight(LPCTSTR str);获取字符串实际占用的像素高度
  • textwidth(LPCTSTR str);获取字符串实际占用的像素宽度

输出字符串,设置文字颜色

1. settextcolor(RED);//设置文字颜色
2.  outtextxy(50, 50, "我是QK");

代码示例:

#include<iostream>
//1.包含图形库头文件,就能使用提供给我的函数
#include<graphics.h>
using namespace std;
int main()
{ 
    initgraph(640,480);
  //设置背景颜色,one two两步才能设置背景颜色
    setbkcolor(WHITE);//one
    cleardevice();//清屏//two
    settextcolor(RED);//设置文字颜色
  outtextxy(50, 50, "我是QK");
  getchar();
  //2.1关闭窗口
  closegraph();
  return 0;
}

image.png

//1.在字符串前面加上大写的L

   //2.用TEXT()把字符串包起来,_T()

正确方式:

1. settextcolor(RED);//设置文字颜色
2.  //1.在字符串前面加上大写的L
3.  //2.用TEXT()把字符串包起来,_T()
4.  outtextxy(50, 50, L"我是QK");

运行结果:

image.png

设置字体样式,大小,字体(上面的代码也加上去)

settextstyle(50, 0, L"楷体");

运行结果:

image.png

我们会发现字体是有背景的

1. //设置背景模式
2.  setbkmode(TRANSPARENT);

运行结果


image.png

文字居中

    settextcolor(RED);
  setfillcolor(BLUE);
  setlinecolor(BLACK);
  fillrectangle(200, 50, 500, 100);//设置一个矩形
  wchar_t arr[] = L"我是居中显示的maye";
  int width = 300/2-textwidth(arr) / 2;
  int height =50/2- textheight(arr) / 2;
  outtextxy(width+200,height+50 ,arr);

运行结果:

image.png

相关文章
|
9月前
|
人工智能 并行计算 测试技术
从商业海报到二次元插画多风格通吃!HiDream-I1:智象未来开源文生图模型,17亿参数秒出艺术大作
HiDream-I1是智象未来团队推出的开源图像生成模型,采用扩散模型技术和混合专家架构,在图像质量、提示词遵循能力等方面表现优异,支持多种风格生成。
880 2
从商业海报到二次元插画多风格通吃!HiDream-I1:智象未来开源文生图模型,17亿参数秒出艺术大作
|
Kubernetes 网络协议 网络安全
Kubernetes node的防火墙问题导致pod ip无法访问
环境: 1.在hadoop36机器,ping hadoop38机器的pod的ip,为172.30.1.4 2.该pod的service的external-ip的ip为hadoop36的ip3.
5293 0
|
11月前
|
自然语言处理 监控 安全
2025年阿里云短信验证码价格多少钱?计费模式与场景选型指南
随着企业数字化转型,短信验证码作为用户身份验证的重要工具,其成本与效率的平衡至关重要。阿里云短信服务以高可靠性、灵活计费和多场景适配著称。按量付费模式适合需求波动大的场景,而短信套餐包则为长期稳定需求提供了成本优势。针对不同业务场景,如高频验证、跨境业务及中小型企业轻量级需求,阿里云提供了定制化的选型策略。此外,通过阶梯定价、防盗刷监控等措施实现成本优化与风险规避,并不断进行技术升级以确保服务的安全性和稳定性。根据2025年最新数据,企业可根据自身需求选择最适合的阿里云短信验证码服务方案。
|
关系型数据库 MySQL C++
EasyX之跳跳球
本文介绍了如何使用EasyX库开发一个跳跳球游戏,包括绘制小球和矩形、实现小球的起跳与下落、处理矩形的移动、解决小球二次起跳问题、判断游戏结束条件以及打印分数。
263 0
EasyX之跳跳球
|
C语言 C++
为什么要学习easyx图形库,他是做什么的?值得吗?
首先,easyx仅支持C语言和C++,这对于学习C语言的新生来说很友好,在熟悉C语言的同时还可以提高写代码的能力,在熟悉C语言以后,就可以尝试写一写小游戏了,比如说扫雷,三子棋,魔塔,贪吃蛇,飞机大战等等,但是当我们写出来运行的时候可以发现,游戏的逻辑写的没有问题,也的确可以玩,但是界面和人物怪兽什么的都很丑,全是符号不好看,同时控制台一闪一闪的,对玩家来说体验感极差,这也就是我们为什么要学习easyx图形库。
552 1
|
机器学习/深度学习 C语言 C++
【c语言】五子棋(EasyX图形库+背景音乐)
【c语言】五子棋(EasyX图形库+背景音乐)
524 0
|
JSON 网络协议 Unix
docker权限问题
docker权限问题
|
Java Shell API
实战教程:如何将自己的Python包发布到PyPI上
实战教程:如何将自己的Python包发布到PyPI上
3908 0
实战教程:如何将自己的Python包发布到PyPI上
|
人工智能 自然语言处理 搜索推荐
梅俊:如何用好A1,轻松写好汇报、通知、复盘?
《如何用AI辅助高效写公文》课程由公文写作专家梅俊老师主讲,旨在帮助解决公文写作难题。课程涵盖广泛,不仅限于法定公文,还包括事务类公文,适合各类职场人士。梅俊老师结合15年写作经验和AI研究,提出7步法,包括问题拆解、信息分析、内容生成等,强调人与AI的协作,而非完全依赖AI。课程通过实例演示如何利用AI工具如kimichat和秘塔AI搜索提高写作效率,同时提醒用户需判断信息质量和内容质量。课程教授从初级到高级的14种公文写作,鼓励学员实践并形成“AI思维”。
999 1

热门文章

最新文章