C语言图形库——EasyX常用函数

上节讲到贴出一张图片的过程,本节接着介绍一些基本的图形库函数。

头文件

#include <graphics.h>

1、图形窗口背景颜色设置函数:

setbkcolor(YELLOW)//将图形窗口背景颜色设置为黄色。

也可用

setbkcolor(RGB(180,24,137));

利用三原色设置颜色,RGB(红,绿,蓝),每种颜色的取值范围为0—255,RGB(180,24,137)的意思就是说红:绿:蓝=180::24:137.

2、打印文字函数:

outtextx(x,y,L”hello”),

在坐标(x,y)处打印出hello,该函数只能打印字符串,打印数字需要强转类型,例如:

int a=1;
Char str[10];Sprintf(str,%d”,a); outtextx(x,y,str);

3、设置文字风格函数:

settextstyle(h,w,L”楷体”)

将字体设置为高度为h、平均宽度为w以楷体样式输出,宽度w可设置为0即比例自适应

4、画线段函数:

line(x,y,xx,yy);//在图形窗口中将坐标为(x,y)、(xx,yy)的两点连接起来。

5、设置线段颜色函数:

setlinecolor(RED)//将线段设为红色

6、显示点函数:

putpixel(x,y,BLUE);//在图形窗口的(x,y)处显示一个颜色为蓝色的点。

7、画矩形函数:

rectangle(x,y,xx,yy);//矩形左上角坐标(x,y)、右下角坐标(xx,yy)为界显示一个矩形。

8、画圆函数:

fillcircle(x,y,r);//以圆心为(x,y)、半径为r画圆。

9、清屏函数:

cleardevice();//具体来说这个函数的功能是将当前图形窗口清空,还原至背景颜色。

10、鼠标操作:
这里我们只列举几个常用的

MOUSEMSG msg;  //定义一个鼠标消息
msg=GetMouseMsg();//获取鼠标消息
switch(msg.uMsg)
{case  WM_MOUSEMOVE:       ……break;//鼠标移动消息case  WM_MOUSEWHEEL:      ……break;// 鼠标滚轮拨动消息case  WM_LBUTTONDOWN:     ……break;// 左键按下消息case  WM_MBUTTONDOWN:     ……break;// 中键按下消息case  WM_RBUTTONDOWN:     ……break;// 右键按下消息
}

11、双缓冲,用于缓解屏幕跳动

BeginBatchDraw();
EndBatchDraw();

12、pos_x,pos_y表图片显示的位置,photo_width,photo_high表图片的大小,&image图片的地址,photo_x,photo_y表从该处开始取图

putimage(pos_x,pos_y,photo_width,photo_high,&image,photo_x,photo_y);

13、获取图片image的长和宽

IMAGE iamge;
image.getwidth();//获取宽
image.getheight();//获取高

14、设置填充色

setfillcolor(RED);

15、计时(记秒数),需添加头文件

#include <time.h>
clock_t start=clock();
clock_t end=(clock()-start)/CLOCKS_PER_SEC;

16、画旋转线段

int line_long;//线段长度
float line_Alge;//每次转动的角度
int center_x,center_y,end_x,end_y;//线段的起点与终点
end_x=center_x+line_long*sin(line_Alge);
end_y=center_y+line_long*cos(line_Alge);
line(center_x,center_y,end_x,end_y);

17、随机函数

#include <time.h>int num=rand()%100;//从0-99之间随机选取一个数
(在使用随机函数的开始出要用随机函数的种子,避免每次出现的随机数是一样的:srand((unsigned int)time(NULL));

这里在讲一个上节漏掉的函数:

(1)创立图形窗口并保留控制台窗口:

initgraph(w,h, SHOWCONSOLE),w、h的意义不必多说。

(2)关闭图形窗口:

closegraph();

到这里如果这些函数都掌握了,用C语言做一些小游戏应该不成问题,比如推箱子、打地鼠、迷宫等等,当然你必须要有一定的逻辑能力,这些函数只是帮你完成游戏的画面。

接下来再说一些可能会用的函数:

获取屏幕宽:

GetSystemMetrics(SM_CXFULLSCREEN);//此函数返回当前电脑屏幕的宽`。

获取屏幕高:

GetSystemMetrics(SM_CYFULLSCREEN);//此函数返回当前电脑屏幕的高。

播放音乐

这个就不属于图形库的内容了,在做游戏的时候肯定不能少了配乐。

#include <mmsystem.h>                            //头文件
#pragma  comment(lib,”winmm.lib”)        //引用静态库
mciSendstring(“open  音乐文件名(加文件类型,例:.mp3) alias  music”,NULL,NULL,NULL)//将音乐文件放在与源文件同一目录下,alias  music的意思就是将这个音乐文件重新命名为music
mciSendstring(“play music repeat”,NULL,NULL,NULL)//播放音乐,play意为播放,同样可换做pause:暂停,stop:停止,close:关闭,Resume:继续。Repeat意为重复播放。
mciSendstring(“stop music repeat”,NULL,NULL,NULL)//暂停播放音乐。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Adobe_Audition消除人声

傻瓜式: 方法一&#xff1a;效果 - 立体声声像 - 声道重混缩 - 选择Vocal Cut 新建左声道(左100;右-100) 新建右声道(左-100;右100;反相) 方法二&#xff1a;效果 - 立体声声像 - 析取中置通道 - Karaoke(效果预置) - 男声. (测试后&#xff0c;在傻瓜式中这种方法效果最好) 方…

Java新特性:数据类型可以扔掉了?

作者 | 王磊来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;在很久很久以前&#xff0c;我们写代码时要慎重的考虑变量的数据类型&#xff0c;比如下面这些&#xff1a;枚举&#xff1a…

Spyder:Python中机器学习的强大武器

So, first of all, you would need to install Anaconda distribution which can be downloaded from the link https://www.anaconda.com/download/ (for Windows users only). 因此&#xff0c;首先&#xff0c;您需要安装Anaconda发行版 &#xff0c;可以从链接https://www.…

C语言+数据结构总结

一、C语言部分 1、数据类型&#xff1a; Int 整形 4字节Short 短整形 2字节Long 长整形 4字节Float 单精度浮点型 4字节Double 双精度浮点型 8字节Char 字符型 1字节2、变量 …

对内存重叠的深入认识

内存重叠&#xff1a;拷贝的目的地址在源地址范围内。所谓内存重叠就是拷贝的目的地址和源地址有重叠。在函数strcpy和函数memcpy都没有对内存重叠做处理的&#xff0c;使用这两个函数的时候只有程序员自己保证源地址和目标地址不重叠&#xff0c;或者使用memmove函数进行内存拷…

Android特效 五种Toast具体解释

Toast是Android中用来显示显示信息的一种机制&#xff0c;和Dialog不一样的是&#xff0c;Toast是没有焦点的&#xff0c;并且Toast显示的时间有限&#xff0c;过一定的时间就会自己主动消失。 1.默认效果: 代码:Toast.makeText(getApplicationContext(), "默认Toast样式&…

为什么阿里巴巴禁止使用BigDecimal的equals方法做等值比较?

△一个对Coding有着独特追求的人△作者 l Hollis来源 l Hollis&#xff08;ID&#xff1a;hollischuang&#xff09;BigDecimal&#xff0c;相信对于很多人来说都不陌生&#xff0c;很多人都知道他的用法&#xff0c;这是一种java.math包中提供的一种可以用来进行精确运算的类型…

日期getUTCMonth()方法以及JavaScript中的示例

JavaScript Date getUTCMonth()方法 (JavaScript Date getUTCMonth() method) getUTCMonth() method is a Dates class method and it is used to get the current month’s value according to the UTC (Universal time coordinated) between the range of 0 to 11, where 0 f…

VB另类技巧(可以用于VBA)-指针的使用

大家都知道C中可以使用指针&#xff0c;但现在VB&#xff08;当然也有VBA&#xff09;也可以使用指针了&#xff0c;这是我在网上看的一篇文章&#xff0c;大家参考一下。想当年东方不败&#xff0c;黑木崖密室一战&#xff0c;仅凭一根绣花针独战四大高手&#xff0c;神出鬼没…

动图演示:手撸堆栈的两种实现方法!

作者 | 王磊来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;正式开始之前&#xff0c;先和各位朋友聊聊公众号后期的一些打算&#xff0c;后面的文章计划写一些关于数据结构和算法的内容…

Java中的异常处理

1 class YiChang{2 public static void main(String[] args){3 A anew A();4 a.show();5 }6 }7 8 class A{9 int[] i{1,2,3}; 10 public void show(){ 11 System.out.println(i[3]); 12 } 13 } 运行上面代码&#xff0c;会抛出这样…

数组copyWithin()方法以及JavaScript中的示例

JavaScript copyWithin()方法 (JavaScript copyWithin() method) copyWithin() method is used to copy the specified elements from an array and replace from specified index within the same array. It changes the this array (actual array). copyWithin()方法用于从数…

多图带你彻底理解Java中的21种锁!

作者 | 悟空聊架构来源 | 悟空聊架构&#xff08;ID&#xff1a;PassJava666&#xff09;本篇主要内容如下&#xff1a;本篇主要内容本篇文章已收纳到我的Java在线文档、 Github我的SpringCloud实战项目持续更新中帮你总结好的锁&#xff1a;序号锁名称应用1乐观锁CAS2悲观锁sy…

杨辉三角——数组解决

杨辉三角如图下所示&#xff0c;每一行的第一个数和最后一个数都为1&#xff0c;每一行中间的数&#xff08;出去第一个和最后一个&#xff09;a等于上一行与其相同列数的数b与数b前面的数之和。例&#xff1a; 第3行第2列的数是3&#xff0c;它就等于第2行第2列的数&#xff…

作文议论文开头结尾

一、 开头篇 1. Nowadays, it is commonly/widely/generally believed that…., but I wonder… 如今&#xff0c;人们普遍认为……&#xff0c;但是我怀疑…… 2. With the rapid growth of… … have/has become increasingly important in our daily life. 随着……的快速…

VS生成的exe文件如何在其他电脑上运行

在VS编译器上编写的程序都会生成一个exe文件&#xff0c;有时候写了一个很装逼的程序想在别人电脑炫耀一下&#xff0c;奈何将这个exe文件拷贝过去并不能运行&#xff0c;直接宣告装逼失败。为此将介绍一下如何将生成的exe文件在其他电脑上运行&#xff0c;步骤如下&#xff1a…

dumpstack_Java Thread类的静态void dumpStack()方法(带示例)

dumpstack线程类静态void dumpStack() (Thread Class static void dumpStack()) This method is available in package java.lang.Thread.dumpStack(). 软件包java.lang.Thread.dumpStack()中提供了此方法。 This method is used to print or display stack tracing of the cur…

netty websocket 简单消息推送demo

2019独角兽企业重金招聘Python工程师标准>>> 今天心情很不好&#xff01;&#xff01;&#xff01; 原因保密。 这篇是基于"netty与websocket通信demo"。 错误想法&#xff1a;大量客户请求&#xff0c;共用一个worker&#xff0c;来实现推送。 正确作法&…

给 JDK 官方提了一个 Bug,结果...

图 by&#xff1a;石头北京-望京关于作者&#xff1a;程序猿石头(ID: tangleithu)&#xff0c;现任阿里巴巴技术专家&#xff0c;清华学渣&#xff0c;前大疆后端 Leader。背景分享一下之前踩的一个坑&#xff0c;背景是这样的&#xff1a;我们的项目依赖于一个外部服务&#x…

Of Study - Francis Bacon

Of StudyFrancis Bacon 弗朗西斯培根Studies serve for delight, for ornament, and for ability. Their chief use for delight, is in privateness and retiring; for ornament, is in discourse;and for ability, is in the judgment and disposition of business.For expe…